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。
# 安装zabbix_sender
[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配置模板,添加应用集,这些自己来搞定,这里主要来展示一下后面的监控项应该怎么配置,这里的监控项配置如下:
注:如果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指令
[root@agent ~]# zabbix_sender -z 192.168.20.8 -s client02 -k index -o 10
# -z:指定zabbix server的地址
# -s:指定web界面添加的主机名
# -k:指定key名
# -o:指定key值
在server端的web界面可以看到如下信息:
其中-o也可以引用命令:
# 下面指令是将本机网站首页的状态码发送到了server端的client02主机上
[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}')
# 既然可以引用命令,那么肯定可以引用变量(生产上的脚本,还是建议按照以下方法来写)
# 先将要发送的数据定义为变量
[root@kafka03 ~]# RS=`curl -I -s 127.0.0.1/indexa.html | awk '$1=="HTTP/1.1" {print $2}'`
# 然后在发送时引用变量的值
[root@kafka03 ~]# zabbix_sender -z 192.168.20.8 -s client02 -k index -o ${RS}
至于zabbix_sender指令如何通过写脚本把数据发送到zabbix,这里就不演示了,大体就是,编写脚本,在脚本中定义要收集的数据并发送到server端,然后做计划任务,定时向server端发送数据。