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

行动起来,活在当下

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

目 录CONTENT

文章目录

5.4.企业钉钉告警

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

title: 5.4.企业钉钉告警
order: 30

icon: lightbulb

一、环境介绍

主机名

IP地址

系统

说明

localhost

192.168.11.61

Ubuntu 20.04

docker方式安装的prometheus

二、获取钉钉的webhook地址

1、注册企业钉钉

a、注册企业钉钉

浏览器打开钉钉注册页面 填入手机号码,填入获取到的验证码,点注册

填入企业资料并注册

注册成功后,扫描二维码下载钉钉,如下图:

b、添加机器人

因为机器人添加,只能是钉钉电脑版(手机版钉钉不能添加机器人)。“测试钉钉报警“ 这个企业只有我一个人,所以我就把报警消息发到默认的 ”测试钉钉报警 全员群“ 里面。实际使用时,请创建个运维群–添加对应的人员进来。

电脑钉钉登陆成功后—-点击左下角的。。。—然后再点管理后台,如下图:

点击之前创建的企业名

点通讯录–组织架构–添加子部门

刷新后,把接收告警的员工调整到刚刚添加的部门

勾选部门

添加成功后,电脑钉钉消息窗口–会弹出一个测试告警的群–点击这个群—群设置–机器人

添加机器人

添加机器人

点自定义

机器人名字:随意

勾选ip:填入alertmanager外网ip

如果在自己电脑上测试钉钉告警,获取Alertmanager外网ip地址的方法为浏览器打开http://ip138.com 您的iP地址是:[xxx.xx.xx.xx]得到自己外网ip地址。

c、复制机器人webhook地址

复制webhook的地址,例如:

https://oapi.dingtalk.com/robot/send?access_token=2ac0682516aa8634f3410c08339d21f7effeec5ac180eec60082a3ca66661f29

我们真实需要的是access_token=后面的,如下:

2ac0682516aa8634f3410c08339d21f7effeec5ac180eec60082a3ca66661f29

三、使用prometheus-webhook-dingtalk实现钉钉告警

github地址,获取最新的安装包

1、二进制安装(和docker安装二选一)

#安装二进制安装包
wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

#解压
tar vxf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz

ls -l

#移动并改名
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /opt/prometheus-webhook-dingtalk

创建配置文件

cat > /opt/prometheus-webhook-dingtalk/config.yml <<"EOF"
targets:
  webhook1:
    url: https://oapi.dingtalk.com/robot/send?access_token=修改为自己的TOKEN
    secret: SEC000000000000000000000
EOF

创建一个prometheus用户:

useradd -M -s /usr/sbin/nologin prometheus

更改prometheus-webhook-dingtalk用户的文件夹权限:

chown prometheus:prometheus -R /opt/prometheus-webhook-dingtalk

创建 systemd 服务

cat > /etc/systemd/system/prometheus-webhook-dingtalk.service << "EOF"
[Unit]
Description=prometheus-webhook-dingtalk
Documentation=https://github.com/timonwong/prometheus-webhook-dingtalk

[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/opt/prometheus-webhook-dingtalk/prometheus-webhook-dingtalk \
  --config.file=/opt/prometheus-webhook-dingtalk/config.yml

[Install]
WantedBy=multi-user.target
EOF

启动 prometheus-webhook-dingtalk

systemctl daemon-reload
systemctl start prometheus-webhook-dingtalk.service

加入到开机自启动

systemctl enable prometheus-webhook-dingtalk.service

检查

systemctl status prometheus-webhook-dingtalk.service

查看 prometheus-webhook-dingtalk的日志以进行故障排除:

journalctl -u prometheus-webhook-dingtalk.service -f

2、docker安装(和二进制安装二选一,推荐)

创建配置文件config.yml

#创建数据目录
mkdir /data/docker-prometheus/prometheus-webhook-dingtalk/ -p

cat > /data/docker-prometheus/prometheus-webhook-dingtalk/config.yml <<"EOF"

#templates:
#  - /etc/prometheus-webhook-dingtalk/templates/default.tmpl

targets:
  webhook1:
    url: https://oapi.dingtalk.com/robot/send?access_token=之前复制的TOKEN
    secret: SEC000000000000000000000
    #message:
     # text: '{{ template "default.content" . }}'
EOF

docker-compose.yaml文件

注:我把prometheus-webhook-dingtalk安装在prometheus服务器上,如果安装在其他机器上也是可以的。

cd /data/docker-prometheus/prometheus-webhook-dingtalk/

cat > docker-compose.yaml << "EOF"
version: '3.3'
services:
  webhook:
    image: timonwong/prometheus-webhook-dingtalk:v2.1.0
    container_name: prometheus-webhook-dingtalk
    restart: "always"
    ports:
      - 8060:8060
    command:
      - '--config.file=/etc/prometheus-webhook-dingtalk/config.yml'
    volumes:
      - ./config.yml:/etc/prometheus-webhook-dingtalk/config.yml
      - /etc/localtime:/etc/localtime:ro
EOF

启动

docker-compose up -d

检查

docker ps
或:
docker logs -f prometheus-webhook-dingtalk

3、访问地址

应用

访问地址

备注

prometheus-webhook-dingtalk

http://192.168.11.61:8060

无用户和密码

4、alertmanager配置

alertmanager/config.yml增加如下配置:

route:
  receiver: 'dingtalk'

receivers:
- name: 'dingtalk'
  webhook_configs:
  - url: 'http://192.168.11.61:8060/dingtalk/webhook1/send'
    send_resolved: true

检查配置

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

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

重载alertmanager配置

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

5、配置触发器

已配置,查看现有触发器

访问告警模块的web页面

http://192.168.11.61:9090/alerts

  • INACTIVE:活跃中,即表示正常无告警产生。

  • PENDING:待触发,表示已经达到预设的阈值,但没达到预设的时间。

  • FIRING:表示达到预设的阈值并超过预设的时间触发告警

6、测试

关闭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

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

7、碰到的问题

由于配置名称错误导致不能发送报警信息给钉钉,如下图:

解决:

修改名称,使其配置正确

四、我的微信

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

0
广告 广告

评论区