溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

發(fā)布時間:2020-06-10 22:18:38 來源:網(wǎng)絡(luò) 閱讀:950 作者:warrent 欄目:系統(tǒng)運(yùn)維

博文大綱:
一、安裝Zabbix agent端
二、登錄web界面添加agent主機(jī)
三、Zabbix監(jiān)控MySQL數(shù)據(jù)庫
四、配置郵件報警
五、配置企業(yè)微信報警

注:本文是基于博文:部署zabbix監(jiān)控服務(wù)器 的環(huán)境。

這篇博文用到的所有軟件都可以在這個鏈接獲得:Zabbix 軟件包

一、安裝Zabbix agent端

這里我啟動了一臺IP為192.168.20.3的服務(wù)器,用于充當(dāng)agent端。

[root@agent ~]# tar zxf zabbix-3.2.1.tar.gz -C /usr/src/
[root@agent ~]# cd /usr/src/zabbix-3.2.1/
[root@agent zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
[root@agent zabbix-3.2.1]# useradd zabbix -M -s /sbin/nologin 
#修改啟動腳本
[root@agent zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@agent ~]# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd 
[root@agent ~]# sed -i 's/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=$BASEDIR\/logs\/$BINARY_NAME.pid/g' /etc/init.d/zabbix_agentd 
[root@agent ~]# chmod +x /etc/init.d/zabbix_agentd
#修改配置文件
[root@agent ~]# cd /usr/local/zabbix/etc/
[root@agent etc]# sed -i 's/# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.pid/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.log/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/Server=127.0.0.1/Server=192.168.20.2/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/# ListenPort=10050/ListenPort=10050/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.20.2/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.20.3/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/# Timeout=3/Timeout=15/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/zabbix\/etc\/zabbix_agentd.conf.d\//g' zabbix_agentd.conf
[root@agent etc]# egrep -v '^$|^#' zabbix_agentd.conf   #確認(rèn)更改的配置文件
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.20.2
ListenPort=10050
ServerActive=192.168.20.2
Hostname=192.168.20.3
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@agent etc]# mkdir /usr/local/zabbix/logs
[root@agent etc]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@agent etc]# /etc/init.d/zabbix_agentd start   #啟動agent

二、登錄web界面添加agent主機(jī)

登錄到Zabbix server端進(jìn)行以下操作,以便監(jiān)控剛剛配置的agent端。

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

三、Zabbix監(jiān)控MySQL數(shù)據(jù)庫

以下操作在新配置的agent端進(jìn)行(自行部署MySQL數(shù)據(jù)庫,在博文開頭的博文鏈接中有腳本安裝MySQL數(shù)據(jù)庫的方法)。

