Zabbix 3.4 结合 钉钉机器人 实现告警群通知

1,031次阅读

共计 3102 个字符,预计需要花费 8 分钟才能阅读完成。

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

1、部署Zabbix 3.4

添加源配置

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

安装相关软件

yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb -y
注:如果Server端也需要监控则需要安装zabbix-agent

修改zabbix的PHP前端配置文件

#vi /etc/httpd/conf.d/zabbix.conf

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        php_value date.timezone Asia/Shanghai
    </IfModule>

初始化数据库配置

[v_error]注意:创建数据库时务必指定character,否则可能导致告警信息中文显示乱码[/v_error]

shell> mysql -uroot -p<root_password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;

导入模型和数据

zcat /usr/share/doc/zabbix-server-mysql-3.4.2/create.sql.gz | mysql -uzabbix -D zabbix -p zabbix

修改zabbix配置文件,编辑数据库信息

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>

启动zabbix server并设置开机启动

# systemctl start zabbix-server
# systemctl enable zabbix-server

启动httpd服务

# systemctl start httpd

浏览器访问,并进行安装

http://ipaddr:80/zabbix

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

2、自定义机器人

钉钉提供了一个 webhook 地址,https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx。

在钉钉中,点击机器人管理,申请机器人,并与通知群绑定,保存webhook地址即可

 

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

 

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

 

3、插件下载

[url href=http://pan.cloudcared.cn/f/463e194e1592416aa327]个人网盘[/url]

全站密码:cloudcared.cn

下载完成后,您可以直接在Linux中执行该程序进行测试。

通过下面方法,可以快速验证自定义机器人是否可以正常工作:

./golang-zabbix-robot-64 -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

 

4、部署程序

解压该插件后,给予x执行权限,重命名为dingding,并移动至zabbix存放脚本的目录

unzip golang-zabbix-robot-64.zip
mv unzip golang-zabbix-robot-64 dingding && chmod +x dingding

查看zabbix存放脚本的位置:

cat /etc/zabbix/zabbix_server.conf | grep  AlertScriptsPath=

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

将脚本移动至zabbix目录

mv /root/dingding /usr/lib/zabbix/alertscripts/

创建/tmp/dingding.log 并更改属主为zabbix

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

5、创建报警媒介

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

添加钉钉告警脚本,并添加脚本参数

-webhook=https://oapi.dingtalk.com/robot/send?access_token=03bf84cbcc6f2869f1b57e7a5ff8ec72f7af157b2682c4e1fd608d2db0f10bd6
-msg={ALERT.MESSAGE}
-url=http://172.20.8.12/zabbix
-log=/tmp/dingding.log

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

其中

[v_warn]-webhook:为钉钉机器人的webhook

-msg:为zabbix定义的告警message

-url:为zabbix的调用url

-log:为记录日志,对应与zabbix server的日志文件[/v_warn]

6、创建动作

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

默认告警信息及恢复消息

<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <from>{HOSTNAME1}</from>
  <time>{EVENT.DATE} {EVENT.TIME}</time>
  <level>{TRIGGER.SEVERITY}</level>
  <name>{TRIGGER.NAME}</name>
  <key>{TRIGGER.KEY1}</key>
  <value>{ITEM.VALUE}</value>
  <now>{ITEM.LASTVALUE}</now>
  <id>{EVENT.ID}</id>
  <ip>{HOST.IP}</ip>
  <url>这里是点击报警消息可以访问的链接地址</url>
  <age>{EVENT.AGE}</age>
  <status>{EVENT.STATUS}</status>
<acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>
<acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>
</root>
<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <from>{HOSTNAME1}</from>
  <time>{EVENT.DATE} {EVENT.TIME}</time>
  <level>{TRIGGER.SEVERITY}</level>
  <name>{TRIGGER.NAME}</name>
  <key>{TRIGGER.KEY1}</key>
  <value>{ITEM.VALUE}</value>
  <now>{ITEM.LASTVALUE}</now>
  <id>{EVENT.ID}</id>
  <ip>{HOST.IP}</ip>
  <color>FF4A934A</color>
  <url>http://zabbix.gogen.cn</url>
  <age>{EVENT.AGE}</age>
  <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
  <status>OK</status>
</root>

7、为用户增加报警媒介

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

8、完成测试

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

Zabbix 3.4 结合 钉钉机器人 实现告警群通知

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2017-12-26发表,共计3102字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索