Linux监控(添加自定义监控项,配置邮件告警)
一、添加自定義監控項
需求:監控某臺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**8@163.com', 'qq密碼',18681980**8@163.com',to,subject,content)
if __name__ == "__main__":
? ? main()
[root@zhuji ~]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py
驗證腳本是否正確可以嘗試給自己郵箱發信息
[root@zhuji alertscripts]# python mail.py 18681980408@163.com nihao ? nihaorxr
 三、測試告警
測試告警
為了讓zabbix報警,我們創建一個錯誤,創建一個觸發器
本文轉自 小新銳 51CTO博客,原文鏈接:http://blog.51cto.com/13407306/2069380,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Linux监控(添加自定义监控项,配置邮件告警)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python监控单台多实例数据库服务器的
- 下一篇: 系统中图片上传设计方案
