概要
メンテナンスなどのときに使えます
Alertmanager の Silence を使います
環境
- Promethues 2.24.1
- Alertmanager 0.21.0
Alertmanager の起動
192.168.100.10:9093 で起動します
mkdir -p alertmanager/data
cd alertmanager
vim alertmanager.yml
route:
receiver: 'containers_notification'
receivers:
- name: 'slack'
slack_configs:
- api_url: 'https://hooks.slack.com/services/xxxxxx/xxxxxx/xxxxxxxxx'
channel: '#general'
text: "{{ .CommonAnnotations.summary }}"
send_resolved: true
docker run -d -p 9093:9093 --name alertmanager -v $(pwd):/alertmanager prom/alertmanager --config.file=/alertmanager/alertmanager.yml
Promethues の起動
192.168.100.11:9090 で起動します
mkdir promethues
cd prometheus
vim promethues.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.100.10:9093
rule_files:
- 'alerts.rule'
scrape_configs:
- job_name: node
static_configs:
- targets:
- 192.168.100.12:9100
192.168.100.12:9100 が監視するノードで node_exporter を起動しておきます
vim alerts.rule
groups:
- name: 'Test monitoring'
rules:
- alert: 'cpu idel alert'
expr: node_cpu_seconds_total{cpu="0", instance="192.168.100.12:9100", job="node", mode="idle"} > 1
for: 5s
annotations:
summary: 'instance: {{ $labels.instance }}, value: {{ $value }}'
docker run -d -p 9090:9090 --name promethues -v $(pwd):/prometheus-data prom/prometheus --config.file=/prometheus-data/prometheus.yml
とりあえず通知が来ることを確認する
idel が 1 以上なので必ず通知が来ると思います
slack に通知が来ることを確認しましょう
一旦アラートを解消する
vim alerts.rule
groups:
- name: 'Test monitoring'
rules:
- alert: 'cpu idel alert'
expr: node_cpu_seconds_total{cpu="0", instance="192.168.100.12:9100", job="node", mode="idle"} < 1
for: 5s
annotations:
summary: 'instance: {{ $labels.instance }}, value: {{ $value }}'
docker restart promethues
Slack にアラート解除の通知が来ることを確認します
Silences を登録する
UI から登録できます
開始時間から終了時間の間にアラートしないようにできます
http://192.168.100.10:9093/#/silences
右上に Silence を登録できるボタンがあるのでクリックして作成します
デフォルトだと現在時刻から 2 時間が設定されています
Matchers にマッチしたアラートを無視するようになるので無視したいアラートのマッチ情報を記載しましょう
あとは User と Comment を適当に記載すれば OK です
Matchers はアラートに表示される key/value の値を設定します
登録が完了すると以下のようになります
動作確認
Silence 登録後に再度 alerts.rules を変更してアラートを発泡してみます
すると今度は Slack に通知が来ないのが確認できると思います
Alertmanager の Silence の項目を見るとちゃんと無視しているアラートとしても確認できます
ちなみにアラートが解消されていない状態で Silence が Expire になるとアラートが飛んで来るのでちゃんと解消されていることを確認してから Expire にしましょう
おまけ: API で Silence を登録する
curl http://localhost:9093/api/v1/silences -d '{
"matchers": [
{
"name": "alername",
"value": "cpu idel alert",
"isRegex": false
}
],
"startsAt": "2021-02-15T04:00:00.000000000Z",
"endsAt": "2021-02-15T05:00:00.000000000Z",
"createdBy": "api",
"comment": "test silence",
"status": {
"state": "active"
}
}'
0 件のコメント:
コメントを投稿