Zabbix能夠經過多種方式將告警信息發送到指定人,經常使用的報警方式有郵件、微信、釘釘等。本次博文主要介紹這三種報警方式。html
本篇博文采用網易郵箱的方式實現報警!操做以下:
python
zabbix server需進行如下配置:linux
[root@zabbix ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL //安裝所需依賴 [root@zabbix ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下載sendEmail軟件包 [root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz -C /usr/src [root@zabbix ~]# cd /usr/src/sendEmail-v1.56/ [root@zabbix sendEmail-v1.56]# cp -a sendEmail /usr/local/bin/ [root@zabbix sendEmail-v1.56]# chmod +x /usr/local/bin/sendEmail [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# vim sendEmail.sh //編寫測試腳本 #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -o tls=no -f zhen18732036806@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu zhen18732036806@163.com -xp abcd1234 -m "$body"
郵件內容各項解釋:
-f from@163.com :發件人郵箱
-t to@163.com :收件人郵箱
-s smtp.163.com :發件人郵箱的 smtp 服務器
-u "我是郵件主題" :郵件的標題
-o message-content-type=html:郵件內容的格式爲html 格式
-o message-charset=utf8:郵件內容編碼
-xu from@163.com:發件人郵箱的用戶名
-xp abcd1234:發件人郵箱受權碼(就是我剛剛生成的那個受權碼)
-m "我是郵件內容" :郵件的具體內容web
[root@zabbix alertscripts]# chmod +x sendEmail.sh [root@zabbix alertscripts]# chown zabbix.zabbix sendEmail.sh //賦予腳本權限 [root@zabbix alertscripts]# sh sendEmail.sh zhen18732036806@163.com test 123 Jan 30 16:40:04 zabbix sendEmail[2584]: Email was sent successfully! //出現此消息代表發送成功
收到的郵件以下:
json
選擇」管理→報警媒介→建立報警媒介「以下:
圖中填寫的三個參數:vim
{ALERT.SENDTO} //收件人地址 {ALERT.SUBJECT} //主題 {ALERT.MESSAGE} //詳細內容
選擇「管理→用戶→Admin→報警媒介」以下:
建立完成後,進行如下操做:
api
添加的代碼以下:bash
故障消息<br/> 主機:{HOSTNAME}<br/> IP:{IPADDRESS}<br/> 監控項:{ITEM.NAME}<br/> 觸發器:{TRIGGER.NAME}<br/> 鍵值:{ITEM.KEY}:{ITEM.VALUE}<br/> 時間:{DATE} {TIME}<br/>
[root@agent ~]# systemctl stop zabbix-agent //agent端將agent進程關閉
收到的郵件以下:
服務器
[root@agent ~]# systemctl start zabbix-agent //agent端將agent進程啓動
收到的郵件以下:
實現郵件報警成功!微信
要想實現企業微信報警,需本身註冊一個企業微信,因爲其過程過於簡單,這裏就略過了!
註冊完成以後,進行如下操做:
能夠向企業微信添加用戶,這裏就不添加了,以一個用戶爲例,查看用戶的詳細信息:
建立應用,如圖:
到此爲止,企業微信的註冊和配置的內容已經介紹完畢了!
要想將告警信息發送到微信,就須要使用一個發送腳本,操做以下:
[root@zabbix ~]# wget https://www.ixdba.net/zabbix/weixin_linux_amd64 [root@zabbix ~]# mv weixin_linux_amd64 /usr/local/zabbix/share/zabbix/alertscripts/weixin //腳本所在路徑很是重要 [root@zabbix ~]# chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf //確認如下內容 AlertScriptsPath=usr/local/zabbix/share/zabbix/alertscripts [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/ [root@zabbix alertscripts]# ./weixin --corpid=ww35e57441212e7560 --corpsecret=t10UEVBtSuW-00CJMYFnz5xxBhTvf6XCz2vcUY3xS8M --msg="test" --user=LvZhenJiang --agentid=1000007 {"errcode":0,"errmsg":"ok","invaliduser":""} //測試微信腳本,出現此信息表示測試成功!
各配置項含義:
--corpid=:企業號裏面的企業ID;
--corpsecret=:自建應用中的Secret的ID;
--msg=:發送消息的內容;
--use=:指定用戶的名稱,查看用戶詳情時能夠查看到;
--agentid=:自建應用中的Agentid;
企業微信收到的消息以下:
如圖:
兩個變量內容以下(圖中的變量有誤):
--user={ALERT.SENDTO} --msg={ALERT.MESSAGE}
如圖:
如圖:
圖中添加的代碼以下:
默認標題: 服務器:{HOST.NAME}發生:{TRIGGER.NAME}故障 消息內容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
這樣故障時發生的警告信息已經配置完成!接下來配置恢復操做發送的信息,以下:
圖中的代碼以下:
默認標題: 服務器:{HOST.NAME}:{TRIGGER.NAME}故障已恢復 消息內容: 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID}
至此已經配置完成!細心的朋友可能發現並無建立觸發器,由於剛纔測試進行郵件測試的時候就已經建立了觸發器,它們公用同一個觸發器!
[root@agent ~]# systemctl stop zabbix-agent //agent端將agent進程關閉
能夠在如下界面查看消息是否發送成功!
企業微信收到的消息以下:
[root@agent ~]# systemctl start zabbix-agent //agent端將agent進程啓動
企業微信收到的信息以下:
實現微信報警成功!
釘釘相似於微信,可是偏向於辦公方向,能夠經過釘釘的羣機器人功能,實現將告警信息經過機器人發送到釘釘羣中。
羣機器人時釘釘羣的高級擴展功能。羣機器人能夠將第三方服務的信息聚合到羣聊中,實現自動化的信息同步。
zabbix配置釘釘報警,相比微信,要簡單不少,幾分鐘內便可完成配置,下面詳細介紹!
關於釘釘的註冊很是簡單,這裏就不過多的介紹了,註冊完成登陸到釘釘後,先發起一個羣聊,加入接受釘釘告警信息的人員,以下:
注意:定義關鍵字時,必須根據實際狀況來,也就是消息中包含的內容。建議使用定義關鍵字的方式!
機器人配置到此結束!
由於腳本中用到了requests,其是python的http客戶端庫,沒有安裝的按照如下方式進行安裝:
[root@zabbix ~]# yum -y install epel-release python-pip [root@zabbix ~]# pip install --upgrade pip [root@zabbix ~]# pip install requests
[root@zabbix ~]# vim dingding.py //自定編寫腳本 #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "https://oapi.dingtalk.com/robot/send?access_token=df27d0f8ed866576f0d213ededcf8bdc6a0a3d24bf1c904fcd58b14b606ec7c6" #更改成本身機器人的網址,也就是剛纔複製的內容 def msg(text): json_text= { "msgtype": "text", "text": { "content": text }, } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text) 也可經過如下路徑獲取 [root@zabbix ~]# wget https://www.ixdba.net/zabbix/dingding.zip [root@zabbix ~]# unzip dingding.zip [root@zabbix ~]# mv dingding.py /usr/local/zabbix/share/zabbix/alertscripts/ //保證腳本所在的路徑 [root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/ [root@zabbix alertscripts]# chmod 755 dingding.py [root@zabbix alertscripts]# chown zabbix.zabbix dingding.py /usr/local/zabbix/share/zabbix/alertscripts/weixin [root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf //確認如下內容 AlertScriptsPath=usr/local/zabbix/share/zabbix/alertscripts [root@zabbix alertscripts]# ./dingding.py 監控報警 https://oapi.dingtalk.com/robot/send?access_token=df27d0f8ed866576f0d213ededcf8bdc6a0a3d24bf1c904fcd58b14b606ec7c6 {"errcode":0,"errmsg":"ok"}
釘釘收到的信息以下:
釘釘報警腳本配置完成!
‘
如圖:
因爲照片中的代碼與微信測試中的代碼一致,這裏就不復製出來了,有須要自行復制!
’
[root@agent ~]# systemctl stop zabbix-agent //agent端將agent進程關閉
釘釘收到的信息以下:
[root@agent ~]# systemctl start zabbix-agent //agent端將agent進程開啓
釘釘收到的信息以下:
實現釘釘報警完成!
————————本次博文到此爲止,感謝閱讀——————————