zabbix自定义监控-命令获取agent的数据并定义为key

Zabbix Liemer_Lius 1561℃ 0评论

有时候,zabbix服务端的key不能满足我们自定义监控的需求,这时候,就需要通过命令来获取数据,并通过服务器端的zabbix_get命令来获取这些数据。

UserParameter就是这个功能的实现途径。

原理:Agent端配置文件里面添加UserParameter自定义项,重启Agent服务,然后在Server端可以通过zabbix_get命令,指定主机和key,获取相应的数据。

# zabbix_get -h
Zabbix get v2.0.21 (revision 67441) (19 April 2017)

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]"

获取一个数据的格式:

UserParameter=<key>,<command1; command2...>

实例:agent添加获取剩余内存的值的参数,Server端添加这项的监控。

1、Agent端编辑zabbix_agentd.conf,可以在最下面添加UserParameter:

UserParameter=memory.free,/usr/bin/free| awk '/^Mem:/ {print $4}'
# service zabbix-agent restart

2、Server端用zabbix_get获取数据:

# zabbix_get -s 192.168.75.77 -k memory.free
299680

可以传递参数的key定义:

如/proc/meminfo中有很多内存的参数,我们要获取内存总数、剩余、Buffers、Cached的值,不需要定义4个key,可以在一个key里面引用参数来定义。

格式:

UserParameter=<key>[*],<command>    // [*]表示多个参数,Server端获取数值可以用逗号隔开多个参数

例子:

通过cat /proc/cpuinfo中的数据,传递参数来获取四个不同的值:MemTotal, MemFree, Buffers, Cached

1、agent端,编辑配置文件,添加UserParameter:

UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/ {print $$2}'
# service zabbix-agent restart

注:一个$表示引用[*]中的第N个参数,而两个$是awk里面打印第N段时候用的,理解用法即可。

2、Server端用zabbix_get获取

[root@Lius ~]# zabbix_get -s 192.168.75.77 -k memory.usage[MemTotal]
1004348
[root@Lius ~]# zabbix_get -s 192.168.75.77 -k memory.usage[MemFree]
308216
[root@Lius ~]# zabbix_get -s 192.168.75.77 -k memory.usage[Buffers]
39208
[root@Lius ~]# zabbix_get -s 192.168.75.77 -k memory.usage[Cached]
90944

3、zabbix监控中,key里面直接输入memory.usage[MemTotal]来定义item获取数据的方法。

 

转载请注明:liutianfeng.com » zabbix自定义监控-命令获取agent的数据并定义为key

喜欢 (0)

发表回复