添加自定義監控項目
例如
需求:監控某台web的80端口連接配接數,并出圖
兩步:1)zabbix監控中心建立監控項目;2)針對該監控項目以圖形展現
對于第一步,需要到用戶端定義腳本
[root@localhost ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##擷取80端口并發連接配接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
然後給他定義權限
chmod 755 /usr/local/sbin/estab.sh
用戶端上編輯配置檔案 vim /etc/zabbix/zabbix_agentd.conf
然後在裡面搜尋UnsafeUserParameters
找到後将前面的#去掉,然後讓他等于1,它的目的是使用自定義腳本
UserParameter=my.estab.count[],/usr/local/sbin/estab.sh
//自定義監控項的key為my.estab.count,後面的[]裡面寫腳本的參數,如果沒有參數則可以省略,腳本為/usr/local/sbin/estab.sh
重新開機zabbix-agent服務 systemctl restart zabbix-agent
首先到服務端驗證,執行指令
zabbix_get -s 192.168.218.129 -p 10050 -k 'my.estab.count'
如果結果為0,那麼證明你的腳本時好用的,如果不為0,則證明腳本有問題
還有一點要注意的是,我們要保持網絡暢通,沒有防火牆規則,沒有selinux。
然後在zabbix監控中心(浏覽器)配置增加監控項目
剩下的保持預設
添加完後還要給他做一個圖形,點選上面的圖形,然後點選最右邊的建立圖形。
在裡面輸入名稱,點選下面的添加,在彈出的對話框中選擇并發連結數,确定後點選再點選下面的添加,最後就可以形成新的圖表了。
我們也可以給他做一個觸發器,步驟基本相同
首先點選觸發器,然後點選最右邊的建立觸發器,
然後在裡面輸入名字,然後點選下面,選擇嚴重性,然後點選下面的添加
這裡監控項在彈出的對話框中選擇,功能通過點選向下的箭頭選擇,n=自定義的數值。最後點選添加。
配置郵件告警
使用163或者QQ郵箱發告警郵件
首先進入163郵箱,然後在設定頁面中選擇
然後在裡面設定
然後設定用戶端授權碼,這個密碼要盡量複雜,確定安全。
然後我們進入zabbix監控頁面,進行郵箱報警設定
這裡面雖然還有郵箱報警的選項,但是我們不需要那個,我們要重新建立一個郵箱報警。
将裡面的選項逐一填寫
然後我們去設定一個腳本,這個腳本要放到/usr/lib/zabbix/alertscripts下
首先進入到目錄下
[root@linletao-001 ~]# cd /usr/lib/zabbix/alertscripts
[root@linletao-001 alertscripts]# vim /usr/lib/zabbix/alertscripts/mail.py
#!/usr/bin/env python
#-- coding: UTF-8 --
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.163.com' (這裡需要改為你的郵箱,比如163就改為 smtp.163.com)
gport = 25
try:
msg = MIMEText(unicode(content).encode('utf-8'))
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject
smtp = smtplib.SMTP(gserver, gport)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():br/>to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
##定義QQ郵箱的賬号和密碼,你需要修改成你自己的賬号和密碼(請不要把真實的使用者名和密碼放到網上公開,否則你會死的很慘)
sendqqmail('[email protected]','aaaaaaaaaa','[email protected]',to,subject,content)
輸入郵箱 輸入授權碼 輸入郵箱
if name == "main":
main()
#####腳本使用說明######
#1. 首先定義好腳本中的郵箱賬号和密碼
#2. 腳本執行指令為:python mail.py 目标郵箱 "郵件主題" "郵件内容"
儲存退出。
然後更改腳本的權限
chmod 755 mail.py
然後測試一下腳本是否會發郵件
python mail.py [email protected] "郵件标題" "郵件内容"
然後我們去郵箱驗證一下即可。
然後我們建立一個使用者,這個使用者是用來接收郵件的
在zabbix的浏覽器頁面中選擇管理--使用者--建立使用者
然後設定
然後再在使用者中點選我們剛才設定的使用者,在裡面選擇報警媒介,在裡面填寫郵箱
然後再選擇權限,将所有組改為讀寫。如果不能更改,那我們既要去使用者組中改權限,
然後在選擇中選擇所有組,再點選添加和更新,這樣我們的權限就全部為讀寫了。
以上步驟一定要檢查清楚,否則會收不到報警的。
然後我們設定動作,進入後選擇建立動作,然後做如下的配置。
然後點選操作,将預設資訊全部删除,然後黏貼一下的内容
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
然後在裡面點選‘新的’在新的裡面選擇發送到使用者,在裡面選擇我們自定義的使用者,然後點添加,剩下的保持預設,最後點選藍色方框内的添加。需要注意的是,我們每一個選項都是要點選添加的,如果不點選,就不會增加選項。