tongyi007 发表于 2019-1-21 07:19:34

zabbix中常用key值、自定义key值和Items、Triggers、Graphs创建

  zabbix中常用key值

[*]  监控端口的key值:net.tcp.port[,port_number]

# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.tcp.port[,21]
1         
# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k net.tcp.port[,1433]
0
#  返回1为10.10.2.32的端口21存在,0为端口1433不存在。

[*]  监控进程的key值:proc.num

# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num
1
# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num
0
# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k proc.num[]
59
# /app/zabbix/bin/zabbix_get -s 10.10.2.131 -k proc.num
1
#  proc.num返回值为10.10.2.32中WinRAR.exe的进程数量; proc.num[]返回值为10.10.2.32中所有的进程数量。



[*]  查看CPU核数的key值:system.cpu.num 返回值为服务器CPU的核数

# /app/zabbix/bin/zabbix_get -s 10.10.2.32 -k system.cpu.num
16
#

[*]  查看系统的系统启动时间和当前时间的key值:system.boottime、system.localtime
  返回值为系统启动时间和当前时间,为时间戳格式

  


[*]  查看系统的简单信息的key值:system.uname
# /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
#

[*]  查看磁盘容量息的key值:vfs.fs.size[/,pfree]

# /app/zabbix/bin/zabbix_get -s 10.10.2.83 -k vfs.fs.size[/,pfree]
70.659044
#  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

# 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
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1
UserParameter=uptime,/usr/local/zabbix/alertscripts/uptime.sh
# service zabbix_agentd restart  Server:
# /app/zabbix/bin/zabbix_get -s 10.15.44.161 -k uptime
up 2 days, 22:03
#  自定义key时提示:NOT Supported by zabbix agent
  1、zabbix在自定义的Item时N提示ot Supported,Zabbix Agent默认的超时时间是3秒,自定义的Item由于各种原因返回时间会比较长。
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3
Timeout=10
# service zabbix_agentd restart  2、取到的值和key的类型不符。在相应主机的监控项中进行查看。
  3、zabbix_server取不到监控项的值:在server上使用命令zabbix_get获取当前key
  添加自定义监控项
  上面配置自定义key值后我们需要把他应用到监控里,作为监控项应用到主机。

  以使用zabbix监控TCP连接状态为例:
# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S}'
TIME_WAIT 1956
CLOSE_WAIT 95
SYN_SENT 40
ESTABLISHED 738
FIN_WAIT2 25
LISTEN 35
#  
  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:没有任何连接状态。
  被监控端:
# 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}' > $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\033[0m"
            ;;
esac
# 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
# service zabbix_agentd restart  Zabbix端
  命令行测试
# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status
1727
# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status
738
# /app/zabbix/bin/zabbix_get -s 10.10.55.41 -k tcp.status
105
#  web端配置
  添加zabbix监控模板
   Configuration--Templates --Create template
  http://s5.运维网.com/wyfs02/M00/89/63/wKiom1gRmAmAsC1AAAB1Q36FBag353.png
  添加监控项
   Configuration--Templates --TCP连接状态模版中的Items--Create item
  
http://s3.运维网.com/wyfs02/M00/89/63/wKiom1gRmdKBA3Q1AABntofTQ9I741.png
http://s3.运维网.com/wyfs02/M02/89/60/wKioL1gRmiiyHrHjAABwEFJYrx0435.png键值就是上面自定义的键值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)。
  应用集类似分类,根据自己需求添加,也可以不填写。
  这里查看值保持不变,
  数据更新间隔(秒)根据实际情况填写。
  以此类推添加其他状态的监控项。
  http://s5.运维网.com/wyfs02/M02/89/61/wKioL1gRnHigANTSAAEUm_6BEf0132.png
  至此,tcp连接状态项添加完成,
  添加图形
   Configuration--Templates --TCP连接状态模版中的Graphs--Create Graph-添加-全选,或者选择你要添加图形展示的项目
http://s1.运维网.com/wyfs02/M01/89/63/wKiom1gRngqwHFiKAADnHjS4j64369.png
  添加触发器

   Configuration--Templates --TCP连接状态模版中的Triggers --Create trigger
http://s1.运维网.com/wyfs02/M02/89/64/wKioL1gRxgDCpWVOAACQmLbRQkE185.png
  当TIME_WAIT连接数大于1700触发,这里是用作测试的,具体数值更具实际情况设置。
  以此类推添加其他的触发器,我这里指添加了2个
  http://s4.运维网.com/wyfs02/M02/89/64/wKioL1gRxzOCGorhAABvjooDrkQ402.png
  至此监控tcp连接数添加完成,后面就是应用到主机中。
http://s1.运维网.com/wyfs02/M02/89/6A/wKioL1gSndSRYMpjAAEFTlEYSj0429.png



页: [1]
查看完整版本: zabbix中常用key值、自定义key值和Items、Triggers、Graphs创建