1. 程式人生 > >Linux監控(添加自定義監控項,配置郵件告警)

Linux監控(添加自定義監控項,配置郵件告警)

map alt 服務端 網上 send rep pad ima 觸發

一、添加自定義監控項

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

步驟:

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

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


第一步(需要到客戶端定義腳本)

[root@zhuji ~]# vim /usr/local/sbin/estab.sh

#!/bin/bash

##獲取80端口並發連接數

netstat -ant |grep ':80 ' |grep -c ESTABLISHED

[root@zhuji ~]# chmod 755 /usr/local/sbin/estab.sh (給權限,因為是zabbix要啟動)


第二步(客戶機上修改配置文件)

284 # UnsafeUserParameters=0 去掉#號,並修改為1,表示開啟使用自定義腳本

297 UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 自定義監控項的key為my.estab.count,後面的{*}裏面寫腳本的參數,如果沒有參數可以省略,腳本為/usr/local/sbin/estab.sh


第三步 (重啟zabbix-agent服務)

[root@congji ~]# systemctl restart zabbix-agent


第四步 (到服務端驗證,執行命令,結果返回為0,表示腳本定義成功)

[root@zhuji ~]# zabbix_get -s 192.168.52.100 -p 10050 -k 'my.estab.count'

0


第五步 (在zabbix監控中心(瀏覽器)配置增加監控項目)

技術分享圖片

名稱自定義

鍵值填寫my.estab.count

歷史數據保留時長 (數據存儲多長時間)

趨勢數據存儲周期


第六步 (圖形-->創建圖形)

技術分享圖片


第七步 (觸發器-->創建觸發器)

技術分享圖片

技術分享圖片


二、配置郵件告警

使用163或者qq郵箱發告警郵箱

因為qq郵箱有時候會收不到告警,所以我們選用163郵箱來做實驗


(一)登錄你的163郵箱,設施開啟P0P3,IMAP,SMTP服務,並記錄授權碼

技術分享圖片

(二)在監控中心設置郵件告警

管理--> 報警沒接類型-->創建媒體類型

(雖然zabbix給了我們email的模板,但是我們用python寫一個腳本,用腳本的形式來實現)

技術分享圖片

腳本的參數分別代表了

{ALERT.SENDTO} 收件人

{ALERT.SUBJECT} 主題

{ALERT.MESSAGE} 內容


(三)創建報警腳本mail.py

首先我們要知道配置文件裏,把自定義腳本放在哪個目錄下。

[root@zhuji ~]# vim /etc/zabbix/zabbix_server.conf //搜索alert

我們發現路徑是

AlertScriptsPath=/usr/lib/zabbix/alertscripts


[root@zhuji ~]# 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('18681980**[email protected]', 'qq密碼',18681980**[email protected]',to,subject,content)

if __name__ == "__main__":

main()

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


驗證腳本是否正確可以嘗試給自己郵箱發信息

[root@zhuji alertscripts]# python mail.py [email protected] nihao nihaorxr

技術分享圖片


三、測試告警

測試告警

為了讓zabbix報警,我們創建一個錯誤,創建一個觸發器

技術分享圖片

技術分享圖片



Linux監控(添加自定義監控項,配置郵件告警)