zabbix-3
新增自定義監控專案
需求:監控某臺web的80埠連線數,並形成影象顯示。
(1)zabbix監控中心建立監控專案(客戶端)
建立指令碼vim /usr/local/sbin/estab.sh
#!/bin/bash
##獲取80埠併發連線數
netstat -ant |grep ':80' |grep -c ESTABLISHED //netstat -ant 用來顯示網路連結的狀態
並修改許可權chmod 755 /usr/local/sbin/estab.sh
是為了給zabbix使用者擁有執行該指令碼的許可權。
(2)修改客戶端的配置檔案/etc/zabbix/zabbix_agentd.conf
修改以下內容
UnsafeUserParameters=1 //表示使用自定義指令碼。如果等於0就不能使用自定義的指令碼
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //指定自定義指令碼的路徑以及自定義指令碼的名稱
/my.estab.count需要填寫在監控項中的鍵值位置。
[*]
表示沒有引數,例如systemctl stop network.service 這是一個指令碼,那其中後面2個都是引數。如果指令碼帶引數的話,可以寫在[ ]裡面,用,分隔
(3)重啟zabbix-agent服務
systemctl restart zabbix-agent
測試指令碼是否被識別
(1)服務端執行以下命令,進行驗證。
[root@zcy-1 ~]# zabbix_get -s 192.168.244.135 -p 10050 -k 'my.estab.count'
0
-k 表示它的鍵值
如果指令碼有問題不可能會有結果。
必須保持網路的通常,沒有防火牆規則和selinux處於關閉狀態
(2)在zabbix監控中心(瀏覽器)配置增加監控專案
點選:配置→主機→zcy-2(監控項 )→建立監控項
併為它建立圖形
建立觸發器,當併發連線數超過200時,會告警
配置郵件告警
使用第三方郵箱來接收告警郵件,163或者qq郵箱
需要登入郵箱,並設定開啟POP3、IMAP、SMTP服務,第一次會需要進行簡訊驗證.
監控中心設定郵件告警。
點選:管理→報警媒介型別→建立媒體型別
這裡的引數分別是指(1)接收郵件的郵箱地址
(2)郵件主題
(3)郵件內容建立報警指令碼mail.py
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 = 'daycws0524@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():
to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
sendqqmail('daycws0524@163.com','aaaaaaa','daycws0524@163.com',to,subject,content)
if __name__ == "__main__":
main()
~
其中出現的’aaaaaa’是指的你的授權碼。 並修改為755許可權。
- 執行以下命令來給自己發測試郵件
python mail.py daycws0524@163.com "chengdu" "zai chengdu de mou ge di fang "
- 建立一個使用者用來接收郵件
點選:管理→使用者→建立使用者
- 配置動作是指當觸發報警後該進行什麼方式來通知運維人員。
測試告警
- 建立新的觸發器來進行測試
後面測試中發現出現問題並不會給使用者發郵件,進行排查
(1)檢視指令碼,或者在服務端上重新發一封郵件檢查指令碼是否有錯誤存在
(2)檢查使用者中的配置是否正確
配置告警流程
(1)郵箱中設定開啟POP3、IMAP、SMTP服務,並記錄授權碼,沒有授權碼那麼指令碼中就不能去寫向合格密碼,
(2)監控中心裡新增報警媒介,並填寫引數
(3)編輯指令碼(/usr/lib.zabbix/alertscripts路徑下)修改使用者名稱及密碼,並修改為755許可權。
(4)增加使用者,需要修改使用者群組的許可權為“所有組 讀寫”
(5)配置裡面的動作,條件保持預設即可。
後面還是沒有成功,需要繼續試驗