AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 556124
Accepted
fukawi2
fukawi2
Asked: 2013-11-20 14:31:42 +0800 CST2013-11-20 14:31:42 +0800 CST 2013-11-20 14:31:42 +0800 CST

监控 IPv4 与 IPv6 流量

  • 772

我们有一个功能齐全的双栈网络在我们的业务中运行。有没有人找到一个简单的工具来监控给定主机上的 IPv4 与 IPv6 流量比率?当我说“简单”时,我在想一个类似于“vnstat”的守护进程/服务

一份最简单形式的完美报告应如下所示:

                 Total     IPv4          IPv6          Ratio
This Month:      300gb     100gb (33%)   200gb (66%)   1:2
This Week:       5gb       1gb (20%)     4gb (80%)     1:4
Today:           1.2gb     400mb (33%)   800mb (66%)   1:2

如果我的数学有任何错误,请原谅我,这就是我想要一个工具的原因;)

我主要对 Linux (CentOS 6) 主机感兴趣,但任何 Windows (2008R2) 工具也会很有用。

我发现一个线程提示netstat -s -6 | grep -i octets但该-6选项在 CentOS 6 上无效;我猜这是最近对 netstat 的补充。

ipv6
  • 2 2 个回答
  • 2624 Views

2 个回答

  • Voted
  1. Best Answer
    MadHatter
    2013-11-20T23:53:26+08:002013-11-20T23:53:26+08:00

    我已经这样做了,并且已经有一段时间了,使用munin和我自己编写的自定义插件,它从iptables审计规则中获取数据。它在 C6 盒子上运行,所以如果没有人有更好的想法,你应该能够将它叉车就位。这不是您想要的简单的单线,但它正在工作,并产生如下数据:

    网络吞吐量的 munin 图

    该插件很简单,它只从创建的两个平面文件中获取数据/var/tmp:

    #!/bin/bash
    #
    # (c) Gatekeeper Technology Ltd., 2013
    # May be used under the terms of GPLv3 or, at your discretion, any later version
    
    if [ "$1" = "config" ]; then
    
        echo 'graph_title Network Throughput'
        echo 'graph_category network'
        echo 'graph_info This is the total throughput on the NIC since the beginning of the calendar month, or the last reboot, whichever was mo
    st recent.'
        echo 'graph_vlabel bytes'
        echo 'graph_args --logarithmic'
        echo 'in4.label       in v4'
        echo 'in4.colour      ff0000'
        echo 'out4.label      out v4'
        echo 'out4.colour     00ff00'
        echo 'in6.label       in v6'
        echo 'in6.colour      aa0088'
        echo 'out6.label      out v6'
        echo 'out6.colour     00aa88'
        echo 'total.label     total'
        echo 'total.colour    0000ff'
        exit 0
    fi
    
    out=`head -3 /var/tmp/audit.out.counts | tail -1 | awk '{print $2}'`
    echo "out4.value $out"
    in=`head -3 /var/tmp/audit.in.counts | tail -1 | awk '{print $2}'`
    echo "in4.value $in"
    
    out6=`head -3 /var/tmp/audit.out.v6.counts | tail -1 | awk '{print $2}'`
    echo "out6.value $out6"
    in6=`head -3 /var/tmp/audit.in.v6.counts | tail -1 | awk '{print $2}'`
    echo "in6.value $in6"
    
    total=$(($in+$out+$in6+$out6))
    echo "total.value $total"
    

    使它们看起来像这样的 crontab 条目:

    # output the audit rule counts for munin purposes
    * * * * *  /sbin/iptables  -L AUDIT-I -n -x -v > /var/tmp/audit.in.counts
    * * * * *  /sbin/iptables  -L AUDIT-O -n -x -v > /var/tmp/audit.out.counts
    * * * * *  /sbin/ip6tables -L AUDIT-I -n -x -v > /var/tmp/audit.in.v6.counts
    * * * * *  /sbin/ip6tables -L AUDIT-O -n -x -v > /var/tmp/audit.out.v6.counts
    # and zero the counts once a month
    0 0 1 * *  /sbin/iptables  -Z AUDIT-I
    0 0 1 * *  /sbin/iptables  -Z AUDIT-O
    0 0 1 * *  /sbin/ip6tables -Z AUDIT-I
    0 0 1 * *  /sbin/ip6tables -Z AUDIT-O
    

    并且iptables规则是根据以下/etc/sysconfig/iptables规则制定的:

    :AUDIT-I - [0:0]
    :AUDIT-O - [0:0]
    # audit input traffic
    -A INPUT -i eth0 -j AUDIT-I
     [ALL OTHER INPUT RULES APPEAR HERE, AFTER THE AUDIT RULE]
    # audit outbound traffic
    -A OUTPUT -o eth0 -j AUDIT-O
     [ALL OTHER OUTPUT RULES APPEAR HERE, AFTER THE AUDIT RULE]
    # AUDIT rules
    -A AUDIT-I -p all
    -A AUDIT-O -p all
    

    涉及的原因crontab是停止需要以root权限运行的munin插件;如果您不介意这样做,您可以让插件通过调用iptables自身来直接获取数据包计数。

    这些计数不会在重新启动后继续存在(因此上图中的额外下拉为零),但如果您将服务器设置为在重新启动时保存iptables规则和数据包计数,这不会影响您。

    • 3
  2. Emmanuel Bourg
    2017-04-27T02:14:49+08:002017-04-27T02:14:49+08:00

    你可以在 GitHub 上试用这个 IPv6 Munin 插件:

    https://github.com/MorbZ/munin-ipv6

    • 0

相关问题

  • IPv6 有哪些好的 IP 地址管理解决方案?[关闭]

  • 连接到 NAT 后启用 Teredo 的服务器

  • IPv4管理员的IPv6介绍[关闭]

  • 什么是支持 IPv6 胶水的又好又便宜的注册商?

  • 使用多少 IP V6 寻址?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve