添加自定义监控项目配置邮件警告
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加自定义监控项目配置邮件警告相关的知识,希望对你有一定的参考价值。
添加自定义监控项目
- 需求:监控某台wev的80端口连接数,并出图
- 两步:(1)zabbix监控弄中心创建监控项目;(2)针对该监控项目以图形展现
服务端ip:192.168.159.131
客户端ip:192.168.159.132
到客户端定义脚本
定义脚本:
[[email protected] ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED
// 获取80端口并发连接数
// 注意:80后面跟一个空格,保证匹配更精确,如果不加空格,会把8080端口同时过滤出来。
更改脚本权限:
[[email protected] ~]# chmod 755 /usr/local/sbin/estab.sh
配置zabbix-agentd.conf:
[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
// 将0改为1
// 相当于开关,1为使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
// 定义脚本路径
// 自定义监控项的key(监控web端“键值”)为my.estab.count,后面的[*]里面写的是脚本参数
// 如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
重启zabbix-agent服务:
[[email protected] ~]# systemctl restart zabbix-agent
验证脚本是否识别
-
客户端配置完成后在 服务端使用zabbix自带命令测试该脚本是否生效。
[[email protected] ~]# zabbix_get -s 192.168.159.132 -p 10050 -k ‘my.estab.count‘
0
// -s后跟的是客户端ip
// -k键值
// 等到一个数字说明脚本成功 - 其实写自定义脚本思路很简单,就是在客户端上写一个脚本,这个脚本直接执行获得一个数字,然后用命令zabbix_get -s 192.168.159.132 -p 10050 -k ‘my.estab.count‘来得到结果。
到web监控中心配置监控项
- 创建监控项
【配置】→【主机】→对应主机【监控项】→【创建监控项】
- 创建图形
【图形】→【创建图形】
- 创建触发器(有需要的话)
【触发器】→【创建触发器】
配置邮件警告
- 使用163或者QQ邮箱发告警邮件
开启邮箱POP3/IMAP/SMTP服务
- 首先登录163邮箱,开启POP3/IMAP/SMTP服务:
// POP3/SMTP服务和IMAP/SMTP服务器前面打钩
// 首次开启该服务需要进行用户认证,根据提示信息进行认证并设定“客户端授权密码”(用于登录第三方邮件客户端的专用密码),记录该密码。
配置报警媒介类型
- 邮箱相关服务配置完成后到监控中心进行报警配置。
【管理】→【报警媒介类型】→【创建媒介类型】
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGR}
创建报警脚本
-
去服务端上配置报警脚本
查看报警脚本保存路径:
[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
// maill.py脚本必须要放到这个路径下创建mail.Py:
[[email protected] ~]# cd /usr/lib/zabbix/alertscripts/
[[email protected] alertscripts]# vim mail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = ‘smtp.163.com‘ // 指定所使用的邮箱类型
mail_user = ‘[email protected]‘ // 指定邮箱用户名
mail_pass = ‘111111111‘ // 指定邮箱密码
mail_postfix = ‘163.com‘
def send_mail(to_list,subject,content):
me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content, ‘plain‘, ‘utf-8‘)
msg[‘Subject‘] = subject
msg[‘From‘] = me
msg[‘to‘] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if name == "main":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"更改脚本权限:
[[email protected] alertscripts]# chmod 755 mail.py测试是否能正常发送邮件;
[[email protected] alertscripts]# python mail.py [email protected] "test" "test123456"
// [email protected]为刚才设置的发送邮件的邮箱
// 在此使163邮箱自己给自己发送邮件(保证其不出其他故障) - 查看邮箱,收到刚才发送的测试文件
配置用户
- 在监控中心(web端)创建一个接收告警邮件的“用户”,在创建用户前需要先创建一个“用户组”,在此使用一个已经存在的用户组。
【管理】→【用户】→【创建用户】
设置报警媒介:
查看所有组权限:
- 修改权限
- 配置动作
【配置】→【动作】→【创建动作】
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
ID:{EVENT.ID}
测试告警
- 创建一下触发器,让它故意报警。该触发器只用于测试,完成测试后要删除!
-
触发器创建成功之后,查看zabiix web服务端仪表盘中最近20个问题那里会提示错误。
-
同时收邮件的邮箱也收到了报警邮件。
-
将触发器中< 改成> 之后,会收到服务恢复的邮件。
-
测试时如果测试失败则先修改触发器,将<改成>。然后再改为<。继续查看是否收到报警邮件。
- 在zabbix监控中心设置主动模式或被动模式
【配置】→对应主机【监控项】→对应监控项
类型zabbix客户端为被动模式,zabbix客户端(主动式)为主动模式。
以上是关于添加自定义监控项目配置邮件警告的主要内容,如果未能解决你的问题,请参考以下文章
六十添加自定义监控项目配置邮件告警测试告警不发邮件的问题处理
添加自定义监控项目,配置邮件告警,测试告警,不发送邮件的问题处理