在當(dāng)今以服務(wù)為核心的IT架構(gòu)中,對(duì)基礎(chǔ)軟件服務(wù)(如數(shù)據(jù)庫(kù)、Web服務(wù)器、消息隊(duì)列等)的實(shí)時(shí)監(jiān)控與及時(shí)告警是保障業(yè)務(wù)連續(xù)性的基石。本文將引導(dǎo)您快速搭建一套輕量級(jí)、高效的服務(wù)監(jiān)控體系,集成關(guān)鍵監(jiān)控插件,并實(shí)現(xiàn)企業(yè)微信告警,確保問題早發(fā)現(xiàn)、早處理。
我們推薦使用 Prometheus 作為監(jiān)控核心,搭配 Grafana 進(jìn)行數(shù)據(jù)可視化。這套組合功能強(qiáng)大、生態(tài)豐富且易于擴(kuò)展。
prometheus.yml 配置文件,定義監(jiān)控目標(biāo)(scrape_configs)。初始階段,您可以先添加本機(jī)(localhost:9090)作為目標(biāo)以驗(yàn)證部署。./prometheus --config.file=prometheus.yml 啟動(dòng)服務(wù)。http://<服務(wù)器IP>:3000,初始賬號(hào)密碼為admin/admin)。http://<Prometheus服務(wù)器IP>:9090。Prometheus通過各類“Exporter”來抓取目標(biāo)服務(wù)的指標(biāo)。以下為幾種基礎(chǔ)軟件的Exporter部署示例:
* 在Prometheus的 prometheus.yml 中添加新的抓取任務(wù):
`yaml
- jobname: 'node'
staticconfigs:
- targets: ['<目標(biāo)服務(wù)器IP>:9100']
`
PROCESS, REPLICATION CLIENT, SELECT)。DATA</em>SOURCE_NAME 設(shè)置連接串。ngx<em>http</em>stub<em>status</em>module 的版本,并啟用stub_status頁(yè)面。配置完成后,重啟Prometheus服務(wù),并在其Targets頁(yè)面檢查所有Exporter狀態(tài)是否為“UP”。
我們將使用 Alertmanager(通常與Prometheus一同部署)來處理告警,并通過其Webhook功能對(duì)接企業(yè)微信。
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx。2. 配置Alertmanager:
* 編輯Alertmanager的配置文件 alertmanager.yml。
`yaml
global:
resolvetimeout: 5m
route:
groupby: ['alertname']
groupwait: 10s
groupinterval: 10s
repeat_interval: 1h
receiver: 'wechat-webhook'
receivers:
- name: 'wechat-webhook'
webhook_configs:
- url: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx'
sendresolved: true # 發(fā)送問題解決通知
inhibitrules:
- sourcematch:
severity: 'critical'
targetmatch:
severity: 'warning'
equal: ['alertname', 'instance']
`
3. 配置Prometheus告警規(guī)則并關(guān)聯(lián)Alertmanager:
* 在Prometheus工作目錄下創(chuàng)建 alerts.yml 文件,定義告警規(guī)則。例如,定義一條服務(wù)器高負(fù)載告警:
`yaml
groups:
- name: host_stats
rules:
- alert: HighLoad
expr: node_load5 > 3.0
for: 2m
labels:
severity: warning
annotations:
summary: "高負(fù)載告警 (實(shí)例 {{ $labels.instance }})"
description: "{{ $labels.instance }} 5分鐘平均負(fù)載已超過 3,當(dāng)前值為 {{ $value }}"
`
* 在 prometheus.yml 中引用此規(guī)則文件,并設(shè)置Alertmanager地址:
`yaml
rule_files:
- "alerts.yml"
alerting:
alertmanagers:
- '
`
1. 登錄Grafana,進(jìn)入“Create” -> “Dashboard”。
2. 添加新的面板(Panel),數(shù)據(jù)源選擇Prometheus。
3. 在查詢(Metrics)框中,使用PromQL查詢語言編寫查詢語句,例如 node_load5 查看5分鐘負(fù)載。
4. 配置圖表樣式、標(biāo)題等,并保存儀表盤。
您也可以直接從Grafana官方社區(qū)導(dǎo)入現(xiàn)成的、功能豐富的儀表盤模板(如ID為1860的Node Exporter Dashboard)。
###
至此,您已經(jīng)完成了一個(gè)包含核心服務(wù)監(jiān)控(主機(jī)、MySQL等)、可視化大屏(Grafana)以及企業(yè)微信實(shí)時(shí)告警的閉環(huán)監(jiān)控系統(tǒng)搭建。這套體系具備良好的擴(kuò)展性,未來可以通過添加更多Exporter(如用于JVM的jmxexporter,用于消息隊(duì)列的kafkaexporter等)來覆蓋更廣泛的服務(wù)。后續(xù)的優(yōu)化重點(diǎn)可以放在告警路由精細(xì)化、告警分級(jí)降噪以及監(jiān)控指標(biāo)的業(yè)務(wù)視角梳理上,讓監(jiān)控真正成為運(yùn)維和開發(fā)的“眼睛”與“耳朵”。
如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.djj100.cn/product/46.html
更新時(shí)間:2026-03-17 13:08:52