はじめに
初めまして。3-shake Sreake事業部 Tsuchidaです。
アドベントカレンダー23日目担当します。
こちらの記事では導入の方法や細かいカスタム設定等につきましては記載しないのであらかじめご了承ください。
経緯
日々業務でわからないことや色々調べて社内のナレッジには書いていますがあまり公開しようと思っていなかったので、これを期に投稿しようと思いました。
今回は直近調べていたkubernetesの監視について少しまとめます。
監視
監視を導入するのにpull型とpush型2種類あります。
例に出しているツール以外にもあると思いますが最近見かけたものを書いてます。
-
pull型
- Prometheus
- Sysdig
-
push型
- Datadog
- Mackerel
- Sysdig
今回はPrometheusを選択したので監視を導入するのに使用したkube-prometheus-stackについて話していきます。
kube-prometheus-stackとは
prometheusでの監視設定とgrafanaのダッシュボードを一緒に導入できるコミュニティ管理されたhelm chart
kube-prometheus-stackのコンポーネントについて
prometheusはpull型監視なのでターゲットから定期的にメトリクスを収集します。pull型のメリットは監視対象がダウンした際にすぐにわかることです。
下記でそれぞれのコンポーネントがどんな役割なのか記載するので構築するのと同時に意識してもらえると今後細かいカスタマイズをする時やエラーが出た時にlogを確認したりが捗るのではと思ってます。
-
- kubernetesカスタムリソースを使用してPrometheus, Alertmanagerや関連コンポーネントのデプロイと管理をやってくれる
- バージョン、永続性、リテーションポリシー、レプリカなのど設定をネイティブk8sリソースから行える
- k8sラベルクエリに基づいて監視対象の設定を自動生成してくれる
-
Highly available Prometheus
- 2つ以上の別々のマシンで同一のprometheusサーバーを実行している
-
Highly available Alertmanager
- Prometheusサーバーなどのクライアント・アプリケーションから送信されたアラート処理をしていて適切なレシーバーのためにアラートの重複排除、グループ化、ルーティングを実行している。またアラートの消音や抑制もやってくれる。
-
- マシン自体のモニタリングをしてくれる
-
Prometheus Adapter for Kubernetes Metrics APIs
- k8sのリソースメトリクス、カスタムメトリクス、外部メトリクスAPIが入ってる
-
- deployment, node, podなどの状態をメトリクスで取得できる
-
- prometheusよりUI UXが優秀なダッシュボード
おわりに
kubernetesの監視を導入することが初めてでしたしprometheusも初だったので分からないことだらけで大変でしたが、helmを流すだけで監視ツールが導入できるkube-prometheus-stackは便利だなと感じました。
今後も違うツールを使う機会があればまたまとめたいと思います。
今回の話とは関係ありませんがDatadogの社内ブログもたまに書いてるのでみていただけると嬉しいです。
参考