zabbix--tcp状态应用集
Posted yizhangheka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix--tcp状态应用集相关的知识,希望对你有一定的参考价值。
前言
zabbix-agent内置的key里面没有对tcp状态的监控,但是tcp的状态对我们又很重要,tcp的常用状态有11种,我们可以把这11种都搞成监控项,然后把这些监控项集中到一起做一个tcp状态的应用集。
我们可以使用笨办法,就像这样:
[root@NFS zabbix_agentd.d]# cat tcp_estab.conf UserParameter=tcp_estab,netstat -ant | grep -i established | wc -l
如下,那么tcp_tstab就是一个监控项键值,监控established的连接数量,还有10种状态,那么岂不是我们要写10条这样的,如下:
[root@NFS zabbix_agentd.d]# cat tcp_estab.conf UserParameter=tcp_estab,netstat -ant | grep -i established | wc -l UserParameter=tcp_time_wait,netstat -ant | grep -i time_wait| wc -l ……
这样太麻烦了,要添加10次,这11次有很多的相同点,除了键值的名字和要过滤的状态不一样,其它的都是一样的,我们可以搞一个可以传递参数的键值,想用什么状态的时候直接把状态的名字做为参数传递给键值,这就不用行了吗! 怎么搞呢?我们下面会讲一下,你会发现系统的键值都是可以传递参数的,比如net.tcp.port[<ip>,port] ,我们也搞一个。
自定义tcp状态应用集
被控端:
[root@NFS zabbix_agentd.d]# vim tcp_status.conf UserParameter=tcp_status[*],netstat -ant | grep -i "$1" | wc -l #别忘记重启agent代理服务 [root@NFS zabbix_agentd.d]# systemctl restart zabbix-agent
解释一下,tcp_status就是键值的名字嘛,后面的中括号和星号是固定的格式,想要向里面传递参数就得这么写,后面的$1就代表第一个参数
zabbix端:
在zabbix端测试一下,注意格式与上述的格式对应 [root@zabbix ~]# zabbix_get -s 192.168.80.24 -k tcp_status[TIME_WAIT] 50
好,最关键的一步做完了,下面开始定义一下tcp状态应用集。
结果是这样子的
耐心一点,就做这一次,以后把这些模板保存下来,下次直接套用了,下方有一个批量更改,把时间更改为每5秒查看一次,这样方便我们做实验。
我们可以给被监控的主机安装上httpd,然后用ab压一下,就可以明显的看出效果了,后面的最新数据会变化,有时变成灰色,代表超时了,处理不完,我们去到“管理--队列(选择细节)”会看到细节,。
超时的时间,zabbix配置文件当中默认定义是3秒,我们是可以更改的在/etc/zabbix/zabbix_agentd.conf里面有一个timeout值,可以更改。
技巧:
管理---一般---其它---可以更改“不支持的项目刷新时间”
队列--概览,查看固定时间取不到值的请求数量
以上是关于zabbix--tcp状态应用集的主要内容,如果未能解决你的问题,请参考以下文章
对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段