在数字化运维中,对基础软件服务(如数据库、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.meichengditu.com/product/55.html
更新时间:2026-02-28 05:15:17