19.12 添加自定义监控项目
19.13/19.14 配置邮件告警
19.15 测试告警
19.16 不发邮件的问题处理



19.12 添加自定义监控项目

分为两个步骤

1.zabbix监控中心创建监控项目

vim /usr/local/sbin/estab.sh

内容:


#!/bin/bash

##获取80端口并发连接数

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

2018-7-10_第1张图片

2.针对该监控项目以图形展现


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

image.png


更改权限为755

 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

2018-7-10_第2张图片


重启服务

systemctl restart zabbix-agent


 到服务端验证,执行命令

 zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count‘

 然后在zabbix监控中心(浏览器)配置增加监控项目

 键值写my.estab.count

 添加该项目后,到“监测中”>“最新数据”查看刚添加的项目是否有数据出现

 有了数据就可以添加图形了

 “配置”>“主机” >“图形” >“创建图形”




19.13/19.14 配置邮件告警

邮箱发告警邮件

登录邮箱,设置开启POP3、IMAP、SMTP服务

 开启并记录授权码

 然后到监控中心设置邮件告警

 “管理”,“报警媒介类型”,“创建媒体类型”

 {ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}


2018-7-10_第3张图片


创建报警脚本mail.py

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.qq.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)


if __name__ == "__main__":

    main()

    

    

#####脚本使用说明######

#1. 首先定义好脚本中的邮箱账号和密码

#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"


更改文件权限为755


创建一个接受告警邮件的用户,“管理”,“用户”,“创建用户”,“报警媒介”,类型选择“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”






19.15 测试告警

2018-7-10_第4张图片

操作触发器


创建自定义触发器

2018-7-10_第5张图片

选择一个监控项目precessor load,N=1,当他小于1时候告警


2018-7-10_第6张图片

失败 没有正常发送邮件,脚本无权限或者条件定义不对,恢复反复更改测试触发器。





19.16 不发邮件的问题处理

尝试恢复快照,重新装一遍zabbix,可能是zabbix服务混乱,重新搭建。