博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-4-16 Linux学习笔记
阅读量:7206 次
发布时间:2019-06-29

本文共 3720 字,大约阅读时间需要 12 分钟。

19.12 添加自定义监控项目

  • 思路:

    客户端设置脚本获取数据->服务端用zabbix_get验证客户端收集的监控数据->zabbix管理界面配置监控项->zabbix管理界面配置成图形->zabbix管理界面配置告警(如果需要的话)

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

  • 实现分为两步:
  • (1) zabbix监控中心创建监控项目
  • 对于第一步, 需要到客户端定义脚本:
    vim /usr/local/sbin/estab.sh
  • 增加内容如下:
    ------------------------------------------------------------------
    #!/bin/bash
    #获取80端口并发连接数
    netstat -ant |grep ':80 ' |grep -c ESTABLISHED
    ------------------------------------------------------------------
  • 让用户具有执行脚本的权限

    chmod 755 /usr/local/sbin/estab.sh

  • 客户端上编辑配置文件
    vim /etc/zabbix/zabbix_agentd.conf//增加
    UnsafeUserParameters=1 //表示使用自定义脚本
    UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
  • 备注: 以上1句自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
    2018-4-16 Linux学习笔记
  • 重启zabbix-agent服务

    systemctl restart zabbix-agent

  • (2) 针对该监控项目以图形展现
  • 首先到服务端验证,执行命令:
    zabbix_get -s 192.168.168.130 -p 10050 -k 'my.estab.count'
    2018-4-16 Linux学习笔记
  • 然后在zabbix监控中心(浏览器)配置增加监控项目:
    配置->主机->(centos_02)监控项->创建监控项
    键值写my.estab.countP2
    2018-4-16 Linux学习笔记
  • 添加该项目后,到“监测中”->“最新数据”查看刚添加的项目是否有数据出现.有了数据就可以添加图形了:
    配置->主机->(centos_02)图形->创建图形
    2018-4-16 Linux学习笔记
  • 创建触发器以告警:
    配置->主机->(centos_02)触发器->创建触发器

2018-4-16 Linux学习笔记

设置当连接数>200时告警
2018-4-16 Linux学习笔记

19.13/19.14 配置邮件告警

  • 可使用163或者QQ邮箱发告警邮件.
  • 首先登录你的163邮箱,设置开启POP3、IMAP、SMTP服务(设置->POP3/SMTP/IMAP), 开启并记录授权码.
  • 然后到zabbix监控中心设置邮件告警管理->报警媒介类型->创建媒体类型

    {ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE}
    2018-4-16 Linux学习笔记

  • 在服务端创建报警脚本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.163.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]
    ##定义邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否
    则你会死的很惨)
    sendqqmail('1234567@163.com','password','1234567@163.com',to,subject,content)
    if name == "main":
    main()
    ------------------------------------------------------------------------------------------------------------------------------------
  • 备注:以上内容可到如下链接获取:

  • 给予执行脚本权限:

    chmod 755 /usr/lib/zabbix/alertscripts/mail.py

  • 发送邮件脚本测试:

    python mail.py shenzhenhxl@163.com "test_warning" "warning_message"
    2018-4-16 Linux学习笔记

  • 创建一个接受告警邮件的用户
  • 管理->用户->创建用户
  • 报警媒介页面,类型选择“baojing”
    2018-4-16 Linux学习笔记
  • 权限页面,权限为读写
    2018-4-16 Linux学习笔记
  • 注意: 以上用户的权限,如果没有需要到管理->用户群组去设置权限
    2018-4-16 Linux学习笔记
  • 设置动作
  • 配置->动作->创建动作,名称写“sendmail”(或自定义),“新的触发条件”为以下两个:
    A维护状态 非在 维护
    B触发器示警度>=未分类
    2018-4-16 Linux学习笔记
  • 切换到“操作”页面,内容如下:
    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”

    2018-4-16 Linux学习笔记

  • 切换到“恢复操作”,把默认信息改成如下:
    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”
    2018-4-16 Linux学习笔记

19.15 测试告警

  • (1)模拟问题
    zabbix监控中心->配置->主机->(centos_02)触发器->创建触发器
    创建触发器"系统负载",设置"表达式"为
    {centos_02:system.cpu.load[percpu,avg1].last()}<1
    2018-4-16 Linux学习笔记
  • (2)查看监控发现的问题,并到接收邮箱中检验是否有受到发送的告警邮件.
    zabbix监控中心->监测中->仪表板->最近20个问题
    2018-4-16 Linux学习笔记

    19.16 不发邮件的问题处理

  • 发生该问题时的排查思路:

    (1)确保发送邮件脚本能发邮件
    (2)确保zabbix监控中心->管理->报警媒介类型 设置正确
    (3)确保zabbix监控中心->管理->用户(名字,报警媒介,权限) 设置正确
    (4)确保zabbix监控中心->配置->动作 设置正确

  • 备注:
    实验时反复检查确保这几步没问题,但还是没能收到邮件.老师也遇到同样的问题,最后据说是恢复快照重做一遍就能收到了.

转载于:https://blog.51cto.com/13517946/2103978

你可能感兴趣的文章
Fiddler 教程(转)
查看>>
[十二省联考2019] 异或粽子
查看>>
CF360B Levko and Array (二分查找+DP)
查看>>
RQNOJ659 计算系数
查看>>
HTML实体符号查询
查看>>
【转】 ASP.NET网站路径中~(波浪线)解释
查看>>
oracle根据Date字段查询区间数据(转)
查看>>
[C语言] 数据结构-算法效率的度量方法-事前分析估算方法
查看>>
js_实用
查看>>
基础权限管理
查看>>
navicat for mysql快捷键
查看>>
PHP中设置时区方法小结
查看>>
netty源码分析
查看>>
linux-2.6内核驱动学习——jz2440之输入子系统
查看>>
Sizeof与Strlen的区别与联系
查看>>
Hadoop- NameNode和Secondary NameNode元数据管理机制
查看>>
python中socket模块详解
查看>>
Android 四大组件 (三) BroadcastReceiver 介绍
查看>>
一个友盟BUG的思考和分析:Invalid update
查看>>
读取对象
查看>>