概要
cAdvisor のメトリックを使って Prometheus でコンテナの死活監視をする方法です
どうやら cAdvisor のバグっぽいのでいずれはこの方法を使わないでも監視できるようになるかもしれないです
環境
- Ubuntu 16.04 LTS
- Prometheus 2.4.2
- Prometheus AlertManager v0.15.2
- cAdvisor v0.27.4
- docker 18.03.1-ce
Prometheus の監視ルール
特定のコンテナを死活監視するルールは以下の通りです
groups:
- name: 'Containers monitoring'
rules:
- alert: 'container_1 not running'
expr: absent(container_tasks_state{name="container_1",state="running"}) == 1
for: 5s
annotations:
summary: "{{ $value }}"
ポイントは absent を使う点です
本来 container_tasks_state
は state
に応じて適切な値を返却するはずなのですがどの state も常に 0 を返却するバグがあるようです
そしてコンテナが停止した場合には何もデータが入ってきません
absent はデータがない場合に 1 を返却してくれる関数になります
つまりデータがない = コンテナが停止しているときにアラートを上げる監視ルールを追加して上げれば OK です
Issue を見ると bug のラベルが振られているのでいずれ修正される問題かなと思います
0 件のコメント:
コメントを投稿