Zabbix采集器(捕获器):这种获取数据的方式是agent端通过zabbix_sender 命令发送数据,一般情况下,我们在创建监控项的时候,我们选择的类型是“zabbix客户端”是每隔多长时间(主动或被动的)发送数据给server,当脚本执行时间过长的时候,在选用”zabbix 客户端”这种类型的监控项,会影响server的性能,所以当脚本执行时间过长时,我们选择“zabbix采集器”的方式,这种方式是不管脚本执行多长时间,一直等到脚本执行完之后,在通过“zabbix_sender”命令给server发送信息。不会影响server的性能。

捕获器(采集器)。是在你创建监控项的时候,选择监控项的类型:选择zabbix采集器。

1、创建主机

创建主机:填写主机名,和agent地址,你要看zabbix_sender将结果发送到哪台机器上了,就写那台机器的地址。
zabbix的trapper(补获器)使用_第1张图片

2,配置监控项:
类型选择“zabbix采集器”,键值自己写
zabbix的trapper(补获器)使用_第2张图片

3、创建触发器:
触发器,要把函数选择对,
zabbix的trapper(补获器)使用_第3张图片

4、通过zabbix_sender 命令发送数据给主机,
zabbix_sender -z 127.0.0.1 -s "Linux DB3" -k db.connections -o 43
其中
-z 指zabbix server ip
-s 指zabbix server的hostname
-k 指对应的key值
-o 则表示要主动推送的数据 (可以用变量)

Zabbix_sender -s "PUSH" -k "recommend_id" -o "123 456 789 465782222222"

如果脚本执行定时任务,那么该命令也得执行定时任务, -o选项是脚本执行的结果

zabbix-sender 在服务器端的配置,我们直接把脚本执行的结果、键值、直接以zabbix-sender的形式传送过去,不用在服务器定义。都是在命令里定义的,监控项那边的键值要一致并且唯一


下面是一个简单的用捕获器的方式监控的脚本

hostname="\"`hostname`\""
key="custom.zxsd.jfMallScore"
Var_file="/home/zxsd/openresty/openresty/nginx/logs/action.log"

num=$(grep "`date +%FT`" $Var_file |grep  "migu-cportal/book/pcenter/jfMallScore" |wc -l)

echo "$hostname" "$key" "$num"  

定时任务如下:
08,18,28,38,48,58 * * * * /home/zabbix/trapper/jfMallScore.sh|/home/zabbix/agent/zabbix_sender.sh

我们普通的是直接用zabbix_sender 命令,这个是写成了脚本,