[toc]python
Zabbix的特點:咱們有時候會根據業務需求配置一些個性化的需求服務去監控某臺web的80端口鏈接數,
並整出監控狀態圖:web
# vim /usr/local/sbin/estab.sh //內容以下 #!/bin/bash ##獲取80端口併發鏈接數 netstat -ant |grep ':80 ' |grep -c ESTABLISHED
自定義監控項的key爲my.estab.count(也就是在監控項中須要填寫的鍵值),後面的[*]裏面寫腳本的參數vim
# 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
[root@xavi-002 ~]# systemctl restart zabbix-agent
[root@xavi ~]# zabbix_get -s 192.168.72.133 -p 10050 -k 'my.estab.count' 0 -s:源地址 -p: 端口 -k: 鍵值 如上顯示0即爲沒有任何鏈接。
配置 → 主機 → 監控項 → 建立監控項bash
「配置」→「主機」 →「圖形」 → 建立圖形」架構
配置告警是目前絕大多數企業必需要有的一個狀態,遇到問題第一時間得到警告大大提高了運維的高效性,若是沒有配置任何告警,等待客戶反應,這是一個很是不明智的選擇。併發
登陸web管理界面:運維
管理 → 報警媒介類型 → 建立媒體類型(不建議用自帶的,很差用)ide
腳本名稱必定要用本身自定義的!!! 測試
{ALERT.SENDTO} //發給誰優化
{ALERT.SUBJECT} //主題
{ALERT.MESSAGE} //郵件內容
在服務端配置:
[root@xavi ~]# vim /usr/lib/zabbix/alertscripts/Sendmail.py
vim Sendmail.py 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' #編寫服務地址 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('xxxxxx@163.com','Password','xxxxxx@163.com',to,subject,content) //注意這裏的password是剛纔在163郵箱設置的受權碼
[root@xavi alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/Sendmail.py [root@xavi alertscripts]# python Sendmail.py dsf1626@163.com 'torreicdmailcn' 'datatime20180417'
建立一個接受告警郵件的用戶,「管理」,「用戶」,「建立用戶」,「報警媒介」,類型選擇「baojing」,注意用戶的權限,若是沒有須要到用戶組去設置權限
關於權限選項,咱們先保存當前的配置,而後進入用戶羣組 → Zabbix administrators → 權限
爲了防止發生錯誤,暫時先選擇所有用戶。千萬不要忘記點擊添加
受權成功後更新,檢查下用戶權限
設置動做,「配置」,「動做」,「建立動做」,名稱寫「sendmail」(自定義),「操做」頁面,內容以下
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
「恢復操做」,把信息改爲以下:
HOST:{HOST.NAME} {HOST.IP} TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME} messages:{ITEM.NAME}:{ITEM.VALUE} ID:{EVENT.ID}
點擊「新的」,「操做」,選擇發送的用戶爲剛建立的用戶,僅送到選擇「baojing」
點擊添加後查看
配置 → 主機 → 觸發器 → 建立觸發器
條件是,併發數小於1,我們的虛擬機壓根就沒有任何人去訪問,因此必然報警。
修改參數,查看恢復郵件