Zabbix搭建笔记[5]--agent监控参数

44 篇文章 0 订阅
41 篇文章 2 订阅


前面我们了解到Zabbix中预置了很多监控项参数,除了默认的监控参数外,我们也可以定义自己的监控参数。

 

自定义参数可以在agent/etc/zabbix/zabbix_agentd.conf中配置,格式如下:

UserParameter=key,command

带参数的写法:

UserParameter=key[*],command $1 $2 $3 $4 ……

 

注意事项:

  1. 如果key中包含特殊字符,需要在配置文件中的设置UnsafeUserParameters=1
  2. 如果定义的command中确实需要使用字符串$X,那么需要使用这种方式进行转义:$$X
  3. 为了便于管理,可以将UserParameter的配置额外放在一个单独的目录下,并在配置文件中添加对应的目录:

      Include=/etc/zabbix/zabbix_agentd.conf.d/

      不同的配置文件中不要有重复项,不然会导致agent启动失败。

修改自定义参数后,需要重启agent以读取新的配置让修改生效。

 

举例:

我们在CentOS7.3这台Client上面新加一个UserParameter的配置文件/etc/zabbix/zabbix_agentd.d/test.conf,然后向其中添加下面的内容:

UserParameter=clientos,cat/etc/centos-release

UserParameter=clientifconfig,ifconfig

 

重启agent之后,我们在Zabbixserver上利用wget查看一下我们自定义的key是否可用:

[ZabbixServer] # zabbix_get -s 172.16.0.8 -k clientos

CentOSLinux release 7.3.1611 (Core)

[ZabbixServer] # zabbix_get -s 172.16.0.8 -k clientifconfig

eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

       inet 172.16.0.8  netmask 255.255.255.224 broadcast 172.16.0.31

       inet6 fe80::217:faff:fe00:1e4c  prefixlen 64 scopeid 0x20<link>

       ether 00:17:fa:00:1e:4c  txqueuelen 1000 (Ethernet)

       RX packets 485086  bytes 164556707 (156.9 MiB)

       RX errors 0  dropped 1 overruns 0 frame 0

       TX packets 809166  bytes 140053244 (133.5 MiB)

       TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

 

lo:flags=73<UP,LOOPBACK,RUNNING> mtu65536

       inet 127.0.0.1  netmask 255.0.0.0

       inet6 ::1  prefixlen 128 scopeid 0x10<host>

       loop txqueuelen 1  (Local Loopback)

       RX packets 0  bytes 0 (0.0 B)

       RX errors 0  dropped 0 overruns 0 frame 0

       TX packets 0  bytes 0 (0.0 B)

       TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

 

上面的command中不带参数,我们在test.conf中再添加一个自定义key

UserParameter=listeningCheck[*],netstat $1 | grep $2

 

然后我们在Zabbix server上使用zabbix_get测试一下:

[ZabbixServer] # zabbix_get -s 172.16.0.8 -k listeningCheck[-ano,22]

tcp       0     0 0.0.0.0:22             0.0.0.0:*              LISTEN      off (0.00/0/0)

tcp       0     0 172.16.0.8:22          106.120.78.190:39201   ESTABLISHED keepalive (3092.94/0/0)

tcp6      0     0 :::22                  :::*                   LISTEN      off (0.00/0/0)

unix 3     [ ]         STREAM    CONNECTED     17822

 

如上面例子所示,多个参数传递需要使用逗号进行分隔。

如果没有对应的key,则zabbix_get会返回ZBX_NOTSUPPORTED: Unsupported item key.消息。可以在Client端使用zabbix_agentd -p | grep <key>查看是否支持某个key

[Client]# zabbix_agentd -p | grep ^clientos

clientos                                     [t|CentOSLinux release 7.3.1611 (Core)]

 

下面是一些常用的预定义的key(命令zabbix_agentd -p | grep ^<key>会显示出可用的key以及示例):

网卡流量监控:

Keys

net.if.in[interfaceName, <mode>]

net.if.out[interfaceName, <mode>]

net.if.collisions[interfaceName]

net.if.discovery

net.if.total[interfaceName, <mode>]

说明:其中mode可选参数有bytes(默认)/packets/errors/dropped

例子:

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.in[eth0,packets]

489421

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.in[eth0]

165805726

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.in[eth0,]

165808700

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.out[eth0,]

141217086

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.out[eth0,dropped]

0

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.collisions[eth0]

0

[Zabbix Server] # zabbix_get -s 172.16.0.8 -k net.if.discovery

{"data":[{"{#IFNAME}":"eth0"},{"{#IFNAME}":"lo"}]}

 

端口监控相关Keys

net.tcp.listen[port]

net.tcp.port[<ip>,port]

net.tcp.service[service,<ip.,<port>]

net.tcp.service.perf[service,<ip>,<port>]

net.udp.listen[port]

 

进程监控相关Keys

kernel.maxfiles

kernel.maxproc

proc.num[<name>,<user>,<state>,<cmdline>]

proc.mem[<name>,<user>,<state>,<cmdline>]

 

系统参数相关Keys

system.localtime[<type>]

system.users.num

system.cpu.switches

system.cpu.intr

system.cpu.util[<cpu>,<type>,<mode>]

system.cpu.load[<cpu>,<mode>]

system.cpu.num[<type>]

system.cpu.discovery

system.uname

system.hw.chassis

system.hw.cpu

system.hw.devices

system.hw.macaddr

system.sw.arch

system.sw.os

system.swap.size[<device>,<type>]

system.swap.in[<device>,<type>]

system.swap.out[<device>,<type>]

system.uptime

system.boottime

system.hostname

vm.memory.size[<mode>]

 

磁盘IO和文件系统的相关Keys

vfs.file.size[file]

vfs.file.time[file,<mode>]

vfs.file.exists[file]

vfs.file.contents[file]

vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]

vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>,<output>]

vfs.file.md5sum[file]

vfs.file.cksum[file]

vfs.fs.size[fs,<mode>]

vfs.fs.inode[fs,<mode>]

vfs.fs.discovery

vfs.dev.read[<device>,<type>,<mode>]

vfs.dev.write[<device>,<type>,<mode>]

 

关于上面Key的更详细的参数说明和使用方法,可以参考:

https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/zabbix_agent

 

下面是一些常用的WindowsKeys

eventlog[name,<regexp>,<severity>,<source>,<eventid>,<maxlines>,<mode>]

net.if.list

perf_counter[counter,<interval>]

proc_info[<process>,<attribute>,<type>]

service_state[*]

services[<type>,<state>,<exclude>]

wmi.get[<namespace>,<query>]

针对perf_counter,可以利用Windows自己的Performance Monitor的监控参数来进行信息收集,Performance Monitor中所有可用的参数值可以在cmd中使用typeperf -qx命令输出查看(项目比较多,建议输出到文本中)。

使用perf_counter的示例:

[ZabbixServer] # zabbix_get -s 172.16.0.7 -k perf_counter["\Processor(_Total)\%Idle Time"]

99.395250

 

 

更详细的用法可以参考:

https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/zabbix_agent/win_keys

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值