title: 配置agent采集数据主动发送到zabbix_server端 #标题tags: zabbix_sender,2020-04-06 #标签
date: 2020-04-06
categories: zabbix # 分类

在公司业务环境中,为了尽可能的减轻zabbix server端服务器的压力,一般会选择agent采集数据后发送到server端,而不是等着server端来收集数据。这就用到了zabbix_sender这个指令

agent端安装

只需安装zabbix_sender即可,无需安装zabbix_agent。

  1. # 安装zabbix_sender
  2. [root@agent ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.2/rhel/7/x86_64/zabbix-sender-3.2.1-1.el7.x86_64.rpm

server的web界面配置监控项

自行在zabix配置模板,添加应用集,这些自己来搞定,这里主要来展示一下后面的监控项应该怎么配置,这里的监控项配置如下:

配置agent采集数据主动发送到zabbix_server端 - 图1

注:如果zabbix是英文版,则类型是:zabbix trapper。

这只是定义了一个监控项,如果需要定义多个监控项,添加即可。

zabbix_sender指令详解

命令选项 作用
-c 指定配置文件绝对路径
-z 指定zabbix server的IP地址
-p 指定zabbix server的端口,默认为10051
-s 主机名,zabbix server的web页面配置的主机名(不是服务器的hostname),不能使用ip地址
-I 源IP
-k 监控项的key
-o key值
-i 从文件里面读取hostname、key、value 一行为一条数据,使用空格作为分隔符,如果主机名带空格,那么请使用双引号包起来
-T 一行一条数据,空格作为分隔符: ,配合 —input-file option,timestamp为unix时间戳
-r 将数据实时提交给服务器
-v 详细模式, -vv 更详细

命令行使用zabbix_sender指令

  1. [root@agent ~]# zabbix_sender -z 192.168.20.8 -s client02 -k index -o 10
  2. # -z:指定zabbix server的地址
  3. # -s:指定web界面添加的主机名
  4. # -k:指定key名
  5. # -o:指定key值

在server端的web界面可以看到如下信息:
配置agent采集数据主动发送到zabbix_server端 - 图2

其中-o也可以引用命令:

  1. # 下面指令是将本机网站首页的状态码发送到了server端的client02主机上
  2. [root@kafka03 ~]# zabbix_sender -z 192.168.20.8 -s client02 -k index -o $(curl -I -s 127.0.0.1/index.html | awk '$1=="HTTP/1.1" {print $2}')
  3. # 既然可以引用命令,那么肯定可以引用变量(生产上的脚本,还是建议按照以下方法来写)
  4. # 先将要发送的数据定义为变量
  5. [root@kafka03 ~]# RS=`curl -I -s 127.0.0.1/indexa.html | awk '$1=="HTTP/1.1" {print $2}'`
  6. # 然后在发送时引用变量的值
  7. [root@kafka03 ~]# zabbix_sender -z 192.168.20.8 -s client02 -k index -o ${RS}

至于zabbix_sender指令如何通过写脚本把数据发送到zabbix,这里就不演示了,大体就是,编写脚本,在脚本中定义要收集的数据并发送到server端,然后做计划任务,定时向server端发送数据。