700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > zabbix添加自定义监控项目 配置邮件告警

zabbix添加自定义监控项目 配置邮件告警

时间:2022-10-07 18:22:35

相关推荐

zabbix添加自定义监控项目 配置邮件告警

独角兽企业重金招聘Python工程师标准>>>

添加自定义监控项目

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

第一步,客户端定义监控脚本,重启客户端

[root@centos0 ~]# vim /usr/local/sbin/estab_conn_count.sh[root@centos0 ~]# cat /usr/local/sbin/estab_conn_count.sh#!/bin/bash# 获取80端口并发链接数 netstat -ant | grep ':80' | grep -c ESTABLISHED[root@centos0 ~]# chmod 755 /usr/local/sbin/estab_conn_count.sh# 增加# UnsafeUserParameters=1 # 表示使用自定义脚本# UserParameter=my.estab.count[*],/usr/local/sbin/estab_conn_count.sh # 自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数(多个时逗号分开),如果没有参数则可以省略,脚本为/usr/local/sbin/estab_conn_count.sh[root@centos0 ~]# vim /etc/zabbix/zabbix_agentd.conf [root@centos0 ~]# systemctl restart zabbix-agent # 重启客户端zabbix-agent服务[root@test-a ~]# zabbix_get -s 192.168.77.129 -p 10050 -k 'my.estab.count' # 服务器上验证客户端脚本正确性,有返回正确结果,当前连接数为00

第二步,监控中心创建监控项目

在zabbix监控中心配置增加监控项目,键值写my.estab.count,添加该项目后,到“监测中” -> “最新数据”查看刚添加的项目是否有数据出现

有了数据就可以添加图形了 “配置” -> “主机” -> “图形” -> “创建图形”

配置邮件告警

先给自己要用来测试发邮件的邮箱开启POP3/SMTP服务

到监控中心设置邮件告警, “管理”->“报警媒介类型”->“创建媒体类型”

创建发送邮件的脚本

[root@test-a ~]# vim /etc/zabbix/zabbix_server.conf #服务端配置文件中 搜索AlertScriptsPath查看脚本路径"AlertScriptsPath=/usr/lib/zabbix/alertscripts"[root@test-a ~]# cd /usr/lib/zabbix/alertscripts[root@test-a alertscripts]# vim mail.py [root@test-a alertscripts]# cat mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartfrom subprocess import *def sendqqmail(username,password,mailfrom,mailto,subject,content):gserver = ''gport = 25try:# msg = MIMEText(unicode(content).encode('utf-8')) //如果发送的邮件有乱码,可以尝试把这行改成如下:msg = MIMEText(content,'plan','utf-8') msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = 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" % errdef main():to=sys.argv[1]subject=sys.argv[2]content=sys.argv[3]##定义QQ邮箱的账号和密码(密码就是打开开启POP3/SMTP服务的授权码)sendqqmail('1234567@','aaaaaaaaaa','1234567@',to,subject,content)if __name__ == "__main__":main()#####脚本使用说明#######1. 首先定义好脚本中的邮箱账号和密码#2. 脚本测试执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"[root@test-a alertscripts]# chmod 755 mail.py # 更改权限

创建一个接受告警邮件的用户,“管理” -> “用户” -> “创建用户” -> “报警媒介”-> 类型选择“报警”,注意用户的权限,如果没有需要到用户组去设置权限。

设置动作,“配置” -> “动作” -> “创建动作”,名称写“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触发器示警度>=未分类

“操作”,选择发送的用户为刚创建的用户,仅送到选择“报警”,切换到“恢复操作”,把信息改成如下

HOST:{HOST.NAME} {HOST.IP}TIME:{EVENT.DATE} {EVENT.TIME} LEVEL:{TRIGGER.SEVERITY} NAME:{TRIGGER.NAME}messages:{ITEM.NAME}:{ITEM.VALUE}ID:{EVENT.ID}

点击“新的”,“操作”,选择发送的用户为刚创建的用户,仅送到选择“报警”

测试,收到的报警邮件内容

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。