Zabbix常用key和自定义key的讲解

 zabbix中常用到的几个key:

1、监控端口的:net.tcp.port[,3306],可以在服务器端对被监控端测试。

 /usr/local/zabbix/bin/ -s192.168.8.120 -k net.tcp.port[,3306] 返回1为192.168.8.120的端口3306存在,0为不存在

#-k 表示键值

2、监控进程的:proc.num[mysqld]
 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -k proc.num[mysqld] 返回值为192.168.8.120中mysqld的进程数量
 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -k proc.num[] 返回值为192.168.8.120中所有的进程数量

可以在触发器的条件中设置返回为0的话触发动作,报警啥的。
3、查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数


4、查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式
5、查看系统的简单信息:system.uname 返回值为192.168.8.120的系统信息,类似于linux系统的uname -a命令
6、查看windowns系统当前网卡的进出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样
 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 返回值为IP为192.168.8.120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
 /usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值为IP为192.168.8.120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
7、查看系统内存大小:mory.size[total],返回值单位bytes
8、查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
9、查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1
10、查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)
11、自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可
 
以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。
要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。

使用自定义key常见错误。

 Zabbix客户端日志出现(Not all processes could be identified, 解决

场景:因为使用了netstat -p参数。

权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
解决方法 :
chmod +s /bin/netstat

chmod +s是为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。

 

posted @ 2017-11-16 16:31  GeminiMp  阅读(1837)  评论(0编辑  收藏  举报