1. 程式人生 > >zabbix的nginx監控+郵件報警

zabbix的nginx監控+郵件報警

nginx監控    下載nginx的監控模板 zbx_export_templates.xml zbx_export_templates.xml   在配置-模板-匯入,新增模板   給主機與模板連結   在zabbix客戶端編寫nginx監控指令碼 cat /etc/zabbix/zabbix_agentd.d/nginx_lzx.sh #!/bin/bash   HOST="10.0.0.101" PORT="80"   #檢測nginx程序是否存在 function ping {     /sbin/pidof nginx | wc -l     } # 檢測nginx效能 function active {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'     } function reading {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading'| awk '{print $2}'     } function writing {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing'| awk '{print $4}'     } function waiting {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting'| awk '{print $6}'     } function accepts {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'     } function handled {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'     } function requests {     /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'     } #執行function $1   修改客戶端zabbix配置檔案,重啟伺服器 vi /etc/zabbix/zabbix_agentd.conf UnsafeUserParameters=1 UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_lzx.sh $1 systemctl restart zabbix-agent   檢視nginx的監控是否開啟 curl -L http://10.0.0.101/nginx_status Active connections: 1 server accepts handled requests 288 288 288 Reading: 0 Writing: 1 Waiting: 0   在服務端安裝zabbix測試工具 yum install zabbix-get.x86_64 zabbix_get -s 10.0.0.101 -p 10050 -k "nginx.status[reading]" 0    #伺服器可以獲取到客戶端的監控資料   在服務端可以看到監控引數   三/zabbix郵件告警 
  微信公眾號     釘釘     簡訊     郵箱 編寫指令碼 vi /usr/lib/zabbix/alertscripts/zabbix_sendmail.py #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_host = '
smtp.163.com
'            # 郵箱smtp配置 mail_user = 'm15002782079'                    # 郵箱賬號 mail_pass = 'lizhanxun2021'                # 郵箱密碼 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])   修改指令碼路徑 vi /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts   給指令碼執行許可權,測試指令碼,如果傳送失敗,可能是網路不通,或者163郵箱的imtp/pop3沒開 chmod +x zabbix_sendmail.py chown -R zabbix.zabbix zabbix_sendmail.py python zabbix_sendmail.py 457214467
@qq.com
test test     檢視當前被監控的主機   將nginx監控項裡的監控時間間隔改為1   在admin使用者中新增報警媒介,郵件報警   zabbix伺服器報警媒介型別 增加三個引數 {ALERT.SENDTO}    收件人地址 {ALERT.SUBJECT}    主題 {ALERT.MESSAGE}    詳細內容   配置報警動作,建立新的觸發動作   配置操作 故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障! 告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊: {TRIGGER.NAME} 告警專案:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}   恢復操作 恢復{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復! 告警主機:{HOSTNAME1} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊: {TRIGGER.NAME} 告警專案:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}