侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

5.5.企业微信告警

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 11 阅读 / 0 字
广告 广告

title: 5.5.企业微信告警
order: 31

icon: lightbulb

一、环境介绍

主机名

IP地址

系统

说明

localhost

192.168.11.61

Ubuntu 20.04

docker方式安装的prometheus

二、使用企业微信报警

1、注册企业微信

浏览器打开https://work.weixin.qq.com/ 点击注册

如下填写资料:

2、webhook告警(和微信应用告警二选一)

  • 注:请换成PrometheusAlert方式

添加群机器人

注册成功后,手机下载企业微信,登陆企业微信。

在手机上,如下图操作:

注:因为我这个是测试企业微信,所以就在”企业全员群“,新建群机器人了。真实一般都是新创建个部门,然后把需要接受报警的人拉到这个部门里面,然后在这个部门群里面新建机器人。

复制机器人的webhook地址

我在上图复制的到webhook地址如下:

真实只需要用到key后面的

二进制安装alertmanager-wechatrobot-webhook

cd /opt/prometheus/

#下载代码
git clone https://gitee.com/linge365/alertmanager-wechatrobot-webhook.git

#进入目录
cd alertmanager-wechatrobot-webhook

#把service服务移动到对应目录下
mv alertmanager-wechatrobot-webhook.service /etc/systemd/system/

#添加prometheus用户,如果已存在不需要重复添加
useradd -M -s /usr/sbin/nologin prometheus

#授权
chown -R prometheu.prometheus /opt/prometheus

启动

systemctl start alertmanager-wechatrobot-webhook

启动成功后,如下图:

检查端口

ss -lntp|grep 8999

修改alertmanager配置

192.168.11.60根据时间修改,192.168.11.60为安装alertmanager-wechatrobot-webhook的服务器ip。

vim alertmanager/config.yml 
#增加如下配置
route:
  receiver: wechat

receivers:
- name: "wechat"
  webhook_configs:
  - url: 'http://192.168.11.60:8999/webhook?key=之前复制的企业微信webhook的key'
    send_resolved: true

检查配置

#docker安装方式,检查
docker exec -it alertmanager  amtool check-config /etc/alertmanager/config.yml

#二进制安装方式,检查
/opt/alertmanager/alertmanager  amtool check-config /etc/alertmanager/config.yml

重载alertmanager配置

curl -X POST http://localhost:9093/-/reload

3、微信应用告警(和webhook告警二选一)

  • 企业微信应用需要添加ip白名单才能正常使用

浏览器打开企业微信

企业微信官网

手机下载“企业微信”,使用注册的手机登录。扫描二维码登录企业微信官网

短信验证

创建应用

登录成功后,选择应用管理–创建应用

上传logo,填写应用名称,选择可见范围

获取AgentID

创建应用成功后,复制AgentId,和查看Secret–会发送Secret到手机企业微信中。

1000002

设置ip白名单

设置可信域名

xxx.com只是举例,这个域名要根据真实的域名修改。

设置ip白名单

获取Secret

手机下载“企业微信”app,并登录成功。”企业微信团队“发来一条新消息,点击查看Secret,复制Secret

-rg8Xtzchefy6w94O6G_qT5gOMhDZt7MsZmHSELAOZw

获取部门id

1

注:获取用户名或者创建标签都可以

点击通讯录–选择企业名–点右边–查看部门id,如下图:

获取corp_id

点击“我的企业”–复制企业id.ww75c7ff0bc812538c

修改alertmanager配置

vim alertmanager/config.yml 

route:
  receiver: wechat

receivers:
- name: 'wechat'
  wechat_configs:
  - send_resolved: true
    #to_user: '@all'         #发送给企业微信用户的ID,@all是所有人
    #to_tag: '1'         #企业微信中创建的接收告警的标签
    to_party: '1'        #部门id
    agent_id: '1000002'     # 企业微信中创建的应用的ID
    corp_id: 'ww75c7ff0bc812538c'      # 企业微信中企业ID
    api_secret: '-rg8Xtzchefy6w94O6G_qT5gOMhDZt7MsZmHSELAOZw'      # 企业微信中,应用的Secret

检查配置

#docker安装方式,检查
docker exec -it alertmanager  amtool check-config /etc/alertmanager/config.yml

#二进制安装方式,检查
/opt/alertmanager/alertmanager  amtool check-config /etc/alertmanager/config.yml

重载alertmanager配置

curl -X POST http://localhost:9093/-/reload

4、测试

关闭node-exporter

#docker环境
docker stop node-exporter

#二进制安装环境
systemctl stop node_exporter

查看prometheus的alerts: http://192.168.11.61:9090/alerts

查看alertmanager的alerts:http://192.168.11.61:9093/#/alerts

如果没收到钉钉消息,排查

docker logs -f alertmanager

微信正常收到报警信息如下图:

四、使用模版(非必需,仅限微信应用告警)

  • 看需求–不使用模版默认也行,不适用webhook方式告警。

1、创建模版文件(prometheus服务器操作)

cd /data/docker-prometheus

#创建存放模版的目录
mkdir alertmanager/template

通过cat创建

cat > alertmanager/template/wechat.tmpl <<"EOF" 
{{ define "wechat.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}{{ range .Alerts }}
@告警通知
告警程序: prometheus_alert
告警级别: {{ .Labels.severity }}级别
告警类型: {{ .Labels.alertname }}
故障主机: {{ .Labels.instance }}
告警主题: {{ .Annotations.summary }}
告警详情: {{ .Annotations.description }}
触发时间: {{ .StartsAt.Local.Format "2006-01-02 15:04:05" }}
{{ end }}{{ end -}}
{{- if gt (len .Alerts.Resolved) 0 -}}{{ range .Alerts }}
@告警恢复
告警程序: prometheus_alert
故障主机: {{ .Labels.instance }}
故障主题: {{ .Annotations.summary }}
告警详情: {{ .Annotations.description }}
告警时间: {{ .StartsAt.Local.Format "2006-01-02 15:04:05" }}
恢复时间: {{ .EndsAt.Local.Format "2006-01-02 15:04:05" }}
{{ end }}{{ end -}}
{{- end }}
EOF

检查

vim alertmanager/template/wechat.tmpl

2、修改alertmanager配置

vim alertmanager/config.yml

增加message这行

#模版配置
templates:
  - '/etc/alertmanager/template/*.tmpl'

....

receivers:
- name: 'wechat'
  wechat_configs:
  - send_resolved: true
    #只增加这行配置
    message: '{{ template "wechat.html" . }}'

重载配置

curl -X POST http://localhost:9093/-/reload

检查

http://192.168.11.61:9093/#/status

3、测试

企业微信应用报警,修改前和修改后的区别如下图:

四、我的微信

如果碰到问题,可以随时加我微信,谢谢

0
广告 广告

评论区