您好,登錄后才能下訂單哦!
Zabbix可以通過多種方式將告警信息發送到指定人,常用的報警方式有郵件、微信、釘釘等。本次博文主要介紹這三種報警方式。
本篇博文采用網易郵箱的方式實現報警!操作如下:
zabbix server需進行以下配置:
[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 "我是郵件內容" :郵件的具體內容
[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!
//出現此消息表明發送成功
收到的郵件如下:
選擇”管理→報警媒介→創建報警媒介“如下:
圖中填寫的三個參數:
{ALERT.SENDTO} //收件人地址
{ALERT.SUBJECT} //主題
{ALERT.MESSAGE} //詳細內容
選擇“管理→用戶→Admin→報警媒介”如下:
創建完成后,進行以下操作:
添加的代碼如下:
故障消息<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進程開啟
釘釘收到的信息如下:
實現釘釘報警完成!
————————本次博文到此為止,感謝閱讀——————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。