在數字化運維中,對基礎軟件服務(如數據庫、Web服務器、消息隊列等)的實時監控與及時告警至關重要。本文將引導您快速搭建一套集服務監控、數據收集與微信告警于一體的基礎系統。
一、 核心架構與選型
一套典型的監控告警系統通常包含以下核心組件:
node<em>exporter(主機指標)、mysqld</em>exporter(MySQL)、nginx-exporter(Nginx)等。它們以HTTP接口暴露標準化的指標數據。alerting rules 進行計算。二、 快速部署步驟
步驟1:部署數據采集器(以 nodeexporter 為例)
在被監控的服務器上,下載并運行 node</em>exporter,它默認在 9100 端口提供指標。`bash
# 下載
wget https://github.com/prometheus/nodeexporter/releases/download/v1.6.0/nodeexporter-1.6.0.linux-amd64.tar.gz
# 解壓并運行
tar xvfz nodeexporter-*.*.tar.gz
cd nodeexporter-.
./node_exporter &`
為其他服務(如MySQL, Nginx)部署對應的Exporter,并確保其端口可被Prometheus Server訪問。
步驟2:部署與配置Prometheus Server
1. 下載并解壓Prometheus。
2. 編輯配置文件 prometheus.yml,主要配置兩部分:
* scrapeconfigs:定義要拉取數據的目標(即上述Exporter)。
`yaml
scrapeconfigs:
- jobname: 'node'
staticconfigs:
- jobname: 'mysql'
staticconfigs:
- targets: ['MySQL服務器IP:9104'] # mysqld_exporter默認端口
`
* alerting:設置Alertmanager的地址。
`yaml
alerting:
alertmanagers:
- 'localhost:9093' # Alertmanager默認端口
`
./prometheus --config.file=prometheus.yml步驟3:配置告警規則
在Prometheus配置目錄下創建規則文件(如 rules.yml),并在 prometheus.yml 中通過 rule_files 引用。以下是一個檢測主機是否存活的規則示例:`yaml
groups:
- name: host_monitor
rules:
- alert: InstanceDown
expr: up{job="node"} == 0 # up指標為0表示目標失聯
for: 1m # 持續1分鐘才觸發
labels:
severity: critical
annotations:
summary: "實例 {{ $labels.instance }} 宕機"
description: "{{ $labels.job }} 在 {{ $labels.instance }} 已無法訪問超過1分鐘。"`
重啟Prometheus使規則生效。
步驟4:部署與配置Alertmanager
1. 下載并解壓Alertmanager。
2. 創建企業微信機器人:在企業微信群聊中添加“群機器人”,獲取Webhook地址(格式如:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXX)。
3. 編輯Alertmanager配置文件 alertmanager.yml,配置微信告警路由與接收器。`yaml
route:
groupby: ['alertname']
groupwait: 10s
groupinterval: 10s
repeatinterval: 1h
receiver: 'wechat-webhook'
receivers:
- name: 'wechat-webhook'
webhook_configs:
- url: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的機器人KEY'
send_resolved: true # 發送恢復通知`
./alertmanager --config.file=alertmanager.yml步驟5:驗證與測試
1. 訪問 http://Prometheus服務器IP:9090,在“Status”->“Targets”中查看所有監控目標狀態是否為“UP”。
2. 訪問 http://Prometheus服務器IP:9090/alerts 查看配置的告警規則狀態。
3. 可以手動停止一個 node_exporter 服務,約1分鐘后,在Prometheus的Alerts頁面應看到 InstanceDown 告警觸發(狀態為 FIRING)。
4. 您配置的企業微信群將收到來自機器人的告警卡片消息,包含告警標題、詳情及恢復通知。
三、 進階與優化
可視化:集成 Grafana,連接Prometheus數據源,制作豐富的監控儀表盤。
監控更多服務:根據需求部署 redis<em>exporter, kafka</em>exporter, elasticsearch_exporter 等。
高可用與安全:考慮Prometheus、Alertmanager的高可用部署,并為組件間通信配置TLS加密。
告警精細化:在Alertmanager中配置更復雜的路由策略,實現按告警級別、服務類型分派到不同人員或群組。
通過以上步驟,您已成功搭建了一套基礎但完整的軟件服務監控與微信告警系統。這套以Prometheus為核心的開源方案靈活、高效,是構建現代化運維監控體系的堅實起點。
如若轉載,請注明出處:http://www.j87dgw.cn/product/55.html
更新時間:2026-03-02 03:48:01