部署Zabbix監控之郵件報警

經過部署Zabbix監控能夠簡單的部署zabbix server端,這篇博文主要介紹如何部署zabbix agent端。前提是必須基於上述博文zabbix server的環境。html

1、部署zabbix agent端

下載zabbix軟件mysql

[root@agent ~]# tar zxf zabbix-3.2.1.tar.gz  && cd zabbix-3.2.1/
[root@agent zabbix-3.2.1]#  ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
// --enable-agent :開啓zabbix agent模式
[root@agent ~]# useradd zabbix
[root@agent ~]#  cp /root/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
//將zabbix agent腳本文件複製到/etc/init.d/目錄下
[root@agent ~]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd 
//編譯啓動腳本中指定zabbix的安裝路徑
[root@agent ~]# chmod +x /etc/init.d/zabbix_agentd 
[root@agent ~]# cd /usr/local/zabbix/etc/
[root@agent etc]# sed -i '/PidFile=/s/^#//'  zabbix_agentd.conf
[root@agent etc]# sed -i 's/Server=127.0.0.1/Server=192.168.1.10/g' zabbix_agentd.conf
[root@agent etc]# sed -i '/ListenPort=/s/^#//'  zabbix_agentd.conf
[root@agent etc]# sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.10/g' zabbix_agentd.conf
[root@agent etc]# sed -i 's/Hostname=Zabbix server/Hostname=192.168.1.8/g' zabbix_agentd.conf
[root@agent etc]# echo -e "Timeout=15" >> zabbix_agentd.conf
[root@agent etc]# echo -e "Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/" >> zabbix_agentd.conf
[root@agent etc]# egrep -v '^$|^#' zabbix_agentd.conf
//確保配置文件沒有錯誤
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.10                  //指定zabbix server的IP地址(被動模式下)
ListenPort=10050                      //指定監聽的端口
ServerActive=192.168.1.10       //指定zabbix server的IP地址(主動模式下)
Hostname=192.168.1.8             //指定的名字必須和web頁面的host的名字同樣
Timeout=15                               //超時時間
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 
[root@agent ~]# /etc/init.d/zabbix_agentd start             //啓動zabbix服務
Reloading systemd:                                         [  肯定  ]
Starting zabbix_agentd (via systemctl):                    [  肯定  ]
[root@agent ~]# netstat -anpt | grep zabbix           //確認其監聽端口
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9587/zabbix_agentd

2、配置zabbix server的web頁面能夠監控到客戶端主機

如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
至此在zabbix server提供的web頁面中,已經能夠監控到zabbix agent端的信息!linux

3、客戶端部署Mysql服務

zabbix agent端能夠使用yum的方式部署mysql服務,可是建議使用源碼編譯的方式,可是考慮到源碼編譯安裝時間太長,因此提供一鍵式腳本安裝mysql,與源碼編譯安裝一致!對源碼編譯安裝感興趣的能夠參考編譯安裝mysqlweb

如下操做需在zabbix agent端進行配置!sql

[root@agent ~]# ls | grep mysql
mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
mysql.sh
[root@agent ~]# sh mysql.sh 
Starting MySQL. SUCCESS! 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@agent ~]# cd /root/zabbix-3.2.1/conf/zabbix_agentd/
[root@agent zabbix_agentd]# cp userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
//複製zabbix源碼包自帶的mysql模板文件
[root@agent zabbix_agentd]#  cd /usr/local/zabbix/etc/
[root@agent etc]# echo -e "[client]\nhost=192.168.1.8\nuser=test\npassword=123.com\nsocket=/usr/local/mysql/mysql.sock" > .my.cnf
[root@agent etc]# cat .my.cnf 
[client]
host=192.168.1.8          //指定mysql數據庫IP地址
user=test                      //指定用於測試的用戶
password=123.com           //用戶對應的密碼
socket=/usr/local/mysql/mysql.sock          //指定mysql.sock文件所在的路徑(rpm安裝的能夠不用寫)
[root@agent etc]# mysql -u root -p123              //腳本提供的mysql數據庫root用戶密碼默認是123
mysql> grant all on *.* to test@'192.168.1.%' identified by '123.com';                //建立受權規則
[root@agent etc]# cd zabbix_agentd.conf.d/
[root@agent zabbix_agentd.conf.d]# sed -i 's#HOME=/var/lib/zabbix mysql#HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql#g' userparameter_mysql.conf 
//更改文件中zabbix的安裝位置及mysql命令所在位置
[root@agent zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart
//從新加載配置文件

zabbix提供的模板文件修改後的內容,如圖:
部署Zabbix監控之郵件報警
因爲其複雜性,關於其內容先不作任何解釋了!數據庫

zabbix server使用如下命令進行驗證:vim

[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "mysql.status[Uptime]"
1662
//zabbix_get:獲取數據
//-s:指定客戶端的IP地址或域名
//-p:指定客戶端的端口(默認狀況下是10050)
//-k:指定須要獲取的值
//有消息返回就表示正常

4、配置zabbix server能夠監控mysql

如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警bash

出現上述狀況則表示mysql監控成功!服務器

5、配置郵件報警

以上操做需在zabbix server端進行配置!socket

[root@zabbix ~]# tar zxf sendEmail-v1.56.tar.gz 
[root@zabbix ~]# cp sendEmail-v1.56/sendEmail /usr/local/bin/sendEmail
[root@zabbix ~]# chown zabbix:zabbix /usr/local/bin/sendEmail

在接下來的操做中,須要有本身郵箱的受權碼,這裏以QQ郵箱爲例(163或新浪郵箱都是能夠的),操做如如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
配置完成後,編寫如下腳本進行測試:

[root@zabbix ~]# /usr/local/bin/sendEmail -o tls=no -f 1454295320@qq.com -t 1454295320@qq.com -s smtp.qq.com -u lzj -o message-content-type=html -o message-charset=utf8 -xu 1454295320@qq.com -xp mdwvlrlmeaxofidj -m hello world
Jan 09 15:43:26 zabbix sendEmail[2300]: Email was sent successfully!
//測試訪問沒有問題

收到的郵件如圖:
部署Zabbix監控之郵件報警

[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts
//必須在這個目錄下,不然zabbix識別不到腳本
[root@zabbix alertscripts]# vim mail.sh 
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -o tls=no -f 1454295320@qq.com -t "$to" -s smtp.qq.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 1454295320@qq.com -xp mdwvlrlmeaxofidj -m "$body"
[root@zabbix alertscripts]# chmod +x mail.sh 
[root@zabbix alertscripts]# sh mail.sh 1454295320@qq.com test 123456
腳本中各項解釋以下:
/usr/local/bin/sendEmail:命令主程序;
-f from@126.com :發件人郵箱
-t to@126.com :收件人郵箱
-s smtp.126.com :發件人郵箱的 smtp 服務器
-u "我是郵件主題" :郵件的標題 
-o message-content-type=html:郵件內容的格式,html 表示它是 html 格式
-o message-charset=utf8:郵件內容編碼
-xu from@126.com:發件人郵箱的用戶名
-xp WEE78@12l$ #發件人郵箱受權碼(就是我剛剛生成的那個受權碼)
-m "我是郵件內容" :郵件的具體內容
測試是否能夠成功發送郵件

收到的郵件以下:
部署Zabbix監控之郵件報警

接下來回到zabbix server提供的web頁面!

1)添加報警媒介

如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警

2)將報警媒介關聯到用戶

如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警

3)建立觸發動做

如圖:
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警

4)配置觸發器

部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警
部署Zabbix監控之郵件報警

5)測試觸發器

將agent端服務器的zabbix_agent進程關閉,郵箱能夠收到郵件則表示配置正確。

[root@agent ~]#  /etc/init.d/zabbix_agentd stop
//關閉zabbix agent進程

收到郵件如圖:
部署Zabbix監控之郵件報警

[root@agent ~]#  /etc/init.d/zabbix_agentd start
//關閉zabbix agent進程

收到的郵件以下:
部署Zabbix監控之郵件報警

————————未完待續——————————

相關文章
相關標籤/搜索