【三】Zabbix監控並且實現各種報警(詳細)


每個被監控節點安裝zabbix客戶端

1)下載並安裝zabbix源:

[root@nginx-master ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2)安裝zabbix-agent代理軟件:

[root@nginx-master ~]# yum install zabbix-agent -y 

3)更改配置文件:

[root@nginx-slave ~]# vim /etc/zabbix/zabbix_agentd.conf
------------------------- 配置信息--------------------------------
97   Server=192.168.115.0/24			#zabbix_server的IP
138  ServerActive=192.168.115.0/24   #zabbix_server的IP
149  Hostname=nginx-master        #重要:主機名

4)啟動zabbix客戶端

[root@nginx-master ~]# systemctl start zabbix-agent                       
[root@nginx-master ~]# systemctl enable zabbix-agent 

注:這里只演示一個節點,其余的節點同理!

觸發器實現郵件報警和微信報警

觸發器的介紹

報警流程:定義條件---滿足條件----馬上觸發---實現報警

實現郵件報警

1)過濾zabbix主配置文件

[root@zabbix-master ~]# grep '^[^#].*' /etc/zabbix/zabbix_server.conf

2)找到並進入AlertScriptsPath所對應的目錄

[root@zabbix-master ~]# vim /etc/zabbix/zabbix_server.conf

image

3)在此目錄下創建一個Python腳本

[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# vim mail.py 

腳本信息如下:

#!/usr/bin/python
#coding:utf-8

from email.mime.text import MIMEText
from email.header import Header
import smtplib
import sys

# 個人郵件信息,在郵箱設置里必須開啟SMTP
smtpaddr = 'smtp.163.com'
myemail = 'xxxxx@163.com'
# 注意:此密碼是授權碼如果是163的話
password = 'xxxx'

# 第一是接收的郵件是什么,第二是郵件的主題,第三是正文(內容)
recvmail = sys.argv[1]
subject = sys.argv[2]
content = sys.argv[3]

msg = MIMEText("""%s"""%(content),"plain","utf-8")
msg['Subject'] = Header(subject,'utf-8').encode()
msg['From'] = myemail
msg['to'] = recvmail
try:
   server = smtplib.SMTP()
   server.connect(smtpaddr,"25")
   server.login(myemail,password)
   server.sendmail(myemail,recvmail.split(','),msg.as_string())
   server.quit
   print("success")
except Exception as e:
        print("fail:"+str(e))

image

[root@zabbix-master alertscripts]# chmod +x mail.py

image

4)配置好腳本后,用命令發送郵件測試

image
image
郵箱發送完成!

5)創建報警媒介

默認的報警媒介類型有3種,我們可以創建一個名為“郵箱”的媒介類型,以腳本的方式進行創建,腳本名稱為mail.py。

腳本參數添加兩項一個是{ALERT.SENDTO}發送給誰的,{ALERT.SUBJECT},還有一個是{ALERT.MESSAGE}發送的內容。

image

image

image

給用戶添加報警媒介時指定嚴重性級別

image

image

創建郵件報警就已經完成初步階段,觸發報警請往下看web主頁監測

實現微信報警

注:請自行創建企業微信,這里已經創建好了。

1)找到並進入AlertScriptsPath所對應的目錄

 [root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts  

2)在此目錄下創建一個Python腳本

[root@zabbix-master alertscripts]# vim weixin.py
------------------------------腳本信息----------------------------
#!/usr/bin/env python
# encoding: utf-8
import json
import sys
import urllib,urllib2

#需要三個變量corpid、corpsecret、agentid
agentid = '企業微信的AgentId'
corpid = '企業ID'
corpsecret = '企業微信的Secret'

#獲取tocken,存在my_tocken里面
gettoken_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
token_file = urllib2.urlopen(gettoken_url)
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
my_token = token_json['access_token']

#利用獲取到的tocken發送微信信息
touser=sys.argv[1]
content=sys.argv[2]
post_content={
        "touser":touser,
        "agentid":agentid,
        "msgtype": "text",
        "text": {
                "content":content,
        }
 }

json_content = json.dumps(post_content)

url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' +my_token
response = urllib2.urlopen(url,json_content)
print(response.read().decode('utf-8'))

image

3)測試發送微信信息

[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# ./weixin.py 企業微信號 'test'  

4)添加報警媒介類型

創建一個名為“微信報警”的媒介類型,以腳本的方式進行創建,腳本名稱為 weixin.py。

腳本參數添加兩項一個是{ALERT.SENDTO}發送給誰的,還有一個是{ALERT.MESSAGE}發送的內容。

image

image

注:將兩個常用報警方式添加好之后,接下來就可以創建觸發器和動作來實現報警。

創建主機及web主頁監控

這是我們前面配置好的nginx高可用反向代理的web主頁,直接監測VIP。

image

先創建一台被監控主機

image

image

添加一個web場景

image
image
image

創建觸發器

image
image

創建動作
注:當條件滿足觸發器時——實現的動作

image
image
image

注:我們這里選擇的是微信報警方式,郵件報警則選擇“僅送到:郵件報警”

image

測試報警

然后我們查看一下監控的數據(檢測中->web檢測),當我們看到響應代碼為200時表示檢測成功了。

image

接下來模擬主頁訪問不了,是否觸發報警。

[root@web1 html]# rm -rf index.html 

image

當HTTP狀態碼不是200時,則觸發報警,請自行了解HTTP狀態碼。

image

此時告警信息已經發送到我們的企業微信里了,恢復之后也會發送一條恢復信息,請自行實驗。

image

到此就完成了郵件(郵件自行測試)和微信報警。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM