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]
1
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.tcp.port[,1433]
0
[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]
1
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[WinRAR1.exe]
0
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[]
59
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k proc.num[mysqld]
1
[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
16
[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]
70.659044
[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)}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.bat
Client: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 restart Server:
[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 Supported by zabbix agent
1、zabbix在自定义的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 2、取到的值和key的类型不符。在相应主机的监控项中进行查看。
3、zabbix_server取不到监控项的值:在server上使用命令zabbix_get获取当前key
添加自定义监控项
上面配置自定义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
LISTEN 35
[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
#2016-10-26
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
echo 0
else
echo $num
fi
;;
CLOSE_WAIT)
num=`awk '/CLOSE_WAIT/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
SYN_SENT)
num=`awk '/SYN_SENT/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
ESTABLISHED)
num=`awk '/ESTABLISHED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
FIN_WAIT2)
num=`awk '/FIN_WAIT2/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
LISTEN)
num=`awk '/LISTEN/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
SYN-RECEIVED)
num=`awk '/SYN-RECEIVED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
FIN-WAIT-1)
num=`awk '/FIN-WAIT-1/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
CLOSING)
num=`awk '/CLOSING/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
LAST-ACK)
num=`awk '/LAST-ACK/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
CLOSED)
num=`awk '/CLOSED/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
UNKNOWN)
num=`awk '/UNKNOWN/ {print $NF}' $Tmp_File`
if [ -z $num ];then
echo 0
else
echo $num
fi
;;
*)
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"
;;
esac
[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 restart Zabbix端
命令行测试
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[TIME_WAIT]
1727
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[ESTABLISHED]
738
[root@Zabbix_Server ~]# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status[CLOSE_WAIT]
105
[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连接数添加完成,后面就是应用到主机中。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com