Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mackerel Drink Up #9 ロール内異常検知の正式化

Mackerel Drink Up #9 Tokyoでの登壇資料です。

https://mackerelio.connpass.com/event/144889/

  • Login to see the comments

Mackerel Drink Up #9 ロール内異常検知の正式化

  1. 1. Mackerel Drink Up #9 ロール内異常検知の正式化 id:syou6162 2019/10/23
  2. 2. 自己紹介 ● id:syou6162 ● Mackerelチーム開発チーム ○ アプリケーションエンジニア ○ ロール内異常検知開発など 2
  3. 3. 今日の話題 ● これまでのMackerelの監視 ● どういう場面でロール内異常検知は有用? ● ロール内異常検知の基本的な考え方と設定方法 ● 前回のMeetupからの改善点 3
  4. 4. 4 サービス/ロール毎に監視ルール設定 静的な閾値によるアラートの発報 サービス/ロールでホストを 分かりやすくグルーピング はてな ブックマーク DB App Proxy DB_01 DB_02 App_01 App_02 Proxy_01 Proxy_02 はてなブログ DB App Proxy DB_01 DB_02 App_01 App_02 Proxy_01 Proxy_02 例: CPUの使用率が90% 越えたらCriticalアラート
  5. 5. サーバー監視の困り事 ● サーバー監視初心者の場合 ● サーバー監視玄人の場合 5
  6. 6. サーバー監視初心者の場合 ● 例: アプリケーションエンジニア ● クラウドを使うようになって、サーバーも自分で立てるよ うになった ○ しかし、サーバー監視はよく分からない... ● 本質的にはアプリケーションコードの開発に集中したい 6
  7. 7. サーバー監視玄人の場合 ● インフラ周りの知識が豊富、何を監視すればいいか経 験的に知っている ● 見なければいけないサービスも多く、多忙なことも ● 監視ルールを一度設定すれば終わり、ではなく定期的 にメンテナンスする必要がある 7
  8. 8. 機械学習による監視のサポート ● 以下を実現したい ○ インフラの知識があまりなくても、低コストで監視ルールが作れる ○ 人間が列挙するには煩雑な複数の条件を考慮した監視ができる ● 機械学習による異常検知機能でユーザーをサポートし たい! 8
  9. 9. これまでのタイムライン ● 2018/8: Mackerel Meetup #12 ○ 機械学習を用いたMackerelの異常検知機能について ● 2019/3: ロール内異常検知 Publicβリリース ● 2019/7: ロール内異常検知 正式リリース 9
  10. 10. アラートの具体例 10 特徴: ● 具体的なメトリック名は指定する必要がない ○ ロール名だけ指定すればよい ● 異常なメトリックはグラフ付きでアラート
  11. 11. 基本的な考え方: ガウス分布 11 異常と判定 正常と判定 CPU使用率 確 率
  12. 12. 実サービスだとガウス分布一個では不十分 12
  13. 13. 基本的な考え方: 混合ガウス分布 13
  14. 14. 混合ガウス分布に基づく異常検知 14 ● 確率が低い箇所を異常と判定 ● 平日/休日といった負荷の変化に対応 memory 休日や夜間等比較的 負荷の低いケース 平日を中心とした比較的 負荷の高いケース 異常と判定されるケース1 異常と判定されるケース2 cpu
  15. 15. 設定方法 15
  16. 16. 監視ルールの設定(1) 16
  17. 17. 監視ルールの設定(2) 17
  18. 18. 監視ルールの設定(2) 18 他の監視ルールと同様に ● 最大試行回数 ● 再送 の設定もできます
  19. 19. 特徴と注意点 ● 機械学習の知識がなくても簡単に使える ○ どの期間が異常だったか大量のラベル付けをする必要もない ● ロール内のどのサーバーが異常だったか分かる ● 注意: 現在はLinuxのmackerel-agentのみ対応 19
  20. 20. 前回のMeetupからの改善点 ● サーバー内のどのメトリックが異常か分かるように ● ユーザーさんが学習期間を指定できるように 20
  21. 21. 改善点1: どのメトリックが異常か分かるように 21
  22. 22. アプリーケーションが性能改善した場合は学習期間も 変更したい...! 22 時刻 CPU使用率 しかし、過去と傾向が 変化したため 異常と判定されてしまった... CPU使用率が定常的に 高かったため、改善リリース!
  23. 23. 改善点2: 学習期間の変更ができるように 23 APIやmackerel-client-goにも 対応してます!
  24. 24. まとめ ● 機械学習を使った新しい監視設定 ● サーバー監視の初心者 / 玄人のどちらにもオススメ ● これまでの監視ルールと同じように簡単に設定できます ● ロール内のどのサーバー、どのメトリックが異常かを分 かりやすくアラート ● どうぞご利用ください! 24

×