alertmanager 報警工具

AlertManager 簡介

Prometheus將數(shù)據(jù)采集和報警分成了兩個模塊澎媒。報警規(guī)則配置在Prometheus Servers上,然后發(fā)送報警信息到AlertManger冬三,然后我們的AlertManager就來管理這些報警信息,包括silencing、inhibition蒲每,聚合報警信息過后通過email、PagerDuty望蜡、HipChat腕侄、Slack 等方式發(fā)送消息提示微姊。

  • 讓AlertManager提供服務(wù)總的來說就下面3步:

    • 安裝和配置AlertManger
    • 配置Prometheus來和AlertManager通信
    • 在Prometheus中創(chuàng)建報警規(guī)則
  • prometheus報警觸發(fā)流程

    • prometheus采集數(shù)據(jù)
    • 判斷當(dāng)前數(shù)據(jù)指標(biāo)有沒有到達閾值
    • 如果觸發(fā),根據(jù)配置文件中的for字段判斷持續(xù)時間
    • 是的話發(fā)送給alertmanager
    • alertmanager經(jīng)過
    • 分組
    • 抑制
    • 靜默等一些列處理流程
    • 發(fā)送給指定的接收器, 如:郵件飘诗、微信等

部署AlertManager

wget https://github.com/prometheus/alertmanager/releases/download/v0.17.0/alertmanager-0.17.0.linux-amd64.tar.gz
tar xvf alertmanager-0.17.0.linux-amd64.tar.gz
mv alertmanager-0.17.0.linux-amd64 /usr/local/alertmanager
cd /usr/local/alertmanager/

配AlertManager

# 編輯主配置文件
vim /usr/local/alertmanager/alertmanager.yml
global: 
  resolve_timeout: 5m #解析的超時時間
  smtp_smarthost: 'smtp.163.com:25' #郵箱smtp地址
  smtp_from: 'USERNAME@163.com' #來自哪個郵箱發(fā)出的
  smtp_auth_username: 'USERNAME@163.com' #郵箱的用戶名
  smtp_auth_password: 'PASSWORD' #這里是郵箱的授權(quán)密碼溉潭,不是登錄密碼
  smtp_require_tls: false #是否啟用tls

route:  #設(shè)置報警的分發(fā)策略,通過route實現(xiàn)告警的分配,所有的報警都會發(fā)送到mail這個接收器中
  group_by: ['alertname'] #采用哪個標(biāo)簽進行分組
  group_wait: 60 #分組等待的時間為10秒惠毁,收到報警后并不是馬上發(fā)送出去飒焦,看看還有沒有alertname這個標(biāo)簽的報警發(fā)過來翁巍,如果有的話蛔趴,一起發(fā)出報警
  group_interval: 60 #上一組報警與下一組報警的間隔時間為10秒
  repeat_interval: 24h #重復(fù)報警時間
  receiver: 'mail'
  
receivers: #報警接收人
- name: 'mail' #誰來接收這個報警
  email_configs: #email的配置
  - to: 'misterbyj@163.com' #報警接收人的郵件地址
    send_resolved: true  #發(fā)送恢復(fù)通知
  
inhibit_rules: #抑制規(guī)則,報警抑制角色鱼蝉,用于報警收斂,發(fā)送關(guān)鍵報警
  - source_match: #匹配我這個報警發(fā)生后间唉,其它報警被抑制掉印叁,
      severity: 'critical' #報警級別為critical
    target_match: #其它報警
      severity: 'warning' #報警級別為warning
    equal: ['alertname', 'dev', 'instance'] #對哪些報警進行抑制,要匹配這里的標(biāo)簽

# 檢查alertmanager.yml配置文件是否正確
/usr/local/alertmanager/amtool check-config /usr/local/alertmanager/alertmanager.yml

# 生成服務(wù)文件
cat > /usr/lib/systemd/system/alertmanager.service << EOF
[Unit]
Description=prometheus

[Service]
Restart=on-failure
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml

[Install]
WantedBy=multi-user.target
EOF

# 啟動服務(wù)
systemctl daemon-reload
systemctl start  alertmanager
systemctl enable alertmanager
ps -ef|grep alertmanager

alertmanager與prometheus集成

  • prometheus與alertmanager通信
    • 在prometheus server上定義監(jiān)控規(guī)則
    • 當(dāng)監(jiān)控的閾值超過定義的閾值后會發(fā)送報警
    • 推送報警規(guī)則給alertmanager
    • 通過alertmanager的流程處理發(fā)送給報警接收人
# 創(chuàng)建報警規(guī)則目錄
mkdir -p /usr/local/prometheus/rules

vim /usr/local/prometheus/prometheus.yml
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 127.0.0.1:9093

rule_files:
  - "rules/*.yml" #報警規(guī)則存放文件夾

配置監(jiān)控實例闲延,監(jiān)控job的狀態(tài)

vim /usr/local/prometheus/rules/unreachable.yml
groups: 
  - name: general.rules #同性質(zhì)的一組報警找颓,監(jiān)控當(dāng)前節(jié)點的指標(biāo)的組名稱
    rules:
    - alert: InstanceDown
      expr: up == 0 #每一個實例都會有一個up的狀態(tài)佛析,up是默認(rèn)賦予被監(jiān)控端的一個指標(biāo),0為失敗狀態(tài)桃纯,1為存活狀態(tài)
      for: 1m #當(dāng)前報警的持續(xù)時間,1分鐘之內(nèi)如果都是up == 0的狀態(tài),才會發(fā)出報警
      labels: #設(shè)置報警級別
        severity: error #報警級別為error級別
      annotations: #注釋信息
        summary: "Instance {{ $labels.instance }} down"
        description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."

