如何部署Alertmanager發(fā)送告警
1、Alertmanager簡介
Prometheus 對指標的收集、存儲與告警能力分屬于 Prometheus Server 和 AlertManager 兩個獨立的組件,前者僅負責定義告警規(guī)則生成告警通知, 具體的告警操作則由后者完成。
Alertmanager 負責處理由 Prometheus Server 發(fā)來的告警通知,Alertmanager對告警通知進行分組、去重后,根據路由規(guī)則將其路由到不同的receiver,如Email、釘釘或企業(yè)微信等。
除了基本的告警通知能力外,Altermanager還支持對告警進行去重、分組、抑制、靜默和路由等功能:
- 分組(Grouping):將相似告警合并為單個告警通知的機制,在系統(tǒng)因大面積故障而觸發(fā)告警潮時,分組機制能避免用戶被大量的告警噪聲淹沒,進而導致關鍵信息的隱沒
- 抑制(Inhibition):系統(tǒng)中某個組件或服務故障而觸發(fā)告警通知后,那些依賴于該組件或服務的其它組件或服務可能也會因此而觸發(fā)告警,抑制便是避免類似的級聯(lián)告警的一種特性,從而讓用戶能將精力集中于真正的故障所在
- 靜默(Silent):是指在一個特定的時間窗口內,即便接收到告警通知,Alertmanager也不會真正向用戶發(fā)送告警信息的行為;通常,在系統(tǒng)例行維護期間,需要激活告警系統(tǒng)的靜默特性
- 路由(route):用于配置Alertmanager如何處理傳入的特定類型的告警通知,其基本邏輯是根據路由匹配規(guī)則的匹配結果來確定處理當前告警通知的路徑和行為
2、部署使用Alertmanage
cd /opt 上傳alertmanager-0.24.0.linux-amd64.tar.gz tar xf alertmanager-0.24.0.linux-amd64.tar.gz mv alertmanager-0.24.0.linux-amd64 /usr/local/alertmanager cd /usr/local/alertmanager cp alertmanager.yml alertmanager.yml.bak vim alertmanager.yml

配置啟動文件 cd /usr/lib/systemd/system [Unit] Description=alertmanager Documentation=https://prometheus.io/ After=network.target [Service] Type=simple ExecStart=/usr/local/alertmanager/alertmanager \ --config.file=/usr/local/alertmanager/alertmanager.yml \ --log.level=debug ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target systemctl start alertmanager.service systemctl enable alertmanager.service netstat -lntp | grep alert


cd /usr/local/prometheus/
mkdir alert_rules
cd alert_rules/
vim node_alert.yaml
groups:
- name: k8s_instances
rules:
- alert: instance_down
expr: up{job="node_exporter"} == 0
for: 1m
labels:
severity: "critical"
annotations:
summary: "instance is down"
description: "instance had been down for more than one minute"
cd /usr/local/prometheus/ vim prometheus.yml 13行#- 192.168.9.113:9093 17行#- "alert_rules/*.yaml" systemctl restart prometheus.service


systemctl stop node_exporter.service #暫停服務驗證
郵箱查看是否收到告警郵件


vim node_alert.yaml #設置cpu使用報警
- alert: "cpu_usage too high"
expr: (1 -avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) * 100 > 80
for: 20s
labels:
severity: "warning"
annotations:
summary: "cpu usage is too high"
description: "instance: {{ $labels.instance }}, cpu usage is too high! now value is {{ $value }}"
cd ..
systemctl restart prometheus.service #重啟服務
rpm -ivh stress-1.0.4-16.el7.x86_64.rpm stress -c 2 #對cpu進行壓測

瀏覽器查看、郵件查看是否有報警提示

3、設置釘釘關聯(lián)報報警
釘釘報警
創(chuàng)建群聊——群聊設置——機器人——添加機器人——自定義——添加——選擇加簽(復制密鑰)——完成(保存webhook地址)
上傳prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /usr/local/dingtalk cd !$ cp config.example.yml config.yml vim config.yml 取消2、8、9、13、14、15注釋 注釋23-39行 20行替換為保存的webhook地址 22行替換為保存的加簽 ./prometheus-webhook-dingtalk
cd /usr/local/alertmanager/
vim alertmanager.yml
末尾添加
- name: 'dingtalk.webhook1'
webhook_configs:
- url: 'http://192.168.9.113:8060/dingtalk/webhook1/send'
send_resolved: true
13行修改 receiver: 'dingtalk.webhook1'
systemctl reload alertmanager.service 即可進行測試,查看釘釘報警郵件

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Windows Server 2016 安裝 Docker的過程及遇到問題
若要在 Windows Server 上安裝 Docker,可以使用由 Microsoft 發(fā)布的 OneGet 提供程序 PowerShell 模塊,接下來通過本文給大家介紹Windows Server 2016 安裝 Docker的過程及遇到問題,一起看看吧2021-09-09
docker安裝Jenkins執(zhí)行構建jar運行方式
這篇文章主要介紹了docker安裝Jenkins執(zhí)行構建jar運行方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
docker compose入門helloworld的詳細過程
docker-compose是基于docker的,所以我們需要先安裝docker才能使用docker-compose,接下來通過本文給大家介紹docker compose入門helloworld的過程,一起看看吧2021-09-09
gitlab-runner中搭建nvm、nrm以及優(yōu)化maven打包方式
文章描述了如何在GitLab Runner上配置NVM、NRM,并優(yōu)化Maven打包過程,通過上述配置和優(yōu)化,作者將Maven打包時間從三分鐘縮短到不到40秒2024-11-11
Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs
本文詳細介紹了如何通過Docker來安裝和配置MySQL數據庫,包括拉取MySQL鏡像、啟動MySQL容器、配置MySQL、解決常見錯誤等步驟,提供了詳盡的命令和參數說明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動時遇到的“無法讀取目錄”2024-10-10

