Slide 1

Slide 1 text

A Feedback from Cloud Native Deep Dive Monitoringについてあれこれ語ろう

Slide 2

Slide 2 text

Pivotal Japan - Solutions Architect Kazuto Kusama @jacopen

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Cloud Native Deep Dive • 従来ながらの講義形式は取らない • あらかじめ決められたテーマについて、全員参加で ディスカッションを行う • ディスカッションを通じて、実戦で使える知識と経験を深め ていく • 参加登録時にはアンケート回答が必須。 アンケート未回答者は参加不可。

Slide 6

Slide 6 text

テーマ #1 Manifest管理 #2 Service Mesh #3 Release Engineering #JKD 総集編 #4 Monitoring

Slide 7

Slide 7 text

今回は、#4の内容を 共有します

Slide 8

Slide 8 text

- Monitoring - Logging - Alerting

Slide 9

Slide 9 text

Monitoring

Slide 10

Slide 10 text

- Blackbox Monitoring - Whitebox Monitoring 分けて考えるべき

Slide 11

Slide 11 text

ツール ● Datadog ● Mackerel ● Wavefront ● Stackdriver ● CloudWatch ● Prometheus ● Elasticsearch ● Zabbix ● Sysdig SaaS IaaS Provided Self Hosted

Slide 12

Slide 12 text

監視する対象 ● Baremetal ● VM ● Container ● Security ● Networking ● Backend ● Frontend ● Business KPI ・・・他にもいろいろ ● Pod ● Node ● Cluster

Slide 13

Slide 13 text

みんなの課題 • どんなメトリクスを監視すればいいのか ○ Kubernetesだけでも膨大な種類のメトリクスが • Kubernetesのクラスタ管理者とアプリ開発者への 通知切り分け • ロングタームのメトリクス管理方法・ ダウンサンプリング方法

Slide 14

Slide 14 text

みんなの課題 • 外れ値出たときどうするか? ○ ここのハンドリング重要 ○ DatadogやElasticsearchには検出する機能があるが・・・

Slide 15

Slide 15 text

みんなの課題 • Prometheusのメモリ使用量多い • モニタリングのモニタリング • そもそもPrometheus難しい ○ relabel_configs ○ PromQL ■ Prometheusおじさんの発生!

Slide 16

Slide 16 text

みんなの課題 • Dashboardの作り方 ○ JSONのレビュー大変 ■ GrafanaならDashboard Shopあるが・・・ ○ できる限りコード管理したい ■ Grafanaでexportするたびに形が変わっててキツい ● Jsonnetで生成⇒Grafanaに反映 を試そう • (Prometheusの場合) Prometheus Operator良い ○ 最初からいい感じに作り込まれている ○ 必要ならば自分で拡張することも出来る

Slide 17

Slide 17 text

みんなの課題 • そもそもDashboardいつ見る? ○ 常に見る? ○ デプロイ時に見る ○ 週次でみる ○ 朝会時に見る ○ 常に廊下に表示させる

Slide 18

Slide 18 text

みんなの課題 • Monitoring 101は読んでおくべき ○ https://www.datadoghq.com/blog/tag/monitoring-101/

Slide 19

Slide 19 text

Logging

Slide 20

Slide 20 text

よくある構成 対象 対象 対象 Collector Collector Collector Aggregator Log Platform ログ収集 集約 パース タギング フィルタリング 保存 インデックス化 検索 可視化

Slide 21

Slide 21 text

ツール ● Fluentd ● Fluentbit ● LogStash ● Splunk ● Elasticsearch ● CloudWatch Logging ● Stackdriver ● S3 ● GCS ● DWH Collector Log Platform

Slide 22

Slide 22 text

Logging =

Slide 23

Slide 23 text

Logging = 課金

Slide 24

Slide 24 text

