zoukankan      html  css  js  c++  java
  • zabbix*邮件报警 *用户参数User parameters *定义key值 *Agentd主动模式与被动模式

    邮件报警

    #下载安装邮件报警系统
    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz yum -y install perl-Net-SSLeay perl-IO-Socket-SSL tar xf sendEmail-v1.56.tar.gz -C /usr/local/ cd /usr/local/sendEmail-v1.56/ /bin/cp -ra sendEmail /usr/local/bin/ chmod +x /usr/local/bin/sendEmail

     sendmail命令使用说明

    命令/参数内容解释说明
    /usr/local/bin/sendEmail 命令主程序
    -f from@163.com 发件人邮箱
    -t to@163.com 收件人邮箱
    -s smtp.163.com 发件人邮箱的smtp服务器
    -u "我是邮件主题" 邮件的标题
    -o message-content-type=html 邮件内容的格式,html表示它是html格式
    -o message-charset=utf8 邮件内容编码
    -xu from@163.com 发件人邮箱的用户名
    -xp 123456 发件人邮箱密码(授权码)
    -m "我是邮件内容" 邮件的具体内容
    sendEmail -f yupanlong1@163.com -t yupanlong1@163.com -u "邮件标题" -s smtp.163.com -o message-content-type=html -o message-charset=utf8 -xu yupanlong1@163.com -xp w17908452 -m "邮件内用" 
           发件人邮箱 收件人邮箱 发件人的smtp服务器 邮件内容的格式 邮件美容的编码  发件人的用户名 发件人的邮箱授权码(非密码)
    Aug 28 20:27:39 wk sendEmail[6668]: Email was sent successfully!      #表示发送成功

    如果报错

    nvalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 444.
    
    加入参数
    -o tls=no 
    sendEmail -f yupanlong1@163.com -t yupanlong1@163.com -u "zabbix_server" -s smtp.163.com -o message-content-type=html -o message-charset=utf8 -xu yupanlong1@163.com -xp w17908452 -m "邮件发送成功" -o tls=no

    编写163邮件平台报警脚本

    #!/bin/bash
    # author:Mr.chen
    to=$1
    subject=$2
    body=$3
    from=yupanlong1@163.com
    smtp=smtp.163.com
    passwd=w17908452
    /usr/local/bin/sendEmail -f "$from" -t "$to" -s "$smtp" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu "$from" -xp "$passwd" -m "$body" -o tls=no                                        

    脚本测试

    chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
    chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
    ocal/zabbix/share/zabbix/alertscripts/sendmail.sh yupanlong1@163.com "22" "11111"

    修改zabbix_server.conf配置文件

    vim /usr/local/zabbix/etc/zabbix_server.conf
    #将内容修改成如下所示
    AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
    #重启zabbix_server服务
    /etc/init.d/zabbix_server restart

     

    自定义自动报警的内容

    自定义内容样例

    如果不修改报警的内容格式,看起来太乱了。我们可以按照如下方式修改

    #告警通知格式样例
    #题目
    A故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
    #内容
    告警主机:&nbsp;{HOSTNAME1}<br/>
    告警时间:&nbsp;{EVENT.DATE} {EVENT.TIME}<br/>
    告警等级:&nbsp;{TRIGGER.SEVERITY}<br/>
    告警信息:&nbsp;{TRIGGER.NAME}<br/>
    告警项目:&nbsp;{TRIGGER.KEY1}<br/>
    问题详情:&nbsp;{ITEM.NAME}&nbsp{ITEM.VALUE}<br/>
    当前状态:&nbsp;{TRIGGER.STATUS}&nbsp{ITEM.VALUE1}<br/>
    事件ID:&nbsp;{EVENT.ID}

    用户参数User parameters

    自定义一个key值,对应一条命令,这条命令可以监测一项服务

    用户参数的语法

    UserParameter=<key值>,<命令>
    key值自定义    

    一个简单的例子:

    UserParameter=ping,echo 1
    代理程序将会永远的返回1,当我们在服务器端添加item的key为ping的时候。

    稍微复杂的例子:

    UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin -uroot -p123456 ping | grep -c alive
    当我们在服务器端添加item的key为mysql.ping时候,对于Zabbix代理程序,如果mysql存活,则状态将返回1,否则,状态将返回0。

    让key接受参数

    让key也接受参数的方法使item添加时更具备了灵活性,例如系统预定义key:vm.memory.size[],其中的mode模式就是用户要接受的参数,当我们填写为free时则返回的为内存的剩余大小,如果我们填入的为userd时这返回的是内存已经使用的大小。

    相关语法:

    UserParameter=key[*],echo $1
    #举例:
    UserParameter=ping[*],echo $1
    ping[0]:此时0就是*,也就是传入参数是0,$1也就是0,因此表达式将一直返回‘0’
    ping[aaa]:此时aaa就是*,也就是传入参数是aaa,$1也就是aaa,因此表达式将一直返回‘aaa’

    我们先制作一个获取数据的脚本:

    mkdir -p /server/scripts
    vim /server/scripts/mem_check #!/bin/bash case $1 in free) echo "`free | awk 'NR==3{print $4}'`" ;; used) echo "`free | awk 'NR==3{print $3}'`" ;; *) echo "`free | awk 'NR==2{print $2}'`" ;; esac
    #测试脚本
    chmod +x mem_check chown zabbix.zabbix mem_check sh mem_check.sh 2177604 sh mem_check.sh free 2097148 sh mem_check.sh used 0

    后台自定义一个监控项的键值

    vim /etc/zabbix/zabbix_agentd.d/mem_check.conf 
    UserParameter=mem.check[*],/server/scripts/mem_check $1

    测试自定义键值

    /etc/init.d/zabbix-agent restart
    zabbix_get -s 192.168.50.166 -p 10050 -k "mem.check"
    2177604
    zabbix_get -s 192.168.50.166 -p 10050 -k "mem.check[free]"
    1569912
    zabbix_get -s 192.168.50.166 -p 10050 -k "mem.check[user]"
    2177604

    Agentd主动模式与被动模式

    默认情况下,zabbix server会直接去每个agent上抓取数据,这对于agent来说,是被动模式,也是默认的一种获取数据的方式,但是,当zabbix server监控主机数量过多的时候,由server端去抓取agent上的数据,zabbix server会出现严重的性能问题:

    • 调整Agentd为主动模式

    Agentd的配置调整

    修改zabbix_agentd.conf配置文件,打开如下参数:

    ServerActive=192.168.50.166
    Hostname=192.168.50.166
    StartAgents=1

    ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和zabbix web端添加主机时的主机名对应起来,这样zabbix server端接收到数据才能找到对应关系,这里为了兼容被动模式,没有把StartAgents设为0,如果一开始就是使用主动模式的话建议把StartAgents设为0,关闭被动模式。

    zabbix Server端配置调整

     如果开启了agent端的主动发送数据模式,需要在zabbix Server端修改如下两个参数,保证性能。

    StartPollers=10     #把这个zabbix Server主动收集数据进程减少一些。
    StartTrappers=200   #把这个负责处理Agentd推送过来的数据的进程开大一些。
  • 相关阅读:
    如何证明Application Domain的隔离性
    Programming clojure – Multimethods
    Kafka: a Distributed Messaging System for Log Processing
    Practical Clojure Parallel Programming
    The Joy of Clojure – Clojure philosophy(1)
    Columnar Storage
    Programming clojure – Concurrency
    Practical clojure – Macros and Metaprogramming
    Linkedin Databus
    Leiningen
  • 原文地址:https://www.cnblogs.com/ywrj/p/9553429.html
Copyright © 2011-2022 走看看