uikyhtr 发表于 2017-2-7 10:50:51

ZABBIX 钉钉报警 插件(python)

ZABBIX可以实现短信、邮件、微信等各种报警,这三种基本大家都很熟悉,但是多多少少受到一些限制,最近受人启发,说可以实现钉钉报警,然后网上找了找,有GO语言大神写得,无奈自己只会三P,所以就用PY交易来实现,苍老师说过:Life is short,you need python!

[*]

[*]

[*]1 钉钉配置

[*]1.1 注册安装

[*]1.1.1 部门设置
[*]1.1.2 应用设置
[*]1.1.3 微应用设置
[*]2 程序配置
[*]3 ZABBIX配置

[*]3.1 报警媒介类型
[*]3.2 配置用户
[*]3.3 动作设置
[*]4 效果展现
[*]5 docker环境修改

1 钉钉配置钉钉官网:https://oa.dingtalk.com/
我们主要获取四个参数:部门名称,AgentID和CorpID和CorpSecret
1.1 注册安装注册钉钉企业号,安装手机钉钉略过
1.1.1 部门设置在通信录管理里面设置部门,如下图,我们这里设置的运维部,这个名称要记住,在ZABBIX里面要配置这个名称,然后把你需要发送告警的人员添加到这个部门里面

1.1.2 应用设置在企业应用里面有各种应用,如图,发送告警信息可以给下面的各种应用,如钉邮、钉盘

这里我自己定义了一个应用,服务器报警,记住图中的AgentID,用钉邮、钉盘的AgentID也可以

1.1.3 微应用设置找到微应用设置,企业应用,CorpID和CorpSecret,点击获取

2 程序配置代码托管到github:https://github.com/bluetom520/dingding

[*]git clone https://github.com/bluetom520/dingding.git
[*]pip install requests/requests-2.12.4-py2.py3-none-any.whl
[*]cp dingding/* /usr/lib/zabbix/alertscripts/
[*]chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.py
[*]chmod +x   /usr/lib/zabbix/alertscripts/dingding.py
[*]chmod a+w /usr/lib/zabbix/alertscripts/config.ini
修改config.ini,把上节获得的三个参数填入,toparty不用填,程序第一次运行会自动获取,web是点击报警信息后跳转的页面,大家用自己,不要老给我发。

[*]
[*]corpid = ding31b4af980259953235c2f4657eb6378f
[*]corpsecret = 5tjFK9oKWptDnh473_2hX3Z_DzZoK2uxhQTqzo6tXf7gd5W6zcOdg8yP-FyjnjfJ
[*]agentid = 66029515
[*]toparty =
[*]web = http://192.168.1.199/zabbix/
3 ZABBIX配置3.1 报警媒介类型到管理-》报警媒介类型配置我们的钉钉

3.2 配置用户到管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部

3.3 动作设置到配置-》动作-》创建动作(触发器)
- 动作

- 条件

- 操作

4 效果展现故障图

恢复图

5 docker环境修改
[*]tar zxvfrequests-2.12.4.tar.gz
[*]docker cp requests-2.12.4 zabbix:/usr/local/share/zabbix/alertscripts
[*]docker cp dingding zabbix:/usr/local/share/zabbix/alertscripts
[*]docker exec -it zabbix /bin/bash
[*]cd /usr/local/share/zabbix/alertscripts/requests-2.12.4
[*]python setup.py install
[*]rm -rf requests-2.12.4
[*]cd ..
[*]mv dingding/* .
[*]vi config.ini
[*]exit
[*]docker restart zabbix


lauren0822 发表于 2017-3-14 19:29:09

请问3.0的zabbix动作怎么创建?我显示送达了 但是没有收到

helphone 发表于 2017-3-28 11:19:11

请问 {ALERT.SERNDTO} 是怎么定义的?怎么传值?
--在3.1 报警媒介类型图片中的参数
页: [1]
查看完整版本: ZABBIX 钉钉报警 插件(python)