Zabbix監控客戶端及實現郵件、微信報警

zabbix服務端部署可參考:https://blog.csdn.net/weixin_44907813/article/details/104587090
注:本文是基於上述鏈接
一、安裝Zabbix agent端
這裏我啓動了一臺IP爲192.168.1.138的服務器,來用於充當agent端

[root@agent /]# mkdir /zabbix          
[root@agent /]# cd /zabbix/
[root@agent /]# rz
[root@agent zabbix]# tar zxf zabbix-3.2.1.tar.gz 
[root@agent zabbix]# cd zabbix-3.2.1/
[root@agent zabbix-3.2.1]# useradd -M -s /sbin/nologin  zabbix
[root@agent zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
[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 /]# sed -i 's/# PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.pid/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_agentd.log/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/Server=127.0.0.1/Server=192.168.1.136/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/# ListenPort=10050/ListenPort=10050/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.136/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.1.138/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/# Timeout=3/Timeout=15/g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# sed -i 's/# Include=\/usr\/local\/etc\/zabbix_agentd.conf.d\//Include=\/usr\/local\/zabbix\/etc\/zabbix_agentd.conf.d\//g' /usr/local/zabbix/etc/zabbix_agentd.conf
[root@agent /]# egrep -v '^$|^#' /usr/local/zabbix/etc/zabbix_agentd.conf 
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=192.168.171.136   #server端
ListenPort=10050
ServerActive=192.168.171.136  #server端
Hostname=192.168.171.138     #agent端
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@agent /]# mkdir -p /usr/local/zabbix/logs       # 創建日誌存放路徑
[root@agent /]# chown -R zabbix:zabbix /usr/local/zabbix/     # 賦予權限
[root@agent /]# /etc/init.d/zabbix_agentd start           # 啓動agent
Reloading systemd:                                         [  OK  ]
Starting zabbix_agentd (via systemctl):                    [  OK  ]

二、登錄web界面添加agent主機
登錄到Zabbix server端進行以下操作,監控剛剛所配置的agent端
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
三、Zabbix監控MySQL數據庫
以下操作在新配置的agent端進行即可
自行安裝mysql數據庫

#複製Zabbix提供的MySQL監控腳本
[root@agent /]# cd /zabbix/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/
[root@agent etc]# cat > .my.cnf << EOF
> [client]
> host=192.168.1。138
> user=test
> password=123.com
> socket=/usr/local/mysql/mysql.sock
> EOF
[root@agent etc]# 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 
[root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart
Restarting zabbix_agentd (via systemctl):                  [  OK  ]
[root@agent /]# mysql -u root -p123
mysql> grant all on *.* to test@'192.168.1.%' identified by '123.com';

Zabbix-servre端測試是否可以採集到agent端的MySQL狀態:

[root@zabbix /]# zabbix_get -s 192.168.1.138 -p 10050 -k "mysql.status[Uptime]"
643
#在server端執行上述命令可以看到的數字,就是數據庫相關的狀態

回到Zabbix的web頁面,添加MySQL數據庫監控模板
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
四、配置郵件報警
以下所有操作需要在Zabbix server端配置

[root@zabbix /]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL
[root@zabbix ~]# tar zxf /zabbix/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)) {
#切到1906行,修改爲上述所示

接下來就是郵箱上的配置:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
生成授權碼時,有密保的同志他會讓你發送一條短信進行身份確認
在這裏插入圖片描述
複製授權碼
在zabbix-server端上配置

[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=auto -f [email protected] -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu [email protected] -xp vhzldfgzjddabeah -m "$body"
#各項解釋如下:
# /usr/local/bin/sendEmail:命令主程序;
# -f [email protected] :發件人郵箱
# -t [email protected] :收件人郵箱
# -s smtp.126.com :發件人郵箱的 smtp 服務器
# -u "我是郵件主題" :郵件的標題 
#-o message-content-type=html:郵件內容的格式,html 表示它是 html 格式
# -o message-charset=utf8:郵件內容編碼
# -xu [email protected]:發件人郵箱的用戶名
# -xp WEE78@12l$ #發件人郵箱授權碼(就是我剛剛生成的那個授權碼)
# -m "我是郵件內容" :郵件的具體內容
#測試是否可以成功發送郵件
[root@zabbix alertscripts]# sh SendEmail.sh [email protected] test 123456
Mar 06 18:04:11 zabbix sendEmail[4604]: Email was sent successfully!

在這裏插入圖片描述在這裏插入圖片描述
回到web界面,添加報警媒介
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
將報警媒介關聯到用戶
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
創建一個觸發動作
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
配置觸發器
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
報警測試:
將agent端服務器的zabbix_agent進程關閉,郵箱可以收到郵件則表示配置正確。

在agent服務器進行以下操作
[root@agent ~]# /etc/init.d/zabbix_agentd stop    #關閉agent進程

這裏我們可以看到郵箱已經收到報警信息:
在這裏插入圖片描述
五、配置企業微信報警 (自行註冊企業微信並登陸)
1、創建應用:
在這裏插入圖片描述
在這裏插入圖片描述
應用程序創建成功後,會顯示應用信息,如下:
在這裏插入圖片描述
在上面重點記錄下此應用的Agent和Secret,以便後面配置中使用。

查看企業ID、部門ID、用戶賬號等信息:
在這裏插入圖片描述
部門ID:
在這裏插入圖片描述
用戶賬號:
在這裏插入圖片描述
以上查看的信息,一會都要用到

[root@zabbix /]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@zabbix alertscripts]# wget https://www.ixdba.net/zabbix/weixin_linux_amd64
[root@zabbix alertscripts]# mv weixin_linux_amd64 weixin
[root@zabbix alertscripts]# chmod 755 weixin         #賦予執行權限 
[root@zabbix alertscripts]# echo "AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts" >> /usr/local/zabbix/etc/zabbix_server.conf                
#向Zabbix主配置文件中追加上述內容
#測試這個腳本是否可用,執行下面的命令(需要修改相應的值):
[root@localhost alertscripts]# ./weixin --corpid=wwb0d3fb454f5c7915 --corpsecret=UILBd4YrlLQ6fglreckR9r2ocCH576jBpySIo3kpsFo --msg="微信告警" --user=ZhangJinZhong --agentid=1000002
{"errcode":0,"errmsg":"ok","invaliduser":""}
#需要修改的內容如下:
# corpid=企業號裏面的企業ID;
# corpsecret:這裏就是我們自建應用裏面的Secret的ID;
# agentid:我們自建應用裏面的AgentId;
# msg:要發送的消息內容;
# user:我們接受消息的用戶賬號,注意是在微信企業號裏面成員詳情頁的賬

執行完畢後,沒有報錯的話,那麼我們就可以在企業微信號上收到了這條命令的告警信息了,如下:
在這裏插入圖片描述
登陸到web界面,創建微信報警媒介
在這裏插入圖片描述
在這裏插入圖片描述
關聯到Zabbix管理用戶:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
注意上面的收件人設置,這個收件人就是在微信企業號後臺中,通訊錄下面的成員詳情看到的賬號,一定不要寫錯了
在這裏插入圖片描述
配置動作
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

服務器:{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}

在這裏插入圖片描述
添加後如下:
在這裏插入圖片描述
配置恢復操作:
在這裏插入圖片描述
在這裏插入圖片描述
測試微信告警功能:

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

關閉agent端後,稍後企業微信端(郵箱也會收到)即可收到以下信息:
在這裏插入圖片描述

接下來,啓動agent端,測試恢復操作:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章