zabbix的服务器端与客户端连接的主要工具就是zabbix里bin文件夹下的zabbix_get文件,这个命令只能在zabbix的server端使用,如果在agent端使用就会提示如下的错误:

zabbix_get [7189]: Check access restrictions in Zabbix agent configuration


在server端使用也是有说法,这里先查查看它的官方帮助

[root@chen-zk-001 bin]# ./zabbix_get -h
Zabbix get v2.2.6 (revision 48483) (27 August 2014)
usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
Options:
  -s --host <host name or IP>          Specify host name or IP address of a host
  -p --port <port number>              Specify port number of agent running on the host. Default is 10050
  -I --source-address <IP address>     Specify source IP address
  -k --key <key of metric>             Specify key of item to retrieve value for
  -h --help                            Give this help
  -V --version                         Display version number
  
Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"


里面说明了,-s后面接的是目标地址,-p后面要加端口号,这个一般都是10050, -I 后面加原地址,不过这个一般用不上,-k 后面接的就是item项目里的key。


不过这里要注意一点!-s 后面是要接上web界面里能连上的ip地址,本人实验里,监控zabbix_server使用127.0.0.1会报错,会提示Received empty response from Zabbix Agent at [127.0.0.1]. Assuming that agent dropped connection because of access permission。然后在agentd.conf里把127.0.0.1更改成了机器的内网ip就可以成功监控了。


如果在zabbix_get里使用127.0.0.1的话,将会反应为“无反应”,如图:

wKioL1eRyVuxYjAWAAAVPSYZImA299.png-wh_50

但是zabbix_get内网ip的话,就有效果了,如图:

wKioL1eRyb7xvT6SAACMJ5stWDM721.png

同理要检查其他已经确定可以被监控的ip的一些内容,比如根目录剩余空间:

wKiom1eRyjCTd0u0AAAeFLQeAaQ469.png

然后可以登陆一下10.168.227.58这台机器检查一下效果:

wKioL1eRynHzLDVFAACUCJbX9AA574.png

可见使用了43%,剩余了57%,zabbix_get的结果是正确的!


但是新的问题来了,-k是zabbix_get里的重点参数,但是它是如何获得的呢?


参数下面绿色的一行就是了:

wKiom1eR14PCKHvjAAB4x-rdy18411.jpg-wh_50


[补充]有的时候,可能明明ip是正确的,但是zabbix就是收取不到值,这个时候就要怀疑是否应该在客户端的conf文件里添加一下监控端的出口ip地址,出口ip地址怎么看?#curl ifconfig.me