1. 程式人生 > >Zabbix釘釘機器人報警

Zabbix釘釘機器人報警

釘釘機器人建立:

釘釘提供了一個 webhook 地址,獲取到Webhook地址後,使用者可以使用任何方式向這個地址發起 HTTP POST 請求,即可實現給該群組傳送訊息。

 

配置指令碼

指令碼下載路徑:http://down.51cto.com/data/2451909

1、下載編寫好的程式檔案到zabbix的/usr/lib/zabbix/alertscripts目錄(我這裡是預設路徑,具體檢查/etc/zabbix/zabbix_server.conf)

 

[[email protected] alertscripts]# cd /usr/lib/zabbix/alertscripts/

[[email protected] alertscripts]# ll

total 5696

-rw-r--r--. 1 root root 5828913 Sep 13 23:22 webhook-zabbix-robot-64

[[email protected] ~]#  vim /etc/zabbix/zabbix_server.conf 

 

3.10.jpg

解壓更改名稱為webhook-zabbix-robot-64並且chmod +x webhook-zabbix-robot-64 && chown zabbix.zabbix webhook-zabbix-robot-64

建立/tmp/dingding.log 並更改屬主為zabbix

 

[[email protected] ~]# cd /usr/lib/zabbix/alertscripts/

[[email protected] alertscripts]# chmod +x webhook-zabbix-robot-64 && chown zabbix.zabbix webhook-zabbix-robot-64       讓zabbix擁有許可權

[[email protected] ~]# touch /tmp/dingding.log

[[email protected] tmp]# chmod +x dingding.log && chown zabbix.zabbix dingding.log 

 

[[email protected] tmp]# ll

total 908

-rwxr-xr-x. 1 zabbix zabbix      0 Sep 13 23:27 dingding.log

 

2、報警媒介型別

3-3.jpg

-webhook:為剛才新增機器人的值:

-msg:為zabbix定義的告警  

-url:為zabbix伺服器地址:

-log:為記錄日誌,對應剛才建立的日誌檔案

3、配置動作

3-4.jpg

3-5.jpg

操作預設資訊內容如下:

<?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>http://填寫自己伺服器地址哦/zabbix</url> <age>{EVENT.AGE}</age> <status>{EVENT.STATUS}</status> <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement> <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory> </root>
 

3-6.jpg

恢復操作預設資訊如下:

<?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>FF4A954A</color> <url>http://填寫自己伺服器地址哦/zabbix</url> <age>{EVENT.AGE}</age> <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime> <status>OK</status> </root>
 

3-7.jpg

確認操作預設資訊如下:

{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:
{ACK.MESSAGE}

Current problem status is {EVENT.STATUS}
 

最後更新下,

4、配合使用者報警資訊

image.png

image.png

image.png

 


四、測試

1、先測試指令碼是否有問題:

[[email protected] alertscripts]# ./webhook-zabbix-robot-64 -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx

2018/09/13 23:39:46 初始化完成。

2018/09/13 23:39:46 開始建立訊息。

2018/09/13 23:39:46 訊息建立完成。

2018/09/13 23:39:46 開始POST至Webhook。

2018/09/13 23:39:47 釘釘機器人介面返回訊息:{"errmsg":"ok","errcode":0}

 

2、正常觸發報警資訊

3-9.jpg

3-8.jpg

五、失敗原因:

1、關閉防火牆

2、關閉SELinux

[[email protected] ~]# /usr/sbin/sestatus       

SELinux status:                 disabled

3、檢視動作是否失敗:

正常顯示為完成狀態

image.png

如果顯示失敗,可以把作--預設資訊的換行符刪除掉,或者檢查字元是否存在中文字母

<?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>http://ip/zabbix</url><age>{EVENT.AGE}</age><status>{EVENT.STATUS}</status><acknowledgement> {EVENT.ACK.STATUS} </acknowledgement><acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory></root>