/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
kill -hup `ps -ef |grep prometheus|grep -v grep|awk '{print $2}'`        
image.png

報警狀態(tài)

  • 報警狀態(tài)

    • inactive-已收到報警
    • pending-已經(jīng)觸發(fā)報警閾值猜绣,但未滿足告警持續(xù)時間 #/usr/local/prometheus/rules/unreachable.yml 中設(shè)置的for時間
    • firing-已觸發(fā)閾值,且滿足報警持續(xù)時間,將報警發(fā)送給報警接收者
  • 報警的觸發(fā)流程

    • 第一次發(fā)現(xiàn)expr: up == 0,prometheus此時將報警狀態(tài)設(shè)置為inactive
    • 第二次發(fā)現(xiàn)expr: up == 0多搀,prothemeus不會立即通知alertmanager赌髓,要等待for: 1m的持續(xù)時間,如果1分鐘后還是expr: up == 0的狀態(tài)悯搔,prometheus會將pending狀態(tài)變更為firing狀態(tài)苏揣,變?yōu)閒iring狀態(tài)時藏古,prometheus將通知alertmanager發(fā)送報警
    • 發(fā)送報警的時間取決于數(shù)據(jù)采集時間+報警評估時間

報警郵件

恢復(fù)郵件

報警收斂-靜默

靜默是一種簡單的特定時間的靜音提醒機制靡馁,使用標(biāo)簽來匹配這一批是不發(fā)送的

添加靜默
http://192.168.21.37:9093/#/alerts

右上角-->new silence-->start開始時間-->end結(jié)束時間-->matchers匹配
-->name匹配名稱-->填寫job-->value值-->填寫linux-node-->
creator名稱-->填寫靜默名稱-->點擊create

作用
阻止預(yù)期的報警尤误,通常是在系統(tǒng)上線或維護階段使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末红竭,一起剝皮案震驚了整個濱河市眉厨,隨后出現(xiàn)的幾起案子箕慧,更是在濱河造成了極大的恐慌伐庭,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件集乔,死亡現(xiàn)場離奇詭異扰路,居然都是意外死亡幼衰,警方通過查閱死者的電腦和手機缀雳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門肥印,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人深碱,你說我怎么就攤上這事敷硅。” “怎么了力奋?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵幽七,是天一觀的道長。 經(jīng)常有香客問我,道長猿挚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任铣墨,我火速辦了婚禮,結(jié)果婚禮上伊约,老公的妹妹穿的比我還像新娘。我一直安慰自己八秃,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布肉盹。 她就那樣靜靜地躺著昔驱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪上忍。 梳的紋絲不亂的頭發(fā)上骤肛,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音窍蓝,去河邊找鬼腋颠。 笑死,一個胖子當(dāng)著我的面吹牛吓笙,可吹牛的內(nèi)容都是我干的淑玫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼面睛,長吁一口氣:“原來是場噩夢啊……” “哼土涝!你這毒婦竟也來了但壮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎您没,沒想到半個月后欧募,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跟继,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡莺匠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年遥缕,在試婚紗的時候發(fā)現(xiàn)自己被綠了单匣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迹冤。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡膜蠢,死狀恐怖礁竞,靈堂內(nèi)的尸體忽然破棺而出模捂,到底是詐尸還是另有隱情综看,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站忠寻,受9級特大地震影響奕剃,放射性物質(zhì)發(fā)生泄漏芜茵。R本人自食惡果不足惜绞佩,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一烤低、第九天 我趴在偏房一處隱蔽的房頂上張望涯呻。 院中可真熱鬧复罐,春花似錦、人聲如沸咽笼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抖苦。三九已至米死,卻和暖如春峦筒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卤材。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卓练,地道東北人闸溃。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子函匕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Prometheus Alertmanager 概述 Alertmanager與Prometheus是相互分離的兩...
    YichenWong閱讀 29,011評論 1 9
  • 主機數(shù)據(jù)收集 主機數(shù)據(jù)的采集是集群監(jiān)控的基礎(chǔ)沸伏;外部模塊收集各個主機采集到的數(shù)據(jù)分析就能對整個集群完成監(jiān)控和告警等功...
    梅_梅閱讀 6,690評論 0 7
  • 轉(zhuǎn)載自公眾號【工匠小豬豬的技術(shù)世界】原文地址https://mp.weixin.qq.com/s/Tnx60stl...
    一帥閱讀 4,674評論 0 2
  • 背景目前階段,我司主要監(jiān)控告警系統(tǒng)使用的是 Zabbix,對于基礎(chǔ)設(shè)施及應(yīng)用服務(wù)狀態(tài)監(jiān)控印荔,Zabbix 內(nèi)建或由社...
    dennyhong閱讀 11,869評論 5 21
  • ①百度網(wǎng)盤的會員可以提供免費解壓水泉,快速下載的問題,所以畔师,我們愿意付費給它塔鳍。當(dāng)然了,也有圖免費的不愿意買的放前,但百度網(wǎng)...
    李小妹mei閱讀 220評論 1 0