博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义key解决zabbix端口监听取值不准确的问题
阅读量:6074 次
发布时间:2019-06-20

本文共 1212 字,大约阅读时间需要 4 分钟。

今天有一个朋友问到我一个关于zabbix监控tcp端口的问题,明明端口在监听,但是通过net.tcp,listen取值取到的却是0。

  经过简单的goole发现这已经是一个历史悠久的问题:
  问题的根本原因是zabbix的这个key(net.tcp,listen)是通过读取 /proc/net/tcp这个文件来进行数据采集的,而/proc/下的文件并不是线程安全的,因此会出现取值不准确的问题。
另外这种机制还存在另外一个隐患:当/proc/net/tcp文件的条目非常多的话,就会造成取值慢的情况,因此就有可能造成取值失败的问题。

那我们该如果解决这个问题呢,网上也找到了解决办法,我在这里当一次大自然的搬运工~哈哈

解决方法就是新添加一个用户自定义key来代替zabbix自己提供的监控方式,具体操作步骤如下:

#1,添加自定义key --> net.tcp.listen.grep[]

添加方式,在zabbix客户端的agentd的配置文件中,或者在zabbix agentd所声明的Include配置文件目录下添加如下配置:
1
UserParameter=net.tcp.listen.grep[
],grep -q $$(printf '%04X.00000000:0000.0A' $1) /proc/net/tcp && echo 1 || echo 0
  例如我的选在就是在/etc/zabbix/zabbix-agentd.conf.d目录下,创建了一个文件net_tcp_listen.conf,将上述key的声明写到文件里,因为我的zabbix_agentd.conf中已经做了配置文件目录包含的声明:

thatsit:~ # grep ^Include /etc/zabbix/zabbix-agentd.conf

Include=/etc/zabbix/zabbix-agentd.conf.d/
thatsit:~ #
thatsit:~ # cat /etc/zabbix/zabbix-agentd.conf.d/net_tcp_listen.conf
UserParameter=net.tcp.listen.grep[*],grep -q $$(printf '%04X.00000000:0000.0A' $1) /proc/net/tcp && echo 1 || echo 0
thatsit:~ #
#2,重启zabbix-agentd,使配置生效

shipeng:~ # /etc/init.d/zabbix-agentd restart

Shutting down zabbix agentd done
Starting zabbix agentd done
shipeng:~ #

转载于:https://blog.51cto.com/wushank/2404770

你可能感兴趣的文章
王立平--eclipse本地配置svn
查看>>
COLLATE CHINESE_PRC_CI_AS_WS 的含义
查看>>
UILabel调整字间距
查看>>
利用Linux的硬连接删除MySQL大文件
查看>>
一个常见下拉菜单的样式:一体化小三角(纯css手写解决)
查看>>
matplotlib简易新手教程及动画
查看>>
Head First设计模式之适配器模式
查看>>
SQL Server 查询性能优化——创建索引原则(一)
查看>>
树的非递归遍历
查看>>
高仿手机QQ音乐之——Android带进度条的开关
查看>>
ffmpeg获取RTSP视频流信息
查看>>
Node.js之 EventLoop 理解(转)
查看>>
Windows 自带的截屏功能
查看>>
APache PDFbox API使用(1)----简单介绍
查看>>
为OLED屏添加GUI支持6:进度条控件
查看>>
json解析之jackson
查看>>
python(46):对字典进行排序,多键值排序
查看>>
BZOJ3253 : 改编
查看>>
golang实现任务分发处理
查看>>
python生成器
查看>>