zoukankan      html  css  js  c++  java
  • zabbix_sender用法实例

    环境centos6.8

    zabbix版本3.2.4

    需求:

    要远程监控一台服务器A,但只能通过远程服务器连接本地服务器B,但B不能主动连A(因为A没有固定公网ip)

    使用了zabbix_agent的active模式,但这种模式不能使用ping方式确定agent是否存活,使用触发规则nodata测试

    A服务器网络不稳定,很容易误触发规则(若有大神评论区教教我,是不是我哪里设置错了)

    最后 

    究其原因,主要是使用触发器失败,改用了这种方法,当做心跳线使用

    zabbix官方文档:https://www.zabbix.com/documentation/3.2/manual/config/triggers/expression

    实施例8

    最近3分钟内没有心跳

    使用函数nodata():

    {zabbix.zabbix.com:tick.nodata(3m)}=1

    'tick'必须有“Zabbix trapper”类型。为了使此触发器工作,必须定义项目'tick'。主机应使用zabbix_sender定期发送此参数的数据。如果在180秒内没有收到数据,则触发值成为问题。


    一、zabbix-sender介绍

    zabbix_sender是一个命令行工具,可以用来发送Zabbix服务器处理性能数据。该工具通常用于长时间运行的用户脚本,用于定期发送可用性和性能数据。

    zabbix获取key值有超时时间,如果自定义的key脚本一般需要执行很长时间,这根本没法去做监控,那怎么办呢?

    使用zabbix监控类型zabbix trapper,需要配合zabbix_sender给它传递数据。关于trapper的用法,我们来弄个实例。

    执行超长时间脚本,如:脚本去几十台服务器拉去数据,每个日志都上G,然后日志整合在一起,统计出返回值。这种脚本比如超时,所以我们必须改成让客户端提交数据的方式。

    这里是zabbix-sender设计的初衷,被我这样用也是无奈!!

    二、zabbix_sender命令详解

    [root@localhost]# ./zabbix_sender 
    usage: zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -T -i <file> -r} [-c <file>]
    参数说明:
      -c --config <file>           配置文件绝对路径    
      -z --zabbix-server <server>     zabbix server的IP地址    
      -p --port <server port>       zabbix server端口.默认10051    
      -s --host <hostname>         主机名,zabbix里面配置的主机名(不是服务器的hostname),不能使用ip地址    
      -I --source-address <IP address> 源IP    
      -k --key <key>             监控项的key    
      -o --value <key value>        key值    
      -i --input-file <input file>   从文件里面读取hostname、key、value 一行为一条数据,使用空格作为分隔符,如果主机名带空格,那么请使用双引号包起来    
      -T --with-timestamps         一行一条数据,空格作为分隔符: <hostname> <key> <timestamp> <value>,配合 --input-file option,timestamp为unix时间戳    
      -r --real-time            将数据实时提交给服务器    
      -v --verbose              详细模式, -vv 更详细

     三、zabbix_sender应用实例

    zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix,这个通道便是trapper.

    使用trapper的步骤如下:

    • 在zabbix中配置trapper监控项
    • 传递数据到zabbix中

    1、进入zabbix web界面选择一台主机(或模板)--items--Create item 定义一个key用来接受客户端的sender,如下图:

     

     (1)我采用的是模板添加,方便以后统一添加

     (2)也可以采用hosts添加items

    这里的几幅图看不清楚,博客园貌似图片有限制加上小图

    ###############################

    之前百度了许多关于sender的内容,但都是2.2或2.4版本,比较老,3.2.4还是有些不一样的

    到这里创建items成功

    (这里的key是自定义的,在使用sender时需要用到,大概是秘钥配对的感觉,不知道对不对)

    2、回到客户端使用以下命令sender数据

    zabbix_sender -s "126" -z 192.168.1.104 -p 10050 -k "trap" -o 1

     这里

     

    • -s后面跟的参数是agent端的hostname
    • -z后面跟的参数是server端的ip
    • -p后面跟的参数是server端的端口(不写默认为10051)
    • -k就是刚刚建items时自定义的key值-o是你想发送的数据(要是选择的txt接收模式,也可以为字符)

     

    [root@localhost.localdomain 五 4月 28 14:52:32 ~]# zabbix_sender -s "126" -z 192.168.1.104 -k "trap" -o 1
    info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000050"
    sent: 1; skipped: 0; total: 1

     

     

    这里会提示是否正确发送,若failed是1,表示有一个失败,即发送消息失败,这里s跟k参数最好都加上引号,之前就是这个原因一直失败

    3、再回到zabbix web端选择前面的主机--点击Latest data 如下图:

     

    这时看见在这里是没有数据的,这里就跟2.4版本不一样了

     

    我只用数字1表示有信号

    这里就告一段落了

     

    4、添加触发器

     

    这里的触发规则,具体的我也不会,我只是套用了模板,使用trap这个key键,语句是nodata,然后再设置对应的参数,这里具体的要看官方文档了

     

     

     

     

     

     

    到这里就设置好了server端

     

    5、客户端添加脚本

    再到agent端

    zabbix_sender -s "126" -z 192.168.1.104 -k "trap" -o 1

    添加执行权限

    chmod +x zabbix_sender.sh

    添加定时计划

    * * * * * /usr/local/src/zabbix_sender.sh

    然后就能运行了

    这样就算一个完整的报警了,虽然很烂

  • 相关阅读:
    CentOs7安装JDK/Tomcat/Git/Gradle
    eclipse更改web项目的WebContent目录
    (06)SpringCloud实战之Hystrix断路器
    (06)Eclipse中引入maven模块jar包显示成without test code解决方法
    (05)SpringCloud实战之Feign负载均衡
    (04)SpringCloud实战之Ribbon负载均衡
    (03)SpringCloud实战之Eureka服务注册与发现
    (02)SpringCloud实战之Rest微服务构建案例工程模块
    (01)框架整合之SpringMVC
    (02)Maven子工程继承父工程
  • 原文地址:https://www.cnblogs.com/irockcode/p/6781834.html
Copyright © 2011-2022 走看看