More Related Content Similar to Kubernetes で実践するクラウドネイティブ DevOps "監視とオブザーバビリティ"編 / Cloud Native DevOps with Kubernetes (Monitoring and Observability)
Similar to Kubernetes で実践するクラウドネイティブ DevOps "監視とオブザーバビリティ"編 / Cloud Native DevOps with Kubernetes (Monitoring and Observability) (20) More from Preferred Networks
More from Preferred Networks (20) Kubernetes で実践するクラウドネイティブ DevOps "監視とオブザーバビリティ"編 / Cloud Native DevOps with Kubernetes (Monitoring and Observability)3. @superbrothers
SUDA Kazuki / @superbrothers
▶ Preferred Networks, Inc. (PFN) エンジニア
▶ Kubernetes Meetup Tokyo, Prometheus Meetup Tokyo ほか、共同主催者
▶ CNCF Ambassador
▶ 「Kubernetes実践⼊⾨」、「みんなのDocker/Kubernetes」共著書
▶ 「⼊⾨ Prometheus」、「Kubernetes で実践するクラウドネイティブ DevOps」監訳書
3
6. @superbrothers
PFN の Kubernetes クラスタ
6
Tesla P100 PCIe x 8
10GbE x 2
InfiniBand FDR x 2
MN-1a サーバ
トータル 1024 GPUs
19.1 PFLOPS
2017年
Tesla V100 PCIe x 8
10GbE x 2
InfiniBand EDR x 2
MN-1b サーバ
トータル 1536 GPUs
53.3 PFLOPS
2018年
Tesla P100 SXM2 x 8
100GbE x 2
RoCEv2 with SR-IOV
MN-2a サーバ
トータル 1024 GPUs
128 PFLOPS
2019年
MN-Core x 4
100GbE x 2
MN-3a サーバ
MN-Core DirectConnect
トータル 192 MN-Cores
4.7 PFLOPS
(21.11 GFLOPS/W)
2020年
Icon pack by Icons8 - https://icons8.com
MN-1 Series MN-2 Series MN-3 Series
NVIDIA GPUなどの最新技術を採⽤した プライベート・スーパーコンピュータ MN-2 を⾃社構築し、7⽉に稼働
Preferred Networksの深層学習⽤スーパーコンピュータMN-3がスーパーコンピュータ省電⼒性能ランキングGreen500で世界1位を獲得
世界⼀位!!
13. @superbrothers
198.186.192.44 - - [27/May/2010:01:56:54 +0100] "GET / HTTP/1.1" 403 327 "-" "-"
208.80.193.29 - - [27/May/2010:03:08:17 +0100] "GET / HTTP/1.0" 403 323 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; SIMBAR=0; .NET
66.249.68.210 - - [27/May/2010:03:46:25 +0100] "GET /robots.txt HTTP/1.1" 403 269 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html
66.249.68.210 - - [27/May/2010:03:46:25 +0100] "GET / HTTP/1.1" 403 263 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
198.186.192.44 - - [28/May/2010:02:04:30 +0100] "GET / HTTP/1.1" 403 327 "-" "-"
184.73.2.36 - - [28/May/2010:05:14:00 +0100] "GET /robots.txt HTTP/1.0" 403 272 "-" "SheenBot/SheenBot-1.0.4 (Sheen web crawler)"
184.73.2.36 - - [28/May/2010:05:14:00 +0100] "GET / HTTP/1.0" 403 267 "-" "SheenBot/SheenBot-1.0.4 (Sheen web crawler)"
208.80.193.42 - - [28/May/2010:12:56:12 +0100] "GET / HTTP/1.0" 403 323 "-" "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.0; Windows NT 5.1; FunWebProducts; InfoP
208.80.193.43 - - [29/May/2010:21:54:59 +0100] "GET / HTTP/1.0" 403 323 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SIMBAR={ED852896-9625-4d9
188.140.124.209 - - [29/May/2010:23:04:22 +0100] "GET / HTTP/1.1" 403 263 "http://www.google.pt/url?
sa=t&source=web&ct=res&cd=2&ved=0CBkQFjAB&url=http%3A%2F%2Ftransmsilverio.com%2F&rct=j&q=transportes+manuel+silverio&ei=YY8BTNzMMZKL4AbUpNTLDg&usg=AFQjCNGYg9T
SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)"
188.140.124.209 - - [29/May/2010:23:04:36 +0100] "GET / HTTP/1.1" 403 263 "http://www.google.pt/url?
sa=t&source=web&ct=res&cd=2&ved=0CBkQFjAB&url=http%3A%2F%2Ftransmsilverio.com%2F&rct=j&q=transportes+manuel+silverio&ei=YY8BTNzMMZKL4AbUpNTLDg&usg=AFQjCNGYg9T
SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)"
188.140.124.209 - - [29/May/2010:23:05:56 +0100] "GET / HTTP/1.1" 403 263 "http://www.google.pt/url?
sa=t&source=web&ct=res&cd=1&ved=0CBUQFjAA&url=http%3A%2F%2Ftransmsilverio.com%2F&rct=j&q=www.transmsilverio.com&ei=vI8BTKe6M4SV4gbjruzLDg&usg=AFQjCNGYg9TdafIh
CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)"
208.80.193.30 - - [31/May/2010:05:56:02 +0100] "GET / HTTP/1.0" 403 323 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; YPC 3.2.0; FunWebProducts
207.44.204.87 - - [31/May/2010:14:35:45 +0100] "GET /wp-login.php HTTP/1.1" 403 274 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.ht
207.44.204.87 - - [31/May/2010:14:35:46 +0100] "GET /old/wp-login.php HTTP/1.1" 403 276 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bo
207.44.204.87 - - [31/May/2010:14:35:46 +0100] "GET /cms/wp-login.php HTTP/1.1" 403 276 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bo
207.44.204.87 - - [31/May/2010:14:35:47 +0100] "GET /blog/wp-login.php HTTP/1.1" 403 278 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/b
207.44.204.87 - - [31/May/2010:14:35:47 +0100] "GET /blog_old/wp-login.php HTTP/1.1" 403 282 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.c
207.44.204.87 - - [31/May/2010:14:35:48 +0100] "GET /blog-old/wp-login.php HTTP/1.1" 403 281 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.c
https://gist.github.com/pmcconnell-tc/9c3d57818d55ba7203d4e56f7142a43f
ロギング(Logging)
▶ イベントを対象として、イベント1つひとつのコンテキストの⼀部を記録する
▶ 例えば、HTTP リクエストをイベントとして、リクエスト時間、HTTP メソッド、パス、
リクエスト元 IP などのコンテキストをエントリとして記録する(アクセスログ
+ そのほかに、トランザクションログやデバッグログなど
▶ サンプリングしないので、記録できるコンテキストに⼤きな制限がなく、特定のイベントに
どのような問題があるのかを正確に特定できる
⼀⽅で、何を記録し、何を記録しないかは開発者が判断するため、ブラックボックス監視と同じく
検出できる問題は事前に予測しうるものに限定される。さらに、⼤量のストレージと帯域が必要で
スケールが困難。
13
14. @superbrothers
▶ ログフォワーダのツール
+ fluentd, fluent-bit
+ Logstash
▶ ログデータの管理、分析
+ ツール
+ Elastic
+ Grafana Loki
+ サービス
+ Google Cloud Logging
+ Amazon CloudWatch Logs
+ Azure Monitor
ロギングのツールとサービス
14Observability and Analysis - Logging / CNCF Cloud Native Interactive Landscape
15. @superbrothers
PFN でのロギング
▶ 転送しているログ
+ Kubernetes システムコンポーネント
+ Kubernetes Events
+ github.com/opsgenie/kubernetes-event-exporter
15
Google Cloud Logging
イベントをログに落とす以外に、特定のイベントを
Slack で通知といったこともできてべんりなんだけど、
イベントログが作成されなくなるバグがあるようなので注意 😅 (v0.9)
17. @superbrothers
▶ ツール
+ Elastic APM
+ Jaeger
+ Zipkin
+ Lightstep
▶ サービス
+ Google Cloud Trace
+ AWS X-Ray
+ Azure Application Insights
トレーシングのツールとサービス
17Observability and Analysis - Tracing / CNCF Cloud Native Interactive Landscape
21. @superbrothers
▶ ツール
+ Prometheus
▶ サービス
+ Google Cloud Monitoring
+ Amazon Cloud Monitoring
+ Azure Monitor
+ Datadog
+ New Relic
+ Sysdig Monitor
メトリクスのツールとサービス
21Observability and Analysis - Monitoring / CNCF Cloud Native Interactive Landscape
22. @superbrothers
▶ https://github.com/prometheus/prometheus (Apache 2.0)
▶ クラウドネイティブの世界で事実上の標準となっているメトリクス管理ソリューション
▶ オープンソースのメトリクスベースモニタリングシステム
+ プル型で単純なテキストのメトリクス形式
+ 柔軟なクエリ⾔語
+ サービスディスカバリ機構との連携で動的な環境のモニタリングが得意
+ ダッシュボードとアラート通知
▶ 2016年に Cloud Native Computing Foundation の2番⽬のプロジェクトのメンバになる
+ 2018年8⽉に “卒業” (Graduated) プロジェクトとなる
Prometheus(プロメテウス)
22
30. @superbrothers
Kubernetes におけるメトリクス
▶ クラスタの健全性に関するメトリクス
+ ノードの健全性ステータスやノードあたり、および全体のリソース使⽤率∕割り当てなど
▶ Deployment などのオブジェクトに関するメトリクス
+ Deployment ごとのレプリカの設定数、利⽤できないレプリカの数など
▶ コンテナに関するメトリクス
+ ノードあたり、および全体のコンテナ/Podの数、リソース要求/制限に対する各コンテナの
リソース使⽤、コンテナのLiveness/Readinessの状況など
▶ アプリケーションに関するメトリクス
+ 受信したリクエストの数、返されたエラーの数、持続期間など
▶ ランタイムに関するメトリクス
+ プロセス、スレッドの数、ヒープとスタックの使⽤率、ガベージコレクション機能の
実⾏時間と待機時間など
30
31. @superbrothers
Kubernetes のメトリクスを取得する
▶ Kubelet (cAdvisor)
+ コンテナのリソース使⽤率と性能に関する情報
▶ github.com/kubernetes/kube-state-metrics
+ Kubernetes API にクエリして、ノード、Pod、Deployment などのオブジェクトに関する情報
▶ github.com/prometheus/node_exporter
+ OS カーネルが開⽰する CPU、メモリ、ディスクスペース、ディスク I/O、ネットワーク帯域
幅、マザーボードの温度などのマシンレベルの情報
31
32. @superbrothers
優れたメトリクスを選択する
▶ サービス: 「RED」パターン
+ Requests(リクエスト数)、 Errors(エラー)、Duration(持続期間)
+ 総数は増え続けるだけなので、例えば1秒当たりのリクエスト数(rate)に注⽬する
▶ リソース: 「USE」パターン
+ Utlisation(利⽤状況/使⽤率)、Saturation(飽和)、Errors(エラー)
+ Utilization はサービスがどの程度稼働しているか、Saturation はキューで処理待ちに
なっている仕事の量
▶ ビジネスメトリクス
+ サインアップしたもののキャンセルした割合(解約率)など
32
Prometheus は完全なデータ提供よりも 99.9% 正しいデータ提供と
機能継続を選択している。現⾦や請求書の処理などの完全なデータが
必要な場合は、ロギングなどの他の⽅法を選択しなければならない。
Google SRE handbook では、Saturation(飽和)を
追加した4つのメトリクスをゴールデンシグナルと呼んでいます