添加自定义监控项目、配置邮件警告-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介:

添加自定义监控项目

  • 需求:监控某台wev的80端口连接数,并出图
  • 两步:(1)zabbix监控弄中心创建监控项目;(2)针对该监控项目以图形展现

服务端ip:192.168.159.131
客户端ip:192.168.159.132

到客户端定义脚本

定义脚本:
[root@localhost ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
// 获取80端口并发连接数
// 注意:80后面跟一个空格,保证匹配更精确,如果不加空格,会把8080端口同时过滤出来。

更改脚本权限:
[root@localhost ~]# chmod 755 /usr/local/sbin/estab.sh

配置zabbix-agentd.conf:
[root@localhost ~]# 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服务:
[root@localhost ~]# systemctl restart zabbix-agent

验证脚本是否识别

  • 客户端配置完成后在 服务端使用zabbix自带命令测试该脚本是否生效。

    [root@localhost ~]# 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监控中心配置监控项

  • 创建监控项

【配置】→【主机】→对应主机【监控项】→【创建监控项】
9Erj4U.png

  • 创建图形

【图形】→【创建图形】
9EsyPU.png

  • 创建触发器(有需要的话)
    【触发器】→【创建触发器】
    9EoLhd.png

配置邮件警告

  • 使用163或者QQ邮箱发告警邮件

开启邮箱POP3/IMAP/SMTP服务

  • 首先登录163邮箱,开启POP3/IMAP/SMTP服务:

9Qn0ZF.png

// POP3/SMTP服务和IMAP/SMTP服务器前面打钩
// 首次开启该服务需要进行用户认证,根据提示信息进行认证并设定“客户端授权密码”(用于登录第三方邮件客户端的专用密码),记录该密码。

配置报警媒介类型

  • 邮箱相关服务配置完成后到监控中心进行报警配置。

【管理】→【报警媒介类型】→【创建媒介类型】

9QudSI.png

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGR}

创建报警脚本

  • 去服务端上配置报警脚本

    查看报警脚本保存路径:
    [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf 
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    // maill.py脚本必须要放到这个路径下

    创建mail.Py:
    [root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
    [root@localhost 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 = 'aaaaaa@163.com' // 指定邮箱用户名
    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 目标邮箱 "邮件主题" "邮件内容"

    更改脚本权限:
    [root@localhost alertscripts]# chmod 755 mail.py

    测试是否能正常发送邮件;
    [root@localhost alertscripts]# python mail.py aaaaaa@163.com "test" "test123456" 
    // aaaaa@163.com为刚才设置的发送邮件的邮箱
    // 在此使163邮箱自己给自己发送邮件(保证其不出其他故障)

  • 查看邮箱,收到刚才发送的测试文件

配置用户

  • 在监控中心(web端)创建一个接收告警邮件的“用户”,在创建用户前需要先创建一个“用户组”,在此使用一个已经存在的用户组。

【管理】→【用户】→【创建用户】

创建用户:
9QaTYt.md.png

设置报警媒介:
9Qdnt1.png

查看所有组权限:
9Qd8ne.png

  • 修改权限

【用户群组】→选择指定的组→【权限】
9QdsBQ.md.png

  • 配置动作

【配置】→【动作】→【创建动作】

添加动作:
9Q62lR.md.png

添加操作:
// 操作为客户端发生错误时发送邮件
9QckXq.md.png

添加恢复操作:
// 恢复操作为客户端错误解决之后发送邮寄
9Qcw3d.md.png

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}

测试告警

  • 创建一下触发器,让它故意报警。该触发器只用于测试,完成测试后要删除!

9Q5MOH.md.png

  • 触发器创建成功之后,查看zabiix web服务端仪表盘中最近20个问题那里会提示错误。

  • 同时收邮件的邮箱也收到了报警邮件。

  • 将触发器中< 改成> 之后,会收到服务恢复的邮件。

  • 测试时如果测试失败则先修改触发器,将<改成>。然后再改为<。继续查看是否收到报警邮件。

  • 在zabbix监控中心设置主动模式或被动模式

【配置】→对应主机【监控项】→对应监控项

类型zabbix客户端为被动模式,zabbix客户端(主动式)为主动模式。


本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/2069504


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章