1. 程式人生 > >【Linux】Zabbix監控主機及郵箱報警設定

【Linux】Zabbix監控主機及郵箱報警設定

OS:Centos7.2--zabbix-server{IP地址:192.168.146.100}

Centos7.2--zabbix-agent{IP地址:192.168.146.110}

這邊我zabbix服務端已經安裝好了,並且可以訪問zabbix頁面如下:

1)設定zabbix頁面中文顯示

以上圖中所示,已經是中文的介面,但是還是會存在亂碼的情況如下:

解決辦法,我們可以講windows的字型下載到本地,隨後傳到zabbix服務端,操作如下:

windows--控制面板---字型下載

複製到windows本地桌面後,我們通過rz的方式上傳到linux伺服器:

[root@yankerp-zabbix fonts]# pwd
/usr/local/nginx/html/zabbix/fonts
[root@yankerp-zabbix fonts]# ls
DejaVuSans.ttf  simsun.ttc
[root@yankerp-zabbix fonts]# mv simsun.ttc DejaVuSans.ttf 
mv: overwrite ‘DejaVuSans.ttf’? y
[root@yankerp-zabbix fonts]# 

simsun.ttc是我們上傳的字型,zabbix預設字型為DejaVuSans.ttf 所以我們可以直接拷貝上傳的字型起名為DejaVuSans.ttf覆蓋就好了,隨後重新整理zabbix監控頁面如下:


2、zabbix客戶端安裝(192.168.146.110)

既然我們要監控我們就要新增監控的主機,在新增監控主機之前我們需要在被監控主機上安裝agent,安裝agent很簡單,我們也是按照安裝zabbix-server的流程安裝,不過在安裝的過程中只指定agent就可以了。

1)安裝zabbix-配置zabbix-agent

[root@zabbix-agent src]# tar zxf zabbix-3.2.1.tar.gz 
[root@zabbix-agent src]# cd  zabbix-3.2.1/
[root@zabbix-agent zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent && make;make install
[root@zabbix-agent zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@zabbix-agent zabbix-3.2.1]# mkdir -p /usr/local/zabbix/logs
[root@zabbix-agent zabbix-3.2.1]# groupadd zabbix
[root@zabbix-agent zabbix-3.2.1]# useradd -g zabbix zabbix
[root@zabbix-agent zabbix-3.2.1]# chown -R zabbix:zabbix /usr/local/zabbix/

2)配置開機自啟動

[root@zabbix-agent zabbix-3.2.1]# chkconfig --add zabbix_agentd
[root@zabbix-agent zabbix-3.2.1]# chkconfig zabbix_agentd on

3)修改zabbix開機啟動指令碼的安裝目錄

[root@zabbix-agent zabbix-3.2.1]# vim /etc/rc.d/init.d/zabbix_agentd 如下:


[root@zabbix-agent zabbix-3.2.1]# systemctl daemon-reload 

4)編輯zabbix_agentd.conf修改如下:

[root@zabbix-agent ~]# vim /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.146.100
ListenPort=10050
ServerActive=192.168.146.100
Hostname=192.168.146.110
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

注:
其中ServerServerActive都指定zabbixserver的IP地址,不同的是,前者是被動後者是主動。也就是說Server這個配置是用來允許192.168.146.100這個ip來我這取資料。而serverActive的192.168.146.100的意思是,客戶端主動提交資料給他。
Hostname=XXX,這個定義的名字必須和web頁面裡面host的名字一樣。

啟動zabbix-agent(測試中-關閉防火牆)

[root@zabbix-agent ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl):                    [  確定  ]
[root@zabbix-agent ~]# netstat -anput | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      11055/zabbix_agentd 

到這裡zabbix客戶端已經安裝完畢!接下來配置zabbix-server端來監控zabbix客戶端

3、配置zabbix-server

先在“配置”-“主機”裡新增主機監控,監控os資源:記憶體,cpu,io,負載,頻寬等.


新增完成後選擇模版如下:

到這裡zabbix監控linux主機設定完成

檢測Linux主機的cpu情況如下:

要出現上圖效果,需要等待5-10分鐘...

例:在zabbix-agent主機上安裝web伺服器,使用zabbix-server端伺服器監控web伺服器的流量等情況

安裝Apache(在zabbix-agent操作)

[root@zabbix-agentd ~]# yum install httpd -y


匯入頁面後,測試能夠正常的訪問!如下:

配置zabbix-server監控web主機

1)新增應用集

配置---->主機---->選擇web檢測

不斷重新整理頁面,效果如下:

2)觸發器配置

在這裡已經配置好了,接下來關閉httpd服務,檢視狀態。

