# alertmanager ### 概念 根據 alertmanager 官網指出 https://prometheus.io/docs/alerting/alertmanager/ ``` The Alertmanager handles alerts sent by client applications such as the Prometheus server. ``` 基本上 alertmanager **並不會** 去 polling (主動 query) prometheus 得知需要送哪個 alerts,反而是被動的等人 triger alerts, 目前想到這樣的理由可能是可以簡化程序.但是也有點違反一般人的想像.不過在 debug 上倒是變得很簡單,因為很單純. 此外 alert 並不會去管理內容是否正確 ( 只會確認 json 格式是否正確這樣 ), 所以可以發送任意訊息. ### 測試 alert mail alertmanager 有提供 api 可以直接透過 curl 來 trigger alert ``` alerts1='[ { "labels": { "alertname": "test name", "severity" : "Warning" }, "annotations": { "Threshold": "<= 2", "dashboard": "test", "description":"test", "infoURL":"test", "summary":"this is a test mail", "value":"2" } } ]' curl -XPOST -d "$alerts1" http://<alertmanager url>/api/v1/alerts ``` 如果把 log 開到 debug 層級,就可以看到 alert 有沒有寄出,然後也可以看到設定的信箱有沒有收到. 但是無法看到是走哪個 receiver. ### 確認產生的 alert 這個部分可以用來 debug route 的設定是否正確, 因為就算把 alertmanager 的 log 開到 debug, 他並不會輸出是哪個 receiver 寄信.所以透過這個 api 可以列出 alertmanager 是透過那個 receiver 寄出 alert. 輸出是 json 所以建議搭配 jq -r 讓排版好看點 ``` curl -X GET http://<alertmanager url>/api/v1/alerts ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.