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

配置啟動(dòng)文件 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 #暫停服務(wù)驗(yàn)證
郵箱查看是否收到告警郵件


vim node_alert.yaml #設(shè)置cpu使用報(bào)警
- 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 #重啟服務(wù)
rpm -ivh stress-1.0.4-16.el7.x86_64.rpm stress -c 2 #對(duì)cpu進(jìn)行壓測(cè)

瀏覽器查看、郵件查看是否有報(bào)警提示

3、設(shè)置釘釘關(guān)聯(lián)報(bào)報(bào)警
釘釘報(bào)警
創(chuàng)建群聊——群聊設(shè)置——機(jī)器人——添加機(jī)器人——自定義——添加——選擇加簽(復(fù)制密鑰)——完成(保存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 即可進(jìn)行測(cè)試,查看釘釘報(bào)警郵件

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Docker compose啟動(dòng)自定義jar包的步驟詳解
這篇文章主要介紹了使用Docker compose啟動(dòng)自定義jar包的步驟,首先我們需要編寫(xiě)一個(gè)docker-compose.yml文件來(lái)定義我們的服務(wù)傳到我們的云服務(wù)器上,本文給大家分享示例代碼,感興趣的朋友一起看看吧2024-03-03
Docker宿主機(jī)與容器之間的文件拷貝實(shí)例詳解
現(xiàn)在公司用docker,有時(shí)候需要從容器中拷貝文件出來(lái),下面這篇文章主要給大家介紹了關(guān)于Docker宿主機(jī)與容器之間的文件拷貝的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
在Ubuntu15.04上安裝Docker的步驟以及基本用法
Docker是一種輕量型的的類(lèi)虛擬機(jī)的平臺(tái),在開(kāi)發(fā)項(xiàng)目上還是很有優(yōu)勢(shì)的,這僅是我的一種直觀理解。所以這篇文章主要給大家介紹了在Ubuntu15.04上安裝Docker的步驟以及基本用法,有需要的朋友們可以參考借鑒。2016-10-10
Ubuntu20.04上安裝docker步驟及docker使用方法
Docker是一個(gè)可以簡(jiǎn)化容器中應(yīng)用程序進(jìn)程管理過(guò)程的應(yīng)用程序,容器允許你在資源隔離的進(jìn)程中運(yùn)行應(yīng)用程序,這篇文章主要介紹了Ubuntu20.04上安裝docker步驟及docker使用的相關(guān)資料,需要的朋友可以參考下2026-04-04
Docker 本地部署 CSR 前端項(xiàng)目完整指南
本文詳細(xì)介紹了使用Docker部署Vue3+Vite前端項(xiàng)目的完整流程,通過(guò)這套方案,開(kāi)發(fā)者可以輕松實(shí)現(xiàn)前端項(xiàng)目的容器化部署,確保開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境的一致性,感興趣的可以了解一下2026-01-01

