zabbix 宏变量中各值的变量

zabbix自定义用户key与参数User parameters(24) – 运维生存时间
你可能喜欢
有回复时邮件通知我
关于本站 本站以分享运维技术为主,欢迎大家参与技术分享,同时也欢迎大家吐槽,本站提供以下交流圈:QQ群①:*****(满)QQ群②:6690706 QQ群③: QQ群④:(新) 微信公众号:ttlsacom 商务合作QQ:
记住我的登录信息
点击“立即注册”转到用户注册页面。
输入用户名或电子邮箱地址,您会收到一封新密码链接的电子邮件。
用户名或电子邮件地址推荐这篇日记的豆列
&&&&&&&&&&&&zabbix中常用key值监控端口的key值:net.tcp.port[,port_number][root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.tcp.port[,21]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.tcp.port[,1433]
[root@Zabbix_Server ~]#返回1为10.10.2.32的端口21存在,0为端口1433不存在。监控进程的key值:proc.num[process_name][root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[WinRAR.exe]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[WinRAR1.exe]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k proc.num[mysqld]
[root@Zabbix_Server ~]#proc.num[WinRAR.exe]返回值为10.10.2.32中WinRAR.exe的进程数量; proc.num[]返回值为10.10.2.32中所有的进程数量。查看CPU核数的key值:system.cpu.num 返回值为服务器CPU的核数[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k system.cpu.num
[root@Zabbix_Server ~]#查看系统的系统启动时间和当前时间的key值:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式查看系统的简单信息的key值:system.uname [root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k system.uname
Windows WGQ-DBF 6.1.7601 Microsoft Windows Server 2008 R2 Enterprise Edition Service Pack 1 x64
[root@Zabbix_Server ~]#查看磁盘容量息的key值:vfs.fs.size[/,pfree][root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.83 -k vfs.fs.size[/,pfree]
[root@Zabbix_Server ~]#vfs.fs.size[/,pfree]:取/领域的剩余空间率。p是percentage,vfs.fs.size[/,free]:取/领域的剩余空间。对应的单位就是B(这里的意思是Byte)vfs.fs.size[/,pused]:取/领域的使用空间率。vfs.fs.size[/,used]:取/领域的使用空间。如果要创建触发器表达式可以使用{ZABBIX-CC:vfs.fs.size[/,pfree].last(0)}&20查看系统当前网卡的进出流量的key值:Windows的key:net.if.out[{HOST.NAME},&mode&]、net.if.in[{HOST.NAME},&mode&]、net.if.total[{HOST.NAME},&mode&]mode可用值:bytes – 字节数 (默认)packets – 包数量errors – 错误数量dropped – 丢包数量[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.if.out[10.10.2.32,bytes]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.if.in[10.10.2.32,bytes]
[root@Zabbix_Server ~]#返回值为IP为10.10.2.32的进、出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量linux系统的key:net.if.out[if,&mode&]、net.if.in[if,&mode&]、net.if.total[if,&mode&][root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k net.if.out[eth0,bytes]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k net.if.in[eth0,bytes]
[root@Zabbix_Server ~]#查看系统内存大小的key值:vm.memory.size[total],返回值单位bytes[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k vm.memory.size[total]
[root@Zabbix_Server ~]#查看文件的大小的key值:vfs.file.size[file],单位是:bytes[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.size[/root/zabbix-agent-3.0.4-1.el6.x86_64.rpm]
ZBX_NOTSUPPORTED: Cannot obtain file information: [13] Permission denied
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.size[/var/log/maillog-]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.size[/usr/local/src/zabbix-agent-3.0.4-1.el6.x86_64.rpm]
[root@Zabbix_Server ~]#查看文件是否存在的key值:vfs.file.exists[file] 文件如果不存在返回0,存在返回1[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.exists[/usr/local/src/messages-]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.exists[/usr/local/src/messages-]
[root@Zabbix_Server ~]#查看文件的MD5的key值:vfs.file.md5sum[file],查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.file.md5sum[/usr/local/src/zabbix-agent-3.0.4-1.el6.x86_64.rpm]
6811f6ddd9b9edabe785
[root@Zabbix_Server ~]#自动发现网卡并监控流量和自动发现分区及分区挂载情况的key值:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k net.if.discovery
{"data":[{"{#IFNAME}":"lo"},{"{#IFNAME}":"eth1"}]}
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k vfs.fs.discovery
{"data":[{"{#FSNAME}":"/","{#FSTYPE}":"rootfs"},{"{#FSNAME}":"/proc","{#FSTYPE}":"proc"},{"{#FSNAME}":"/sys","{#FSTYPE}":"sysfs"},{"{#FSNAME}":"/dev","{#FSTYPE}":"devtmpfs"},{"{#FSNAME}":"/dev/pts","{#FSTYPE}":"devpts"},{"{#FSNAME}":"/dev/shm","{#FSTYPE}":"tmpfs"},{"{#FSNAME}":"/","{#FSTYPE}":"ext4"},{"{#FSNAME}":"/proc/bus/usb","{#FSTYPE}":"usbfs"},{"{#FSNAME}":"/sh","{#FSTYPE}":"ext4"},{"{#FSNAME}":"/proc/sys/fs/binfmt_misc","{#FSTYPE}":"binfmt_misc"},{"{#FSNAME}":"/misc","{#FSTYPE}":"autofs"},{"{#FSNAME}":"/net","{#FSTYPE}":"autofs"},{"{#FSNAME}":"/root/.gvfs","{#FSTYPE}":"fuse.gvfs-fuse-daemon"},{"{#FSNAME}":"/media/RHEL_6.5\\040x86_64\\040Disc\\0401","{#FSTYPE}":"iso9660"}]}
[root@Zabbix_Server ~]#zabbix自定义key值zabbix自定义key值和nagios在客户端nrpe.cfg文件中自定义监控命令类似,command[check_disk_data]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /opt。要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key。key允许0-9a-zA-Z_-.,即允许所有数字、有大小写字幕、下划线、减号、点.作为名称。key可以有多个参数,他们之间用逗号’,’分开。UserParameter=key[*],commandkey为唯一值,[*]表示参数。command为要执行的命令或脚本,key的[*]里面的参数一一对应command的$1到$9,一共9个参数。$0表示脚本命令。返回结果数据最大为512KB。 如果需要使用命令行里面出现$2这种变量,那么你要使用两个$$2,例如awk ’{ print $$2 }’,之前就遇到过这个问题,不停的测试自己脚本输出正常,但是zabbix却拿不到数据,原来是出在这里。为了防止和参数冲突,所以zabbix做了这个规定。参数禁止使用下列字符:\ ‘ ” ` * ? [ ] { } ~ $ ! & ; ( ) && | # @key参数可以是带引号的字符串、不带引号的字符串以及数组。[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1
UserParameter=iptstate.tcp,/etc/zabbix/scripts/net-tcp
UserParameter=iptstate.tcp.syn,/etc/zabbix/scripts/net-syn
UserParameter=iptstate.tcp.timewait,/etc/zabbix/scripts/net-time-wait
UserParameter=iptstate.tcp.established,/etc/zabbix/scripts/net-established
UserParameter=iptstate.tcp.close,/etc/zabbix/scripts/net-close
UserParameter=iptstate.udp,/etc/zabbix/scripts/net-udp
UserParameter=iptstate.icmp,/etc/zabbix/scripts/net-icmpiptstate.tcp为key的名字,/etc/zabbix/scripts/net-tcp为服务器端调用iptstate.tcp这个key时执行的脚本,其结果就是iptstate.tcp的返回值。脚本可以是任何可以运行的脚本语言。注意:脚本要用绝对路径,注意脚本的权限,写的脚本返回值要尽量简单,这样方便设置报警值。windows客户端修改zabbix_agentd.win.confC:\Users\Administrator&type C:\zabbix_zgent\conf\zabbix_agentd.win.conf
# Mandatory: no
# Default:
# EnableRemoteCommands=0
EnableRemoteCommands=1
# Mandatory: no
# Range: 0-1
# Default:
# UnsafeUserParameters=0
UnsafeUserParameters=1
UserParameter=tcp.timewait,C:\zabbix_zgent\bat\net-time-wait.batClient:10.15.44.161[root@localhost alertscripts]# cat /usr/local/zabbix/alertscripts/uptime.sh
#!/bin/bash
up_time=`uptime|cut -d ' ' -f 3-6|cut -d',' -f 1,2`
echo $up_time
[root@localhost alertscripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1
UserParameter=uptime,/usr/local/zabbix/alertscripts/uptime.sh
[root@localhost alertscripts]# service zabbix_agentd restartServer:[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k uptime
up 2 days, 22:03
[root@Zabbix_Server ~]#自定义key时提示:NOT Supportzabbix在自定义的Item时N提示ot Supported,Zabbix Agent默认的超时时间是3秒,自定义的Item由于各种原因返回时间会比较长。[root@FTP_Server ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3
Timeout=10
[root@FTP_Server ~]# service zabbix_agentd restart添加自定义监控项上面配置自定义key值后我们需要把他应用到监控里,作为监控项应用到主机。以使用zabbix监控TCP连接状态为例:[root@localhost ~]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'
TIME_WAIT 1956
CLOSE_WAIT 95
SYN_SENT 40
ESTABLISHED 738
FIN_WAIT2 25
[root@localhost ~]#LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)ESTABLISHED:代表一个打开的连接/当前并发连接数FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等待从本地用户发来的连接中断请求CLOSING:等待远程TCP对连接中断的确认LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认CLOSED:没有任何连接状态。被监控端:[root@localhost etc]# cat Tcp_Connection_Status.sh
#!/bin/bash
#This script is used to get tcp and udp connection status!
#by Justin Peng
Tcp_Status=$1
Tmp_File=/tmp/Tcp_Status.txt
/bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' & $Tmp_File
case $Tcp_Status in
TIME_WAIT)
num=`awk '/TIME_WAIT/ {print $NF}' $Tmp_File`
if [ -z $num ];then
CLOSE_WAIT)
num=`awk '/CLOSE_WAIT/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/SYN_SENT/ {print $NF}' $Tmp_File`
if [ -z $num ];then
ESTABLISHED)
num=`awk '/ESTABLISHED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
FIN_WAIT2)
num=`awk '/FIN_WAIT2/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/LISTEN/ {print $NF}' $Tmp_File`
if [ -z $num ];then
SYN-RECEIVED)
num=`awk '/SYN-RECEIVED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
FIN-WAIT-1)
num=`awk '/FIN-WAIT-1/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/CLOSING/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/LAST-ACK/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/CLOSED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
num=`awk '/UNKNOWN/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo -e "\033[31m Usage:$0 [TIME_WAIT|CLOSE_WAIT|SYN_SENT|ESTABLISHED|FIN_WAIT2|LISTEN|SYN-RECEIVED|FIN-WAIT-1|CLOSING|LAST-ACK|CLOSED|UNKNOWN]\033[0m"
[root@localhost etc]# vim ../etc/zabbix_agentd.conf
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1
UserParameter=tcp.status[*],/usr/local/zabbix/etc/Tcp_Connection_Status.sh $1
[root@localhost etc]# service zabbix_agentd restartZabbix端命令行测试[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[TIME_WAIT]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[ESTABLISHED]
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[CLOSE_WAIT]
[root@Zabbix_Server ~]#web端配置添加zabbix监控模板 Configuration--Templates --Create template添加监控项 Configuration--Templates --TCP连接状态模版中的Items--Create item键值就是上面自定义的键值tcp.status,这里监控的是TIME_WAIT,查看键值就是根据命令返回结果展示的状态,如果是监控服务状态可以选择service state,具体展示状态和返回值关系可以点击后面的展示值映射查看。名称中可以使用变量$1、$2...,直接调用键值的第一、二...个参数,如:Name填写Free disk space on $1 (percentage),key填写vfs.fs.size[/,pfree],name就会显示Free disk space on / (percentage)。应用集类似分类,根据自己需求添加,也可以不填写。这里查看值保持不变,数据更新间隔(秒)根据实际情况填写。以此类推添加其他状态的监控项。至此,tcp连接状态项添加完成,添加图形 Configuration--Templates --TCP连接状态模版中的Graphs--Create Graph-添加-全选,或者选择你要添加图形展示的项目添加触发器 Configuration--Templates --TCP连接状态模版中的Triggers --Create trigger当TIME_WAIT连接数大于1700触发,这里是用作测试的,具体数值更具实际情况设置。以此类推添加其他的触发器,我这里指添加了2个至此监控tcp连接数添加完成,后面就是应用到主机中。
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至: 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。没有更多推荐了,
不良信息举报
举报内容:
zabbix 内置变量
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!& zabbix自定义用户key与参数Userparameters监控脚本输出
zabbix自定义用户key与参数Userparameters监控脚本输出
zabbix在模板中预定义了一些key,但通常情况,并不能满足我们的需求。幸运的是zabbix提供了自定义key的方法,因此我们可以灵活的监控各种我们想要监控的数据。
定义配置文件
通过yum安装的zabbix-agent配置文件路径为/etc/zabbix/zabbix_agentd.conf。
大约在这个文件的255行左右,我们可以发现下面的代码:
Include=/etc/zabbix/zabbix_agentd.d/
我们自定义的配置,可以放到这个目录。
我们可以创建一个自定义的文件来定义我们需要的key:
vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf
文件里面添加这样的内容:
# 这个文件监控自定义脚本输出值
# 格式为UserParameter=&key&,&command&
UserParameter=script.date,date
保存之后重启zabbix-agent。
测试获取自定义key的值
在zabbix-server上使用zabbix_get工具获取自定义值。
shell & zabbix_get -s 100.10.1.2 -k script.date
Fri Apr 24 14:41:18 CST 2015
获取到了上面例子中执行date的结果,说明配置是成功的。
##创建一个脚本
首先新建一个script目录来存放我们的脚本,并将这个脚本命名为kucun.sh,我将使用zabbix来监控数据库中的库存表,使用库存数据画图。
mkdir -p /etc/zabbix/script/
vim /etc/zabbix/script/kucun.sh
我们定义脚本,输入一个店铺号来查询这个店铺中商品数量小于n的条数。
若手动执行查询,查询方式是这样的:
shell& /etc/zabbix/script/kucun.sh bj001 30
输出2即表示有2个商品数量小于30。
下面是脚本的内容:
#!/bin/bash
shop_id=$1
dbhost=&100.10.1.2&
dbuser=&monitor&
dbpasswd=&21&
sql=&SELECT count(*) FROM lsp_cus.menu WHERE shop_no = \&$shop_id\& AND date = UNIX_TIMESTAMP(DATE_FORMAT(NOW(),'%Y-%m-%d')) AND num - sale & \&$number\&&
mysql -h$dbhost -u$dbuser -p$dbpasswd -Ne &$sql&
使用脚本查询的结果创建key
vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf
文件修改为:
# 这个文件监控自定义脚本输出值
# 格式为UserParameter=&key&,&command&
UserParameter=script.kucun[*],/etc/zabbix/script/kucun.sh $1 $2
通过zabbix-server查询
在zabbix服务器上使用zabbix_get工具查询店铺号001,库存小于30的商品数量。
shell& zabbix_get -s 100.10.1.2 -k script.kucun[001,30]
可以看到成功了。
上面用到方法的一些解释
UserParameter=key[*],command
key为唯一值,[*]表示参数。
command为要执行的命令或脚本,key的[*]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令。返回结果数据最大为512KB。
参数禁止使用下列字符:\ ‘ ” ` * ? [ ] { } ~ $ ! & ; ( ) && | # @
脚本的命令行参数可以通过搜索引擎搜索相关文章。
文章链接:码字不易,转载请注明本文出处及文章链接。
加入QQ群 与更多同行交流
: 三言两语说不清楚,还是要自己研究一下策略。
: 具体是怎么设置的?可以说一下吗?
: 这个可以在 zabbix 中设置策略。
: 我收到很多系统预分配内存的报错,这个怎么设置不报?谢谢!
: 可以只禁止root远程登录,使用普通用户登陆以后再切换成root身份。}

我要回帖

更多关于 zabbix 宏变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信