使用zabbix_sender
1、zabbix_sender是用来给zabbix_server端发送数据的命令。zabbix_server的捕获信息工具会根据捕获的信息创建对应项目,传入的数据仅仅会被指定主机item使用。当你需要运行一些统计脚本或者在另一台机器获取数据,却想把监控统一做到一台机器,就要用到zabbix_sender。
2、用法:
# /usr/local/zabbix/bin/zabbix_sender -h
usage:
zabbix_sender [-v] -z server [-p port] [-I IP-address] -s host -k key
-o value
zabbix_sender [-v] -z server [-p port] [-I IP-address] [-s host] [-T] [-r]
-i input-file
zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
[-s host] -k key -o value
zabbix_sender [-v] -c config-file [-z server] [-p port] [-I IP-address]
[-s host] [-T] [-r] -i input-file -c --config 指定配置文件
-z --zabbix_server zabbix_server的主机名或ip地址
-p --port 指定zabbix_server的trapper的端口,默认为10051
-s --host 指定主机名,zabbix_agent配置文件中定义的hostname
-I --source-address 指定源地址
-k --key 指定item key
-o --value item key的值,可以是具体的值,也可以是执行脚本的结果
-i --input-file 从指定的文件加载value。按行获取标准的输入,空格是分隔符
格式:
-T --with-timestamps 如果想在文件中指定key的时间,可以使用这个选项,这里的时间是unix的 时间戳。格式:
-r --real-time 发送的key以真实时间为标准,不用指定值
3、一个例子
根据需求,需要每天统计一次某项目的“总人数”,“每天活跃用户”,“最大同时在线人数”,“新增玩家数”。
(1) 通过脚本获取值,是通过查询数据库获取数据的,可能不太合理,仅仅是个例子:
# cat /etc/zabbix/scripts/test_count.sh
#!/bin/bash
# Shell Env
USER="test"
PASSWD="test"
HOST="localhost"
DAY=$(date -d"yesterday" +"%F")
# Shell Usage
shell_usage(){
echo "Usage $0: [ total_players | daily_active | new_player | max_online ]"
}
Total_players(){
mysql -u $USER -h $HOST -p$PASSWD -e "select count(*) from test.player" | grep
}
Daily_active_players(){
mysql -u $USER -h $HOST -p$PASSWD -e "select count(*) from test.player where LastLoginTime >= unix_timestamp('$DAY 00:00:00') and LastLoginTime = unix_timestamp('$DAY 00:00:00') and RegisterTime = unix_timestamp('$DAY 00:00:00') and datetime
页:
[1]