当前位置:   article > 正文

zabbix 监控Linux TCP/UDP端口流量_ss -ant | awk '{++s[$1]} end {for(k in s) print k,

ss -ant | awk '{++s[$1]} end {for(k in s) print k,s[k]}

zabbix-agent客户端在Linux服务器安装之后,服务器端配置上Template OS Linux这个模板 ,就会自动搜索该服务器上的所有网卡,然后实时记录income流量和outcome流量,并绘制成图标显示,如下。

 有这个粗略的统计可以帮助运维人员了解服务器的健康情况,但是有时候我们需要更加精细的监控,监控粒度要精细到某个端口和IP,比如统计80端口,443端口以时间为轴的流量变动情况。或者统计来自192.168.1.*和192.168.2.*流量的变化情况,甚至更进一步,统计192.168.1.1访问本机80端口产生的流量。这种需求使用基于网卡的监控已经不足以实现,必须使用新方法。

好在Linux网络流量都会经过iptables内核模块,iptables能够以极高的效率进行IP协议数据包和流量的统计,在记录和统计时几乎不影响系统性能,而且查询计数器和清零计数器也以毫秒为单位。通过iptables灵活的过滤命令,我们可以像配置防火墙一样配置我们需要监控的流量,然后配合zabbix自定义轮训取值功能,将客户机iptables统计的结果收集到zabbix server当中,并绘制图形,就可以直观准确的分析流量了。

首先我们要补充一些iptables知识,这里我就不赘述了,可以看下面这篇文章

https://www.cnblogs.com/pangguoping/p/5715539.html

大体来说,就是通过在Filter表中添加相关端口和IP的监控条目,然后定时使用iptables -v命令查看数据包的数量和流量大小,并定期使用iptables -Z命令清空计数器。最后就得到每分钟或每小时某端口的流量了。

我目前设计了两个场景,一个是统计某Linux服务器22端口的流量变化情况,另一个是统计192.168.1.1访问某LInux服务器9080端口的流量情况,zabbix服务器每30秒收集一次数据,并清空iptables计数器,然后把收集到的数据除以30,就是平均每秒的流量。

首先我们设置iptables规则

  1. iptables -I INPUT -p tcp --dport 22
  2. iptables -I INPUT -p tcp -s 192.168.1.1 --dport 9080

然后写一个脚本ÿ

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/160837
推荐阅读
相关标签
  

闽ICP备14008679号