Linux监控(添加自定义监控项,配置邮件告警)

1、添加自定义监控项python

需求:监控某台web的80端口链接数,并出图。web

步骤:vim

1):zabbix监控中心建立监控项目浏览器

2):针对该监控项目以图形展示bash


第一步(须要到客户端定义脚本)并发

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

#!/bin/bash测试

##获取80端口并发链接数spa

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

[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监控中心(浏览器)配置增长监控项目)

1.png

名称自定义

键值填写my.estab.count

历史数据保留时长 (数据存储多长时间)

趋势数据存储周期 


第六步 (图形-->建立图形)

2.png


第七步 (触发器-->建立触发器)

2.png

1.png


2、配置邮件告警

使用163或者qq邮箱发告警邮箱

由于qq邮箱有时候会收不到告警,因此咱们选用163邮箱来作实验


(一)登陆你的163邮箱,设施开启P0P3,IMAP,SMTP服务,并记录受权码

1.png

(二)在监控中心设置邮件告警

管理--> 报警没接类型-->建立媒体类型

(虽然zabbix给了咱们email的模板,可是咱们用python写一个脚本,用脚本的形式来实现)

2.png

脚本的参数分别表明了

{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

3.png


3、测试告警

测试告警

为了让zabbix报警,咱们建立一个错误,建立一个触发器

10.png

9.png

相关文章
相关标签/搜索