More Related Content
Similar to PrometheusによるKubernetes環境の異常検知改善.pptx (6)
PrometheusによるKubernetes環境の異常検知改善.pptx
- 9. • 認証サービスのシステム稼働環境
Z.com Cloud Enterprise(IaaS)上に各環境合わせて約100台のVMで運用
アプリケーションコンテナ管理にKubernetes/Dockerを利用
Kubernetes/Docker環境は自前で構築運用
9
Kubernetes
Nagios
認証サービス
外形監視
Munin
リソース監視
運用担当者
障害通知
Elasticsearch ・・・
Z.com Cloud Enterprise
ホストOS
- 18. • Metrics in Kubernetes
Kubernetesのメトリクスを提供する仕組み
kubelet: コンテナリソースのメトリクスを提供
kube-state-metrics: Kubernetesのメトリクス提供ツールからメトリクスを収集
• Node Exporter
Kuberntesのノードのメトリクスを収集する仕組み
18
- 29. • PromQL
データ型
• Instant Vector: 時系列上に単一データを持つ型、グラフ化できる
• Range Vector: 時系列上に複数データを持つ型、グラフ化できない
• Scalar: 浮動小数型
時系列セレクター
• Instant Vector Selectors: Instant Vector型を取得する、メトリクスも含む
node_memory_MemTotal_bytes
node_memory_MemTotal_bytes{job=“node-exporter”, instance=“192.168.X.Y”}
• Range Vector Selectors: Instant Vector型からRange Vector型を取得する
node_memory_MemTotal_bytes[1d]
29
- 31. 31
時
気温(℃)
0 6 12 18 24
10
22
Prometheus
temparature [(0, 10), (1, 11), ・・・(24, 10)]
PromQL
temperature(メトリクス)
Instant Vector(メトリクスそのもの)
グラフ化
時
気温(℃)
0 6 12 18 24
10
22
Prometheus
temparature [(0, [(0, 10)],
(1, [(0, 10), (1, 11)], ・・・
(24, [(22, 12), (23, 11), (24, 10)]
PromQL
temperature[2h]
Range Vector
イメージ
10
時系列上に3つのベクトル値
- 32. 32
時
気温(℃)
0 6 12 18 24
10
22
10
• Functions
Range Vectorの時点では意味がない
Functionと組み合わせることで意味のある指標に変換できる
avg_over_time(v range-vector): 指定した範囲に含まれる平均値
delta(v range-vector): Range Vectorの時系列上の最初と最後の値の差分
avg_over_time
時
気温(℃)
0 12 24
11
21
直近2時間ごとの平均気温
delta
時
気温(℃)
0 12 24
直近2時間の気温変化
2
-2
Instant Vector
グラフ化できる
- 40. • ディスク容量不足に気付けなかった理由
特定リクエストで1MB程ログが出る修正が入る => レビューで気付けない
Nagiosでディスク使用量のWarningアラートが発生 => ログ量変化に気付けない
Warningの閾値を超えた状態が続きアラートが発生しない
Criticalアラート(オンコール)が発生したため古いログ削除 => 調査の時間取れず
再度Criticalアラート(オンコール)が発生したため古いログ削除
Nagiosのディスク使用量の閾値見直し
閾値が高すぎてアラートが発生する前に認証サービスのPodが除外される
=> Node-pressure Evictionの仕様を正しく理解できていなかった
40