zabbix_sender是什么?有什么作用
zabbix获取key值有超时时间,如果自定义的key脚本一般需要执行很长时间,这根本没法去做监控,那怎么办呢?使用zabbix监控类型zabbix trapper,需要配合zabbix_sender给它传递数据。关于trapper的用法,我们来弄个实例。
执行超长时间脚本,如:脚本去几十台服务器拉去数据,每个日志都上G,然后日志整合在一起,统计出返回值。这种脚本比如超时,所以我们必须改成让客户端提交数据的方式。
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_sender -s 127.0.0.1 -z 127.0.0.1 -k "ttlsa.trapper" -o 1 -r
info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000024"
sent: 1; skipped: 0; total: 1
ttlsa.trapper:是我们定义好的key
-0 1:1是key值
failed:错误数,说了-s不能用ip地址,那么我们改成配置文件中得主机名吧
# ./zabbix_sender -s "Zabbix server" -z 127.0.0.1 -k "ttlsa.trapper" -o 1 -r
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000035"
sent: 1; skipped: 0; total: 1
zabbix_sender批量传递key值
#cat f.txt
"Zabbix server" ttlsa.trapper 10
"Zabbix server" ttlsa.trapper 20
"Zabbix server" ttlsa.trapper 30
"Zabbix server" ttlsa.trapper 40
"Zabbix server" ttlsa.trapper 1
# ./zabbix_sender -z 127.0.0.1 -i f.txt
info from server: "processed: 5; failed: 0; total: 5; seconds spent: 0.000085"
sent: 5; skipped: 0; total: 5
每行对应一个key值,一般是不同的主机名、不同的key、不同的key值。这边方便测试,所以都用了同一个key