19.12 添加自定義監控項目
該配置的用途是監控模闆中沒有的監控項目。
需求:監控某台web的80端口連接配接數,并出圖。
步驟:
1) zabbix監控中心建立監控項目
2) 針對該監控項目以圖形展現
配置80端口的監控腳本
用戶端: 統計80端口連接配接數量
[root@z1 ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##擷取80端口并發連接配接數
netstat -ant |grep ':80 ' |grep -c established
注意:80後面跟一個空格,保證比對更精确,如果不加空格,會把8080端口同時過濾出來。
更改權限:
[root@z1 ~]# chmod 755 /usr/local/sbin/estab.sh
配置zabbix-agent.conf:
[root@z2 ~]# vim /etc/zabbix/zabbix_agentd.conf
unsafeuserparameters=1 #表示使用自定義腳本
userparameter=my.estab.count[],/usr/local/sbin/estab.sh
#自定義監控項的key(監控web端“鍵值”)為my.estab.count,後面的[]裡面寫的是腳本參數
#如果沒有參數則可以省略,腳本為/usr/local/sbin/estab.sh
重新開機zabbix服務:
[root@z2 ~]# systemctl restart zabbix-agent.service
用戶端配置完成後在 服務端使用zabbix自帶指令測試該腳本是否生效:
[root@z1 ~]# zabbix_get -s 192.168.8.138 -p 10050 -k 'my.estab.count'
如上所示,說明用戶端腳本配置成功!
配置web端參數
浏覽器通路服務端zabbix首頁:192.168.8.136/zabbix
進入客戶機adai-02“監控項配置”頁面:
mark
“建立監控項”:
說明: 在此設定監控項名稱和鍵值,其他參數保持預設(當然,研究透徹之後,所有參數可以根據個人需求進行更改)。
“建立圖形”:
“添加”添加完成後,為該監控項配置“圖形”——“建立圖形”:
mark 注意: 在此設定圖形名稱後,需要先為該圖形“添加”(該添加為參數“監控項”下的添加)監控項,然後再點選最下面的“添加”将該圖形參數添加到zabbix圖形監控參數中!!!
建立觸發器:
所謂觸發器即設定觸發警報的規則!
“觸發器”——“建立觸發器”:
點選“添加”,設定該觸發器所要監控的對象及觸發規則:
即,當并發連接配接數最新值t大于n(自定義該值,在此n=2)時觸發該警報。
19.13-19.4 配置郵件告警
使用163郵箱或qq郵箱發送告警郵件。
開啟郵箱的pop3、imap、smtp服務
登入163郵箱,開啟pop3、imap、smtp服務:
登入郵箱後,“設定”——“pop3、imap、smtp”——“儲存”:
說明: 首次開啟該服務需要進行使用者認證,根據提示資訊進行認證并設定“用戶端授權密碼”(用于登入第三方郵件用戶端的專用密碼),記錄該密碼。
配置報警腳本
郵箱相關服務配置完成後到監控中心進行報警配置。
配置報警媒介類型
“管理”——“報警媒介類型”——“建立媒介類型”:
說明: 設定媒介類型名稱、類型、腳本名稱(與伺服器中腳本名稱保持一緻)、添加腳本參數(該參數為zabbix内置參數,之後會配置在mail.py腳本中),上述内容配置完後再點“添加”(最下面藍色)。
添加報警腳本mail.py
服務端:
檢視報警腳本儲存路徑:
[root@z1 ~]# vim /etc/zabbix/zabbix_server.conf
alertscriptspath=/usr/lib/zabbix/alertscripts
建立報警腳本mail.py:
[root@z1 ~]# cd /usr/lib/zabbix/alertscripts
[root@z1 alertscripts]# vim mail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import mimetext
import sys
mail_host = 'smtp.163.com' #指定所使用的郵箱類型
mail_user = '[email protected]' #指定郵箱使用者名
mail_pass = '111111111' #指定郵箱密碼
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
me = "zabbix 監控告警平台"+"<"+mail_user+"@"+mail_postfix+">"
msg = mimetext(content, 'plain', 'utf-8')
msg['subject'] = subject
msg['from'] = me
msg['to'] = to_list
try:
s = smtplib.smtp()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return true
except exception,e:
print str(e)
return false
if name == "main":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
#####腳本使用說明######
#1. 首先定義好腳本中的郵箱賬号和密碼
#2. 腳本執行指令為:python mail.py 目标郵箱 "郵件主題" "郵件内容"
更改腳本權限:
[root@z1 alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py
測試能否正常發送郵件:
[root@z1 alertscripts]# python mail.py [email protected] "emerge" "emerge2"
#在此使163郵箱自己給自己發送郵件(保證其不出其他故障)
發送成功!至此說明發郵件的腳本沒問題!!!
配置使用者
在監控中心(web端)建立一個接收告警郵件的“使用者”,在建立使用者前需要先建立一個“使用者組”,在此使用一個已經存在的使用者組。“管理”——“使用者”——“建立使用者”:
mark 設定完以上資訊後,點選最下面的“添加”。
配置報警媒介
打開使用者adai——報警媒介——添加報警媒介——更新:
配置使用者權限:
需要到使用者所在的“使用者群組”更改使用者的權限:
mark 選擇後權限後點選“添加”——“更新”,如果此處設定錯誤,之後将無法收到報警郵件。
配置動作
設定觸發器被觸發後所要執行的的操作!
“配置”——“動作”——“建立動作”:
“操作”:
客戶機故障時要執行的操作。
host:{host.name} {host.ip}
time:{event.date} {event.time}
level:{trigger.severity}
name:{trigger.name}
messages:{item.name}:{item.value}
id:{event.id}
将“操作”中的“預設資訊”改為以上參數:
點選“新的”配置上圖中指定參數其餘參數保持預設(該部分資訊才是發郵件的具體行為),配置完上述内容後點選“添加”(此處==非藍色==添加按鈕)。
恢複操作:
即客戶機狀态恢複後需要執行的操作。
“預設資訊”:(同操作中内容)
條件參數也和“操作”中的相同。
以上“動作”參數配置完後點選藍色按鈕“添加”!!!
監控中心報警準備工作完成!!!
19.15 測試告警
将監控項目改成故障項目。
“配置”——“主機”——“觸發器”——“建立觸發器”
注: 該觸發器隻用于測試,完成測試後要删除!
選擇“添加”表達式設定觸發規則:
其他參數保持預設,點藍色按鈕“添加”。配置完成後進入“儀表盤”等待……
經多次嘗試都顯示動作完成,但是檢視郵箱并沒有收到任何郵件!!!
排查故障
使用伺服器發送郵件:
[root@z1 alertscripts]# python mail.py [email protected] "emergecome" "emerge333"
即,能正常發送郵件,說明腳本内容沒問題!
[root@z1 alertscripts]# ls -l /usr/lib/zabbix/alertscripts/
總用量 4
-rwxr-xr-x 1 root root 1243 9月 12 07:54 mail.py
[root@z1 alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/mail.py
檢查使用者資訊
添加一個接受郵件的郵箱:
檢視使用者權限,保證其為“讀寫”!
檢查動作配置
将操作中的預設資訊更改為其自帶的配置:
“恢複操作”中先不改!更新後進行測試,結果依然無法收到郵件!!!
果斷恢複快照再來一遍……
配置完後再次檢測:
故障:
恢複:
在zabbix監控中心設定主動模式或被動模式
配置——模闆——監控項: