有没有人有什么建议?你遇到过类似的问题吗?这是一个具有一个接口的Linux服务器环境,您必须从中确定公共带宽使用情况.
解决方法 为了Google员工的利益回答一个老问题.我们遇到了类似的问题,并使用iptables计数器“解决”它,使我们知道私有的所有传出流量将在10.0.0.0/8 IP地址上,其余为公共流量.您还可以跟踪输入以用于其他目的;当然,只收取外出的公共交通费用.
所以,创建一些计数器:
iptables -A input -s 0.0.0.0/0 --> Total incoming traffic iptables -A input -s 10.0.0.0/8 --> private incoming traffic iptables -A OUTPUT -d 0.0.0.0/0 --> Total outgoing traffic iptables -A OUTPUT -d 10.0.0.0/8 --> private outgoing traffic
检查柜台:
iptables -nv -L input --> counters about incoming traffic iptables -nv -L OUTPUT --> counters about outgoing traffic
注意:当您使用这些值时,您将获得私有和TOTAL:因此要公开,在将Total用于任何内容之前从Total中减去private.
如果您不想报告累积带宽,也可以将计数器清零:
iptables --zero input --> clear counter iptables --zero OUTPUT --> clear counter
以下是一个(丑陋的)bash脚本,它会将此信息推送到Ganglia,假设您已经创建了计数器:
#!/bin/bash OUTPUT_PUBliC=`sudo iptables -nvx -L OUTPUT | head -3 | tail -1 | tr -s [:blank:] |cut -d' ' -f3` OUTPUT_PRIVATE=`sudo iptables -nvx -L OUTPUT | tail -1 | tr -s [:blank:] |cut -d' ' -f3` let OUTPUT_PUBliC=$OUTPUT_PUBliC-$OUTPUT_PRIVATE sudo iptables --zero input sudo iptables --zero OUTPUT gmetric -n "public_outbound_traffic" -v $OUTPUT_PUBliC -t uint32 -u "bytes" gmetric -n "private_outbound_traffic" -v $OUTPUT_PRIVATE -t uint32 -u "bytes"
在cronjob中运行此命令,只需确保cronjob频率与您的神经节报告频率匹配(或以其他方式处理可能的不匹配).
希望这有助于某人.
总结以上是内存溢出为你收集整理的linux – 如何跟踪EC2实例或d性IP上的公共带宽使用情况?全部内容,希望文章能够帮你解决linux – 如何跟踪EC2实例或d性IP上的公共带宽使用情况?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)