添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理

目录

一、添加自定义监控项目
二、配置邮件告警
三、测试告警
四、不发邮件的问题处理

一、添加自定义监控项目

Zabbix可以很方便地添加自定义监控项目,它虽然提供了丰富的模板,但依然不能满足各种各样的特殊个性化需求。

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

  • 解决方案:
     创建自定义监控项
     针对该监控项设置成图形

  1. 在zabbix客户端上编辑自定义脚本
[root@minglinux-02 ~] vim /usr/local/sbin/estab.sh 
#写入以下内容
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
#然后要修改该脚本的权限
[root@minglinux-02 ~] chmod 755 /usr/local/sbin/estab.sh
  1. 编辑zabbix客户端上配置文件
[root@minglinux-02 ~] vim /etc/zabbix/zabbix_agentd.conf
#修改以下内容
···
UnsafeUserParameters=1 #值为1启用zabbix自定义脚本,为0则关闭
···
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 
#定义自定义脚本名称及路径
#my.estab.count[*]是自定义监控项的键值,后面的[*]里面写脚本的参数,
[*]表示该脚本没有参数,若有参数要将参数写入[]中并用逗号分割
···
#重启zabbix-agent服务 
[root@minglinux-02 ~] systemctl restart zabbix-agent
  1. 到zabbix服务端验证脚本配置是否正确
[root@minglinux-01 ~] zabbix_get -s 192.168.162.132 -p 10050 -k 'my.estab.count'
0
#在服务端执行zabbix_get命令
#-s后跟客户端IP
#-p指定端口,不加则默认使用10050
#-k跟监控项的键值
#报错网络通畅,无防火墙规则和关闭SELINUX
#由于客户端上并没有任何80端口的访问,所以结果为0。
#这里能正常获取到客户端上的数据说明配置没问题。

#若将客户端自定义监控脚本权限改为700(用户无执行权限)
[root@minglinux-02 ~] chmod 700 /usr/local/sbin/estab.sh
#此时zabbix用户无执行权限
[root@minglinux-01 ~] zabbix_get -s 192.168.162.132 -p 10050 -k 'my.estab.count'
sh: /usr/local/sbin/estab.sh: 权限不够
  1. 到zabbix监控中心(浏览器)配置增加监控项目

 创建监控项
依次点击“配置”→“主机”,然后点击minglinux-02主机的“监控项”,再点“创建监控项”


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第1张图片
image.png

 填写监控项相关信息
名称自定义
键值要和客户端配置文件中定义的相同
其余项保持默认点击添加即可


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第2张图片
image.png
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第3张图片
image.png

 为该监控项添加图形
依次点击“配置”→“主机”,再点击minglinux-02的“图形”,再点击“创建图形”按钮


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第4张图片
image.png

 填写图形项相关信息
定义图形名称
添加刚才创建的“并发连接数”监控项
其他保持默认点击添加即可


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第5张图片
image.png

 图形预览
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第6张图片
image.png

 为自定义监控项创建触发器
当并发连接数超过200时告警

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第7张图片
image.png
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第8张图片
image.png
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第9张图片
image.png

二、配置邮件告警

 可以使用163或者QQ邮箱发告警邮件,这里使用QQ邮箱
 登录QQ邮箱,设置开启POP3、IMAP、SMTP服务
 开启并记录授权码


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第10张图片
image.png
  • 到监控中心设置邮件告警
     依次点击“管理”→“报警媒介类型”,在右上角点击“创建媒体类型”


    添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第11张图片
    image.png

     填写相关内容
    自定义名称
    类型选脚本
    定义3个脚本参数

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第12张图片
image.png
  • 编写发送报警邮件的Python脚本
#通过zabbix_server的配置文件确定告警邮件的脚本l存放路径
[root@minglinux-01 ~] grep 'AlertScriptsPath=' /etc/zabbix/zabbix_server.conf# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@minglinux-01 ~] cd /usr/lib/zabbix/alertscripts
[root@minglinux-01 /usr/lib/zabbix/alertscripts] ls
[root@minglinux-01 /usr/lib/zabbix/alertscripts] vim 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 = MIMEText(content,'plan','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 目标邮箱 "邮件主题" "邮件内容"

#给予用户脚本的可执行权限
[root@minglinux-01 /usr/lib/zabbix/alertscripts] chmod 755 mail.py
#测试脚本发邮件
[root@minglinux-01 /usr/lib/zabbix/alertscripts] python mail.py [email protected] "test" "hello"
image.png
  • 创建一个接受告警邮件的用户
     依次点击“管理“→“用户”,再点击右上角的“创建用户”蓝色按钮进入创建用户的页面,


    添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第13张图片
    image.png

 填写用户基本信息、群组和密码


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第14张图片
image.png

 添加报警媒介

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第15张图片
image.png
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第16张图片
image.png

 用户没有权限,需要到用户组去设置权限


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第17张图片
image.png

 修改用户所在群组Zabbix administrators的权限


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第18张图片
image.png

 给所有群组增加读写读写权限,注意要记得点击添加和更新


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第19张图片
image.png

 再查看用户权限


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第20张图片
image.png
  • 配置动作
    定义触发器被触发后执行的动作

 依次点击“配置”→“动作”→右上角的“创建动作”


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第21张图片
image.png

 定义名称,设置触发条件


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第22张图片
image.png

 切换到操作界面定义操作
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第23张图片
image.png

 切换到恢复操作界面定义恢复操作
故障恢复时执行的操作


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第24张图片
image.png

HOST:{HOST.NAME} {HOST.IP} 定义的主机名及主机ip
TIME:{EVENT.DATE} {EVENT.TIME} 发生的日期和时间
LEVEL:{TRIGGER.SEVERITY} 示警度
NAME:{TRIGGER.NAME} 即定义的key,指出发出告警的触发器
messages:{ITEM.NAME}:{ITEM.VALUE} 发出告警时显示的状态码
ID:{EVENT.ID} 事件ID

 配置完成


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第25张图片
image.png

三、测试告警

 创建一个自定义触发器来测试

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第26张图片
image.png

 被监控主机系统负载小于1就告警


添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第27张图片
image.png
添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第28张图片
image.png

 被监控主机系统负载肯定小于1,所以系统会告警并发送告警邮件

[root@minglinux-02 ~] w
 16:41:50 up 1 day, 10:49,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.162.1    12:54    6.00s  0.01s  0.00s w
image.png

 将触发器触发规则修改为当系统负载大于1告警,本身系统负载是小于1的,所以修改后会触发发送恢复邮件操作

添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理_第29张图片
image.png
image.png

你可能感兴趣的:(添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理)