みんなの課題 • ロギングはカネがかかる!! ○ SaaS高い ■ ログ量に比例してガンガン金がかかる ○ Self Hostedにしてもかなりの運用・インフラコストかかる ■ 最終的には監視対象と同じくらいのインフラリソースがログ基 盤だけで必要になることも ○ 結局は金

Slide 25

Slide 25 text

みんなの課題 • Aggregatorの運用辛すぎ ○ とにかくここが死ぬ ○ ログの保存量を制御することは出来るが、 ログの流量を制御するのは難しい ■ アプリ側が大量のログ吐くとすぐ死ぬ ■ Collector側で工夫する?⇒収集すべきものとしないものの判 断難しい ○ パースやフィルタリングなどをやりやすい場所 ■ でも処理に比例して負荷が増す ● 死

Slide 26

Slide 26 text

みんなの課題 • ログの形式バラバラ問題 ○ ミドルウェアによって吐く形式が違う ○ チーム間でもログ形式は往々にして異なる ■ チーム間で形式統一を試みた⇒無理だった ○ パースせずに生データで保存 ■ 正規表現地獄 ○ ログ基盤側でなんとかする ■ 負荷で激重になる

Slide 27

Slide 27 text

みんなの課題 • ログとメトリクスの横断検索が難しい問題 ○ 何か問題が発生したとき、特定の時刻・特定のコンポーネントにおい て、ログとメトリクスを突き合わせて見たい ■ ログ基盤とメトリクスが分断していると、 横断して調べるのが辛い ■ SaaSや商用ソフトウェアだと、この機能を 備えているものもある

Slide 28

Slide 28 text

Alerting

Slide 29

Slide 29 text

みんなの課題 • 閾値の根拠は? • 通知先 ○ Slack ○ Chatwork ○ Pagerduty ○ メール • オンコール担当は誰か ○ アプリのログはアプリ開発者に ○ 基盤のログは基盤運用チームに

Slide 30

Slide 30 text

みんなの課題 • 突発的なアラート対応による生産性低下 ○ Scrum開発しているのに、アラート対応によってスプリント計画が めちゃくちゃに ○ 不安定な生活リズムによる生産性の低下 ○ ベロシティバラバラ

Slide 31

Slide 31 text

みんなの課題 • オンコール先任者・部門を作るか? ○ 対象アプリや基盤の知識が無い人がオンコール対応しても、 結局そのままエスカレーションされる ⇒ コミュニケーションロス • オンコールローテーション ○ オンコール対応後の休暇など、制度の確立も必要 ○ 少人数のチームだとどうする?

Slide 32

Slide 32 text

みんなの課題 • 誤検知・過剰なアラーティングへの対応 ○ アラートのレベル分け大事 • 閾値やアラートレベルの見直しはいつやるか ○ 定期的に見直す ○ アドホックに対応 • アラートルールのコード化はどうやるか

Slide 33

Slide 33 text

みんなの課題 • 通知すべきメトリクスのベストプラクティスはあるか? ○ ない! ○ そもそも組織によって結構異なる ○ アラーティングは、運用しながら育てる意識を持つこと

Slide 34

Slide 34 text

共通課題

Slide 35

Slide 35 text

それぞれ共通する課題 • コード化・自動化 ○ Toilは極限まで減らす意識を持つこと ○ 監視ルールは育てていくもの • 対応する人・組織・ロール ○ できる限り自動化が前提 ○ 単にコールを受けるだけのロールは悪手になりやすい • OSSか商用製品かManaged Serviceか ○ ケースバイケース ○ 無理に自前主義に走るのは考え物

Slide 36

Slide 36 text

Cloud Native Deep Dive https://www.meetup.com/ja-JP/Cloud-Native-Deep-Dive/ まずはJoin!

Slide 37

Slide 37 text

CloudNative Days

Slide 38

Slide 38 text

技術書典6 https://techbookfest.org/event/tbf06/circle/56220002 チェックリストに 追加してね!

Slide 39

Slide 39 text

おわり