• zabbix的自动发现、自定义添加监控项目、配置邮件告警


    1、zabbix的自动发现
    这里的自动发现,所显示出来的是规则的上自动了现

    然后 可以对其内容进行相关的配制,如时间或周期

    注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需要修改那么,就只有到模板里面进行相关设置。

     

    2、自定义添加监控项目,监控项目都是针对于客户机而言的,一般都是对客户机进行配制

    先在客户机创建一个脚本加入以下内容:mkdir /etc/zabbix/sh; vim /etc/zabbix/sh/estab.sh

    #!/bin/bash
    ##获取80端口并发连接数
    netstat -ant |grep ':80 ' |grep -c ESTABLISHED
    改变权限:chmod 755 /etc/zabbix/sh/estab.sh
    然后再编辑配制文件:vim /etc/zabbix/zabbix_agentd.conf
    改成如下:

    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=47.**.***.***
    ServerActive=47.**.***.***
    Hostname=os72
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    UnsafeUserParameters=1
    UserParameter=nginx.estab.count[*],/etc/zabbix/sh/estab.sh

     

    然后再重启zabbix-agent服务:systemctl restart zabbix-agent.service

    然后,再测试自定义的脚本是否有效:zabbix_get -s **.***.***.*** -p 10050 -k 'nginx.estab.count'

    zabbix_get -s IP -p 10050 -k 'name.sh'

    最后,就到zabbix服务器上进行相关配制 

    然后再新建一个监控项:

     

    添加完成后,再到图形界面,配制一个图形:

    监控项配制好了,还可以创建触发器:

     



    流程:监控项,在客户端自定义要获取某个服务的是一个值,然后给权限,最后在服务端,进行相关的监控项的配制。

     

    3、配置邮件告警

     

     邮箱配制以163邮箱为例进入邮箱进行相关设置:


     

    然后访问监控服务器页面,进行脚本及参数的配制:


     

    然后,就去服务器创建发邮箱的脚本(即客户机出问题了,由服务器发邮件报警):


    然后编辑脚本:vim /etc/zabbix/sh/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_SSL(gserver,465)

    #其它的就用正常的

    smtp = smtplib.SMTP(gserver,25)
    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('mail_name@163.com','password','mail_name@163.com',to,subject,content)
    if __name__ == "__main__":
    main()


    注意阿里云的服务器不支持:smtplib.SMTP(smtp_server, 25),

    若用阿里云的服务器,这里改成:smtp = smtplib.SMTP_SSL(gserver,465)


     

     

    然后再测试:python mail.py to_email_name@qq.com "this is a test"  "use python script  to send e-mail"


     

    再到服务器zabbix页面进行配制创建用户(即出现问题了报警信息发给谁):


     

    最后再配制权限: 这里所配制的权限都是针对于组而言的,所以配制的都是用户组


     

    最后再进行查看:


     

     这时,整个配制有了:
    在服务器页面上设置了报警的媒介(可以有N个) 、然后在服务器上设置了对应的脚本、再然后又在服务器页面上设置了用哪个报警媒介脚本,

    并且设置了用户及权限(即出现问题后通知谁)。 但最后还差的就是一个动作(即一个问题的评判标准,在什么情况下执行脚本发邮件)
    动作配制:

    操作配制:

     

    恢复操作也同样的设置:

    最后就进行测试:
    我们添加一个用户看一下:

    查看:

    再查看邮件:

     最后,对这于这几个操作的个人理解:

    到此zabbix邮件报警配制完成。

    小总结:
    1、先配制报警媒介
    2、根据报警媒体,设置相应的脚本
    3、设置脚本执行后,配制报告给予对象 (通知用户)
    4、设置执行脚本的前提条件(即 要执行该脚本需要在什么条件下)
    5、根据不同的执行条件,进行不同的动作(如 发邮件、重启等等)

  • 相关阅读:
    一些常用的Ant标签
    c++ 精简版 scope_guard
    c++ 精简版 fps限制
    用c++11封装win32界面库
    c++ 精简版 signal
    SQL Server 数据库中的 MD5 和 SHA1加密算法
    不同服务器数据库之间的数据操作
    MSSQL行专列
    JS倒计时代码
    破解网页中限制的《七种武器》
  • 原文地址:https://www.cnblogs.com/dongjieyuan/p/9321391.html
Copyright © 2020-2023  润新知