Docker安装Prometheus+Grafana+Alertmanager实现企业微信告警监控
一、简介二、启动node-exporterdocker run -d -p 9100:9100 --name node-exporter\-v "/proc:/host/proc:ro" \-v "/sys:/host/sys:ro" \-v "/:/rootfs:ro" \--net="host" \prom/node-exporter访问:http://192.168.220.76:9100/
目录
一、简介
软件名称 | 简介 | 访问地址 |
Node-exporter | node-exporter采用go语言开发,专门用来收集Linux系统中硬件、系统指标。 | http://192.168.220.76:9100/metrics |
Prometheus | Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。 | http://192.168.220.76:9090/graph |
Cadvisor-exporter | 搜集容器信息。 | http://192.168.220.76:8080/containers |
Grafana | Grafana是用于可视化大型测量数据的开源程序。 | http://192.168.220.76:3000 |
Alertmanager | Alertmanager是独立于Prometheus的一个组件,可以支持Prometheus的查询语句,提供十分灵活的报警方式。 | http://192.168.220.76:9093/#/alerts |
Blackbox_exporter | blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集。 | http://192.168.220.76:9115/prod |
图源官方
二、安装 Node-exporter
1、启动 node-exporter
docker run -d -p 9100:9100 --name node-exporter\
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
prom/node-exporter
2、访问: http://192.168.220.76:9100/metrics
三、安装 Prometheus
1、新建目录prometheus,编辑配置文件prometheus.yml
mkdir /home/prometheus/conf
cd /home/prometheus/conf
vim prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting: #指定alertmanager报警组件地址
alertmanagers:
- static_configs:
- targets: [ '192.168.220.76:9093']
rule_files: #指定报警规则文件
- "rules.yml"
scrape_configs:
- job_name: 'nodehost'
static_configs:
- targets: ['192.168.220.76:9100','192.168.220.76:8080']
labels:
appname: 'Node1'
- job_name: 'prometheus'
static_configs:
- targets: [ '192.168.220.76:9090']
labels:
appname: 'prometheus'
- job_name: 'prometheus_port_status'
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets: ['192.168.220.76:12345']
labels:
instance: 'port_status'
group: 'tcp'
relabel_configs: #此处为blackbox-exporter配置
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.220.76:9115
2、创建rules.yml文件
mkdir /home/prometheus/conf
cd /home/prometheus/conf
vim rules.yml
groups:
- name: example #定义规则组
rules:
- alert: InstanceDown #定义报警名称
expr: probe_success == 0 #Promql语句,触发规则
for: 30s
labels: #标签定义报警的级别和主机
name: instance
severity: Critical
annotations:
summary: " {{ $labels.appname }}" #报警摘要,取报警信息的appname名称
description: " 服务停止运行 " #报警信息
value: "{{ $value }}%" # 当前报警状态值
3、创建prometheus容器
docker run -d -p 9090:9090 --name=prometheus \
-v /home/prometheus/conf/:/etc/prometheus/ \
prom/prometheus
4、访问 http://192.168.220.76:9090/graph
5、访问 http://192.168.220.76:9090/targets
四、安装 Cadvisor-exporter
1、启动 Cadvisor-exporter容器
docker run --volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 --detach=true --name=cadvisor \
--net=host google/cadvisor:latest
2、访问 http://192.168.220.76:8080/containers/
五、安装 Grafana
1、创建文件夹grafana-storage,并设置权限
mkdir /home/grafana-storage
chmod 777 -R /home/grafana-storage
2、创建 grafana容器
docker run -d --name grafana\
-p 3000:3000 \
-v /home/grafana-storage:/var/lib/grafana \
grafana/grafana
3、访问 http://192.168.220.76:3000/ 用户名和密码默认都为admin
4、设置数据源
5、搜索模板 https://grafana.com/grafana/dashboards
添加模板ID并导入模板json文件, 实现模板展示
六、安装 Alertmanager
1、创建 alertmanager.yml
vim /home/prometheus/conf/alertmanager.yml
global:
resolve_timeout: 5m
wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'
templates:
- '/etc/alertmanager/template/wechat.tmpl'
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 5m
receiver: 'wechat'
receivers:
- name: 'wechat'
wechat_configs:
- corp_id: <企业ID> #此处为企业微信的企业ID
to_party: '1' #此处为企业微信的部门ID
agent_id: '1000002' #此处为企业微信应用的AgentId
api_secret: <secret> #此处为企业微信应用的secret
send_resolved: true
2、编写微信通知模板 wechat.tmpl
vim /home/prometheus/template/wechat.tmpl
{{ define "wechat.default.message" }}
{{ range $i, $alert :=.Alerts }}
===alertmanager监控报警===
告警状态:{{ .Status }}
告警级别:{{ $alert.Labels.severity }}
告警类型:{{ $alert.Labels.alertname }}
告警应用:{{ $alert.Annotations.summary }}
故障主机: {{ $alert.Labels.instance }}
告警主题: {{ $alert.Annotations.summary }}
触发阀值:{{ $alert.Annotations.value }}
告警详情: {{ $alert.Annotations.description }}
触发时间: {{ $alert.StartsAt.Format "2021-01-02 15:04:05" }}
===========end============
{{ end }}
{{ end }}
3、启动
docker run -d -p 9093:9093 --name alertmanager \
-v /home/prometheus/conf/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
-v /home/prometheus/template:/etc/alertmanager/template \
docker.io/prom/alertmanager:latest
4、访问 http://192.168.220.76:9093/#/alerts
七、安装 Blackbox-exporter
1、启动 blackbox-exporter
docker run --name blackbox -p 9115:9115 -itd prom/blackbox-exporter
2、说明
blackbox-exporter监测icmp、tcp、http、post情况;
probe_success 指标可以判断我们的 icmp、tcp、http、post 监测是否正常。值为 1 正常,0不正常。
3、访问 http://192.168.220.76:9115/prod
八、告警效果
1、企业微信接收告警效果如下图
* 1、需在企业微信创建企业或者直接创建应用
* 2、注意文件存放位置, 已经容器内文件位置
* 3、注意替换上文中的IP地址
更多推荐
所有评论(0)