dinggela 发表于 2019-1-19 12:46:17

使用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]
查看完整版本: 使用zabbix_sender