9月12日任務

19.12 添加自定義監控項目
19.13/19.14 配置郵件告警
19.15 測試告警
19.16 不發郵件的問題處理

19.12?添加自定義監控項目

需求監控某臺web80端口連接數,并出圖

兩步:1)zabbix監控中心創建監控項目;

? ? ? ? ? 2)針對該監控項目以圖形展現

客戶端127機器配置:

1. 客戶端(127)編寫estab.sh腳本 :

[root@localhost?~]#?vim?/usr/local/sbin/estab.sh
#!/bin/bash
##獲取80端口并發連接數
netstat?-ant?|grep?':80?'?|grep?-c?ESTABLISHED

2. 設定estab.sh腳本權限755

[root@localhost?~]#??chmod?755?/usr/local/sbin/estab.sh

3. 客戶端(127)編輯配置文件

添加內容( =1表示使用自定義的腳本)

vim?/etc/zabbix/zabbix_agentd.conf

添加以下兩行

UnsafeUserParameters=1

UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh

27.png

4. 重啟zabbix-agent服務:

[root@localhost?~]#??systemctl?restart?zabbix-agent

服務端149機器測試:

1. 遠程到客戶端ip執行命令(獲取80端口連接數):

[root@aminglinux-128?~]#?zabbix_get?-s?192.168.193.127?-p?10050?-k?'my.estab.count'
0

2. 臨時關閉getenforce防火墻

[root@aminglinux-128?~]#?setenforce?0
setenforce:?SELinux?is?disabled

關閉firewalld防火墻;查看是否還有防火墻規則?

[root@aminglinux-128?~]#?setenforce?0
setenforce:?SELinux?is?disabled
[root@aminglinux-128?~]#??systemctl?stop?firewalld
[root@aminglinux-128?~]#?iptables?-nvL
Chain?INPUT?(policy?ACCEPT?127K?packets,?28M?bytes)pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination?????????0?????0?ACCEPT?????udp??--??virbr0?*???????0.0.0.0/0????????????0.0.0.0/0????????????udp?dpt:530?????0?ACCEPT?????tcp??--??virbr0?*???????0.0.0.0/0????????????0.0.0.0/0????????????tcp?dpt:530?????0?ACCEPT?????udp??--??virbr0?*???????0.0.0.0/0????????????0.0.0.0/0????????????udp?dpt:670?????0?ACCEPT?????tcp??--??virbr0?*???????0.0.0.0/0????????????0.0.0.0/0????????????tcp?dpt:67Chain?FORWARD?(policy?ACCEPT?0?packets,?0?bytes)pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination?????????0?????0?ACCEPT?????all??--??*??????virbr0??0.0.0.0/0????????????192.168.122.0/24?????ctstate?RELATED,ESTABLISHED0?????0?ACCEPT?????all??--??virbr0?*???????192.168.122.0/24?????0.0.0.0/0???????????0?????0?ACCEPT?????all??--??virbr0?virbr0??0.0.0.0/0????????????0.0.0.0/0???????????0?????0?REJECT?????all??--??*??????virbr0??0.0.0.0/0????????????0.0.0.0/0????????????reject-with?icmp-port-unreachable0?????0?REJECT?????all??--??virbr0?*???????0.0.0.0/0????????????0.0.0.0/0????????????reject-with?icmp-port-unreachableChain?OUTPUT?(policy?ACCEPT?124K?packets,?29M?bytes)pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination?????????0?????0?ACCEPT?????udp??--??*??????virbr0??0.0.0.0/0????????????0.0.0.0/0????????????udp?dpt:68

3. 游覽器訪問ip/zabbix創建監控項

28.jpg

29.jpg

上例為

名稱——鍵值——添加

4. 創建圖形

30.jpg

名稱——添加——并發連接數——選擇——添加

31.jpg

5. 創建觸發器

32.jpg

名稱——嚴重性——添加——監控項-選擇——功能——N——插入——添加

33.jpg

19.13?配置郵件告警(上)

1. 登錄163網易郵箱,設置——客戶端授權密碼

設置開啟POP3IMAPSMTP服務 開啟記錄授權碼

34.jpg

2. 創建媒體類型


35.jpg

名稱——類型——腳本名稱(mail.py)——腳本參數

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

36.jpg

3. 圖中AlertScriptsPath=目錄,mail.py腳本創建這個目錄下

vim?/etc/zabbix/zabbix_server.conf

4. 創建mail.py腳本:

#####腳本使用說明######

#1. 首先定義好腳本中的郵箱賬號和密碼

#2. 腳本執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"

內容參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py

添加內容:

#!/usr/bin/env?python
#-*-?coding:?UTF-8?-*-
import?os,sys
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('zhuneianxiang@163.com','mima','zhuneianxiang@163.com',to,subject,content)
if?__name__?==?"__main__":
main()

5. 設定mail.py腳本權限755

[root@aminglinux-128?~]#?chmod?755?/usr/lib/zabbix/alertscripts/mail.py

6. 測試發給指定郵箱一封郵件

python?mail.py?zhuneianxiang@163.com?"biaoti"?"neirong"

19.14?配置郵件告警(下)

1. 創建用戶

38.jpg

定義用戶參數如圖

39.jpg

進入hao用戶對應用戶群組,更改用戶群組權限讀寫!!!

40.jpg

定義報警媒介(接收郵箱地址)

41.jpg

確定149用戶權限讀寫!!!

42.jpg

2. 創建動作

44.jpg

設置操作

默認信息:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE} {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

45.jpg

設置恢復操作

默認信息:

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE} {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

46.jpg

1.創建觸發器

配置觸發器參數為錯誤參數,達到發郵箱報警效果!!!

48.jpg

49.jpg