當web服務訪問不等於200ok時就會啟用觸發器 嚴重!!! 

三、設定zabbix郵箱報警

abbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。

1)安裝依賴包

[root@yankerp-zabbix ~]# yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

2)解壓軟體,然後將sendemail複製到/usr/local/bin/目錄下,並加上可執行許可權,然後修改使用者和群組

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

/usr/local/bin/sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "Zabbix報警測試" -o message-content-type=html -o message-charset=utf8 -xu yankerpcs -xp **** -m "郵件告警正在測試中"

/usr/local/bin/sendEmail                     #命令主程式
-f  [email protected]                       #發件人郵箱
-t [email protected]                              #收件人郵箱
-s smtp.163.com                           #發件人郵箱的smtp伺服器
-u "我是郵件主題"                               #郵件的標題
-o message-content-type=html          #郵件內容的格式,html表示它是html格式
-o message-charset=utf8                   #郵件內容編碼
-xu yankerpcs                       #發件人郵箱的使用者名稱
-xp **********                             #發件人郵箱密碼  注意:此密碼是授權碼如果是163的話
-m "我是郵件內容"                             #郵件的具體內容

以上圖中表示我們可以正常的接受郵件,接下來配置zabbix郵件告警!

在以下目錄下建立報警指令碼sendmail.sh

給mail指令碼執行許可權並執行測試!

zabbix-web端配置

上面的郵件指令碼配置好後,就要在web端新增報警媒介,在web頁面的管理,報警媒介型別頁面,點選右邊的建立媒體型別

進入建立頁面,然後輸入名稱“郵件報警指令碼”,型別選擇指令碼,名稱選擇mail.sh,點選新增按鈕,新增三個指令碼引數,分別是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分別對於mail.sh中的to、subject和body。新增完成後點下面的新增按鈕,我們的報警媒介就建立完成了

建立好報警媒介後,就需要將報警媒介關聯到我們的使用者。點選管理,使用者,然後選擇我們的使用者admin也可新建一個使用者,點選使用者名稱就進入到使用者配置介面。點選報警媒介,然後點新增,選擇我們上一步建立的郵件報警指令碼,輸入收件人,選擇報警時間和型別,然後點選新增,就將建立好的報警媒介關聯到我們的使用者上面了

現在需要做的是,建立一個觸發動作,即系統出現故障時,觸發這個動作,然後給我們的郵箱傳送報警郵件。點選配置,選擇動作,然後點選右邊的建立動作。在動作這一頁名稱中寫入我們定義的動作名以及觸發條件

設定操作

步驟是1-3,也即是從1開始到3結束。一旦故障發生,就是執行Email.sh指令碼發生報警郵件給zabbix使用者。 
假如故障持續了1個小時,它也只發送3次,第1-3次(即前3次)郵箱傳送給zabbix使用者,時間間隔為0秒。

設定恢復操作

報警測試,將被監控伺服器的zabbix_agent程序關閉。

發現可以正常收到故障報警郵件

最後,點選”報表“->”動作日誌“,可以看到觸發動作的次數(右邊還看檢視到郵件傳送狀態“已傳送”)。

本次測試需要注意:

出現以下的故障

*******************************************************************
 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
 is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
 together with SSL_ca_file|SSL_ca_path for verification.
 If you really don't want to verify the certificate and keep the
 connection open to Man-In-The-Middle attacks please set
 SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
  at /usr/local/bin/sendEmail line 1906.

解決辦法:

原因是sendemail軟體和perl5裡面的ssl版本不相容導致的,通過修改sendemail裡面的內容可以解決這個問題。
解決方法:
在sendemail中1906行的內容,從
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
修改為
if (! IO::Socket::SSL->start_SSL($SERVER)) {

2:

*******************************************************************
 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
 is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
 together with SSL_ca_file|SSL_ca_path for verification.
 If you really don't want to verify the certificate and keep the
 connection open to Man-In-The-Middle attacks please set
 SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
  at /usr/local/bin/sendEmail line 1906.
Jan 13 04:29:51 yankerp-zabbix sendEmail[29686]: ERROR => Received:     554 DT:SPM 163 smtp11,D8CowADHZO69GllahKFICQ--.40213S3 1515788991,please see http://mail.163.com/help/help_spam_16.htm?ip=221.205.62.253&hostid=smtp11&time=1515788991

如果有一直髮郵件發不出去的情況,請檢查smtp服務等是否開啟,在郵箱中設定,如果開啟,那麼可以修改測試郵箱時--郵箱中的具體內容,因為如果寫上很多英文字母測試的話,163郵箱會直接刪掉,它會認為是垃圾郵件,親測5小時!

希望對您有所幫助,再見~