#復(fù)制Zabbix提供的MySQL監(jiān)控腳本
[root@agent etc]# cd /usr/src/zabbix-3.2.1/conf/zabbix_agentd/
[root@agent zabbix_agentd]# cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@agent zabbix_agentd]# cd /usr/local/zabbix/etc/
#編寫文件,存放登錄數(shù)據(jù)庫的賬號
[root@agent etc]# cat > .my.cnf << EOF
> [client]
> host=192.168.20.3
> user=test
> password=123.com
> socket=/usr/local/mysql/mysql.sock
> EOF
#修改MySQL監(jiān)控腳本
[root@agent ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
[root@agent zabbix_agentd.conf.d]# sed -i 's/mysql -N/\/usr\/local\/bin\/mysql -N/g' userparameter_mysql.conf 
[root@agent zabbix_agentd.conf.d]# sed -i 's/mysql -V/\/usr\/local\/bin\/mysql -V/g' userparameter_mysql.conf 
[root@agent zabbix_agentd.conf.d]# sed -i 's/mysqladmin ping/\/usr\/local\/bin\/mysqladmin ping/g' userparameter_mysql.conf 
[root@agent zabbix_agentd.conf.d]# sed -i 's/HOME=\/var\/lib\/zabbix/HOME=\/usr\/local\/zabbix\/etc\//g' userparameter_mysql.conf 
#重啟agent服務(wù),使更改生效
[root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart
#授權(quán)數(shù)據(jù)庫用戶
[root@agent ~]# mysql -uroot -p123   
mysql> grant all on *.* to test@'192.168.20.%' identified by '123.comm';
Zabbix-servre端測試是否可以采集到agent端的MySQL狀態(tài):
[root@zabbix logs]# zabbix_get -s 192.168.20.3 -p 10050 -k "mysql.status[Uptime]"
728
#在server端執(zhí)行上述命令可以看到的數(shù)字,就是數(shù)據(jù)庫相關(guān)的狀態(tài)

回到Zabbix的web頁面,添加MySQL數(shù)據(jù)庫監(jiān)控模板

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

選擇MySQL模板:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

查看添加的MySQL監(jiān)控信息(若沒有信息,則需要稍等一會):

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

四、配置郵件報警

以下所有操作需要在Zabbix server端配置

[root@zabbix ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL
[root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz -C /usr/src/
[root@zabbix ~]# cp /usr/src/sendEmail-v1.56/sendEmail /usr/local/bin/
[root@zabbix ~]# chown zabbix:zabbix /usr/local/bin/sendEmail 
[root@zabbix ~]# vim /usr/local/bin/sendEmail 
        if (! IO::Socket::SSL->start_SSL($SERVER)) {
#跳轉(zhuǎn)到1906行,修改如上,然后保存退出

在進(jìn)行接下來的操作前,需要有自己郵箱的授權(quán)碼,這里以QQ為例(163或者新浪都可以)。

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

根據(jù)提示發(fā)送信息:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

需要的就是以下授權(quán)碼:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警


#Zabbix  Server上編寫郵件報警腳本
[root@zabbix alertscripts]# pwd    #所有腳本必須在該目錄下
/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=auto -f 916551516@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 916551516@qq.com -xp xphunzguzeibdag -m "$body"
#各項解釋如下:
# /usr/local/bin/sendEmail:命令主程序;
# -f from@126.com :發(fā)件人郵箱
# -t to@126.com :收件人郵箱
# -s smtp.126.com :發(fā)件人郵箱的 smtp 服務(wù)器
# -u "我是郵件主題" :郵件的標(biāo)題 
#-o message-content-type=html:郵件內(nèi)容的格式,html 表示它是 html 格式
# -o message-charset=utf8:郵件內(nèi)容編碼
# -xu from@126.com:發(fā)件人郵箱的用戶名
# -xp WEE78@12l$ #發(fā)件人郵箱授權(quán)碼(就是我剛剛生成的那個授權(quán)碼)
# -m "我是郵件內(nèi)容" :郵件的具體內(nèi)容
#測試是否可以成功發(fā)送郵件
[root@zabbix alertscripts]# chmod +x SendEmail.sh     #給與腳本執(zhí)行權(quán)限
[root@zabbix logs]# sh SendEmail.sh 916551516@qq.com test 123456
Nov 09 22:17:55 zabbix sendEmail[9970]: Email was sent successfully!

我收到的郵件如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

回到web界面,添加報警媒介

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

確認(rèn)已添加報警媒介:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

將報警媒介關(guān)聯(lián)到用戶

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

創(chuàng)建一個觸發(fā)動作

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

設(shè)置“恢復(fù)操作”

配置當(dāng)故障恢復(fù)后執(zhí)行的操作:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

配置觸發(fā)器

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

確定可以看到我們配置的觸發(fā)器:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

報警測試:

將agent端服務(wù)器的zabbix_agent進(jìn)程關(guān)閉,郵箱可以收到郵件則表示配置正確。

#在agent服務(wù)器進(jìn)行以下操作
[root@agent ~]# /etc/init.d/zabbix_agentd stop    #關(guān)閉agent進(jìn)程

至此,即可收到報警郵件如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

五、配置企業(yè)微信報警

網(wǎng)頁搜索企業(yè)微信并登陸到企業(yè)微信并且自行注冊,然后進(jìn)行以下操作:

創(chuàng)建應(yīng)用:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警
應(yīng)用程序創(chuàng)建成功后,會顯示應(yīng)用信息,如下:
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

在上面重點(diǎn)記錄下此應(yīng)用的Agent和Secret,以便后面配置中使用。

查看企業(yè)ID、部門ID、用戶賬號等信息:

企業(yè)ID:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

部門ID:
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

用戶賬號:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

以上查看的信息,以后都要用到。

Zabbix server上獲取微信報警腳本。
[root@zabbix alertscripts]# pwd
/usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix alertscripts]# wget https://www.ixdba.net/zabbix/weixin_linux_amd64
#若上面的地址失效,也可從博文開頭的網(wǎng)盤鏈接中獲取
[root@zabbix alertscripts]# mv weixin_linux_amd64 weixin   #更改名稱
[root@zabbix alertscripts]# chmod 755 weixin    #賦予執(zhí)行權(quán)限
[root@zabbix alertscripts]# echo "AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts" >> /usr/local/zabbix/etc/zabbix_server.conf
#向Zabbix主配置文件中追加上述內(nèi)容
#測試這個腳本是否可用,執(zhí)行下面的命令(需要修改相應(yīng)的值):
[root@zabbix alertscripts]# ./weixin --corpid=ww829ec5c69739bbee --corpsecret=n0CcdnCzqQHUlJSdPC8C_VDr4XXzizK2sjDMUkng0b0 --msg="微信告警測試" --user=LvJianZhao --agentid=1000004
{"errcode":0,"errmsg":"ok","invaliduser":""}
#需要修改的內(nèi)容如下:
# corpid=企業(yè)號里面的企業(yè)ID;
# corpsecret:這里就是我們自建應(yīng)用里面的Secret的ID;
# agentid:我們自建應(yīng)用里面的AgentId;
# msg:要發(fā)送的消息內(nèi)容;
# user:我們接受消息的用戶賬號,注意是在微信企業(yè)號里面成員詳情頁的賬號;

執(zhí)行完畢后,沒有報錯的話,那么我們就可以在企業(yè)微信號上收到了這條命令的告警信息了,如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

登陸到web界面,創(chuàng)建微信報警媒介

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

關(guān)聯(lián)到Zabbix管理用戶:
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警
Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

注意上面的收件人設(shè)置,這個收件人就是在微信企業(yè)號后臺中,通訊錄下面的成員詳情看到的賬號,一定不要寫錯了。

確定已經(jīng)添加:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

配置動作

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警
上述填寫的內(nèi)容,可從下面復(fù)制:

服務(wù)器:{HOST.NAME}發(fā)生:{TRIGGER.NAME}故障

告警主機(jī):{HOST.NAME}
告警地址:{HOST.IP}
監(jiān)控項目:{ITEM.NAME}
監(jiān)控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當(dāng)前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

添加后如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

配置恢復(fù)操作:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

以上添加的內(nèi)容,可以從下面復(fù)制:

服務(wù)器:{HOST.NAME}:{TRIGGER.NAME}故障已恢復(fù)

告警主機(jī):{HOST.NAME}
告警地址:{HOST.IP}
監(jiān)控項目:{ITEM.NAME}
監(jiān)控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當(dāng)前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE}{EVENT.TIME}
恢復(fù)時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續(xù)時間:{EVENT.AGE}
事件ID:{EVENT.ID}

確定無誤后,點(diǎn)擊添加:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

至此,微信告警整合Zabbix就配置完成了,如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

測試微信告警功能:

#在agent進(jìn)行以下操作,以便模擬故障
[root@agent ~]# /etc/init.d/zabbix_agentd stop

關(guān)閉agent端后,稍后企業(yè)微信端(郵箱也會收到)即可收到以下信息:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

#啟動agent端,測試恢復(fù)操作:
[root@agent ~]# /etc/init.d/zabbix_agentd start     

企業(yè)微信收到的信息如下:

Zabbix監(jiān)控客戶端及實現(xiàn)郵件、微信報警

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI