1、zabbix的自動發現
這里的自動發現,所顯示出來的是規則的上自動了現
然后 可以對其內容進行相關的配制,如時間或周期
注意:對於單個主機的規則,可以自行添加或刪除, 但對於已經添加好了的規則,若需要修改那么,就只有到模板里面進行相關設置。
2、自定義添加監控項目,監控項目都是針對於客戶機而言的,一般都是對客戶機進行配制
先在客戶機創建一個腳本加入以下內容:mkdir /etc/zabbix/sh; vim /etc/zabbix/sh/estab.sh
#!/bin/bash
##獲取80端口並發連接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
改變權限:chmod 755 /etc/zabbix/sh/estab.sh
然后再編輯配制文件:vim /etc/zabbix/zabbix_agentd.conf
改成如下:
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=47.**.***.***
ServerActive=47.**.***.***
Hostname=os72
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
UserParameter=nginx.estab.count[*],/etc/zabbix/sh/estab.sh
然后再重啟zabbix-agent服務:systemctl restart zabbix-agent.service
然后,再測試自定義的腳本是否有效:zabbix_get -s **.***.***.*** -p 10050 -k 'nginx.estab.count'
zabbix_get -s IP -p 10050 -k 'name.sh'
最后,就到zabbix服務器上進行相關配制
然后再新建一個監控項:
添加完成后,再到圖形界面,配制一個圖形:
監控項配制好了,還可以創建觸發器:
流程:監控項,在客戶端自定義要獲取某個服務的是一個值,然后給權限,最后在服務端,進行相關的監控項的配制。
3、配置郵件告警
郵箱配制以163郵箱為例進入郵箱進行相關設置:
然后訪問監控服務器頁面,進行腳本及參數的配制:
然后,就去服務器創建發郵箱的腳本(即客戶機出問題了,由服務器發郵件報警):
然后編輯腳本:vim /etc/zabbix/sh/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'
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_SSL(gserver,465)
#其它的就用正常的
smtp = smtplib.SMTP(gserver,25)
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('mail_name@163.com','password','mail_name@163.com',to,subject,content)
if __name__ == "__main__":
main()
注意阿里雲的服務器不支持:smtplib.SMTP(smtp_server, 25),
若用阿里雲的服務器,這里改成:smtp = smtplib.SMTP_SSL(gserver,465)
然后再測試:python mail.py to_email_name@qq.com "this is a test" "use python script to send e-mail"
再到服務器zabbix頁面進行配制創建用戶(即出現問題了報警信息發給誰):
最后再配制權限: 這里所配制的權限都是針對於組而言的,所以配制的都是用戶組
最后再進行查看:
這時,整個配制有了:
在服務器頁面上設置了報警的媒介(可以有N個) 、然后在服務器上設置了對應的腳本、再然后又在服務器頁面上設置了用哪個報警媒介腳本,
並且設置了用戶及權限(即出現問題后通知誰)。 但最后還差的就是一個動作(即一個問題的評判標准,在什么情況下執行腳本發郵件)
動作配制:
操作配制:
恢復操作也同樣的設置:
最后就進行測試:
我們添加一個用戶看一下:
查看:
再查看郵件:
最后,對這於這幾個操作的個人理解:
到此zabbix郵件報警配制完成。
小總結:
1、先配制報警媒介
2、根據報警媒體,設置相應的腳本
3、設置腳本執行后,配制報告給予對象 (通知用戶)
4、設置執行腳本的前提條件(即 要執行該腳本需要在什么條件下)
5、根據不同的執行條件,進行不同的動作(如 發郵件、重啟等等)