1. 程式人生 > >2018-05-28 Linux學習

2018-05-28 Linux學習

Linux學習

19.12 添加自定義監控項目

需求:監控某臺web的80端口連接數,並出圖

兩步:
1)zabbix監控中心創建監控項目;2)針對該監控項目以圖形展現

對於第一步,需要到客戶端定義腳本
vim /usr/local/sbin/estab.sh //內容如下
#!/bin/bash
##獲取80端口並發連接數
netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED

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
重啟zabbix-agent服務 systemctl restart zabbix-agent

首先到服務端驗證,執行命令
zabbix_get -s 192.168.106.165 -p 10050 -k ‘my.estab.count‘
然後在zabbix監控中心(瀏覽器)配置增加監控項目
鍵值寫my.estab.count
添加該項目後,到“監測中” --> “最新數據”查看剛添加的項目是否有數據出現

有了數據就可以添加圖形了
“配置”-->“主機” --> “圖形” --> “創建圖形”

操作過程

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

[root@linux-02 ~]# chmod 755 /usr/local/sbin/estab.sh

[root@linux-02 ~]# vim /etc/zabbix/zabbix_agentd.conf
搜 UnsafeUserParameters 添加
UnsafeUserParameters=1

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

[root@linux-02 ~]# systemctl restart zabbix-agent

[root@linux-01 ~]# zabbix_get -s 192.168.106.165 -p 10050 -k ‘my.estab.count‘
0

zabbix web 設置

配置---主機---aming-02---監控項---創建監控項---名稱:並發連接數---鍵值:my.estab.count添加

圖形---創建圖形---名稱:並發連接數---監控項 添加---選擇 並發連接數---添加

報警:觸發器---創建觸發器---並發連接數---嚴重性:警告---表達式 添加---監控項 選 並發連接數---功能:最新的T值 > N --- N : 輸入200 ---插入---添加

監測中---圖形---群組 amingtest---主機 aming-02---圖形:並發連接數 ---查看數據

19.13-14 配置郵件告警

使用163或者QQ郵箱發告警郵件
首先登錄你的163郵箱,設置開啟POP3、IMAP、SMTP服務
開啟並記錄授權碼
然後到監控中心設置郵件告警
“管理”,“報警媒介類型”,“創建媒體類型”
{ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}

創建報警腳本mail.py
vim /usr/lib/zabbix/alertscripts/mail.py //內容參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,類型選擇“baojing”,註意用戶的權限,如果沒有需要到用戶組去設置權限
設置動作,“配置”,“動作”,“創建動作”,名稱寫“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}
“新的觸發條件”,A維護狀態 非在 維護,B觸發器示警度>=未分類

“操作”,選擇發送的用戶為剛創建的用戶,僅送到選擇“baojing”
切換到“恢復操作”,把信息改成如下
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”
測試告警

操作過程

管理---報警媒介類型---創建媒體類型---名稱 baojing---類型 腳本---腳本名稱 mail.py---腳本參數 添加 三個 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} ---添加

[root@linux-01 ~]# vim /usr/lib/zabbix/alertscripts/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(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]
##定義QQ郵箱的賬號和密碼,你需要修改成你自己的賬號和密碼(請不要把真實的用戶名和密碼放到網上公開,否則你會死的很慘)
sendqqmail(‘[email protected]‘,‘aaaaaaaaaa‘,‘[email protected]‘,to,subject,content)
br/>to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
##定義QQ郵箱的賬號和密碼,你需要修改成你自己的賬號和密碼(請不要把真實的用戶名和密碼放到網上公開,否則你會死的很慘)
sendqqmail(‘[email protected]‘,‘aaaaaaaaaa‘,‘[email protected]‘,to,subject,content)
name == "main":
main()

#####腳本使用說明######
#1. 首先定義好腳本中的郵箱賬號和密碼
#2. 腳本執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"

[root@linux-01 ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py

測試可以收到郵件
[root@linux-01 ~]# python /usr/lib/zabbix/alertscripts/mail.py [email protected] "xxxxxxxx" "121212121212121212"

zabbix web 配置

管理--- 用戶群組---Zabbix administrators 打開--- 權限 --- 選擇 全部選上---讀寫---添加---更新

管理---用戶---創建用戶---別名 mike---用戶名第一部分 mike---群組 添加 Zabbix administrators ---密碼 123456
報警媒介--- 添加---收件人 [email protected] ---添加 --- 權限 所有組 讀寫(權限錯誤,無法發送郵件)---更新

配置---動作---創建動作---名稱 發郵件---新的觸發條件 維護狀態+非在+維護 觸發器示警度+>=+未分類 ---計算方式 A and B ---操作---默認信息 清空再添加以下內容
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

操作---新的---發送到用戶---添加---選mike---僅送到 baojing---操作的條件---添加 事件已確認=非確認 ---添加 ---添加

恢復操作---默認信息 清空再添加以下內容
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
操作---新的---發送到用戶---添加---選mike---僅送到 baojing ---添加 ---添加

19.15 測試告警

配置---主機---aming-02 觸發器---創建觸發器---名稱 系統負載---嚴重性 警告---表達式 添加---監控項---選 Processor load (1 min average per core) ---功能 最新的T值 <1 ---插入---添加

監測中---儀表板---問題位置---有問題提示:動作顯示完成

2018-05-28 Linux學習