如何配置Munin来监控ppp0


0

我在我的Ubuntu Jaunty笔记本电脑上使用Munin。它显示了除ppp0之外的所有内容的强大图表,我用它来连接到互联网。所以我需要配置munin来显示ppp0使用图

我尝试浏览文档和一些教程,并在munin-node插件目录中添加了if_ppp0和if_error_ppp0。创建了两个符号链接,正如我所说,它指向正确的插件,if_和if_error(只跟踪if_eth0和if_error_eth0的操作,并为ppp0完成相同操作)。但这还不够。ppp0不在图表中。

我找不到任何建议在监视池中包含ppp0的配置行。有点令人惊讶的是,考虑到popin的流行程度,没有任何关于ppp的文章。

我很擅长Perl和bash,之前也编程过rrd。所以我编辑了if_和if_error perl文件的插件,并将看起来像“eth | wlan | ....”的正则表达式改为“eth | ppp | wlan | ....”。什么都没有被打破,也没有任何东西得到解决。我似乎必须在其他地方做别的事情,但不知道它是什么。请帮忙。

Answers:


2

默认的eth脚本使用ethtool,它不适用于ppp链接。

eth脚本也使用COUNTER而不是DERIVE,每次重新连接ppp链接时都会出现错误峰值。

这是我的脚本(更改up.max,down.max到你的ppp链接带宽)...

#!/bin/sh

INTERFACE=`basename $0 | sed 's/^if_//g'`

if [ "$1" = "autoconf" ]; then
    if [ -r /proc/net/dev ]; then
        echo yes
        exit 0
    else
        echo "no (/proc/net/dev not found)"
        exit 1
    fi
fi

if [ "$1" = "suggest" ]; then
    if [ -r /proc/net/dev ]; then
        egrep '^ *(ppp|eth|wlan|ath|ra|msh|venet|veth)[0-9]+:' /proc/net/dev | cut -f1 -d: | sed 's/ //g'
        exit 0
    else
        exit 1
    fi
fi

if [ "$1" = "config" ]; then

    echo "graph_order down up" 
    echo "graph_title $INTERFACE traffic"
    echo 'graph_args --base 1000'
    echo 'graph_vlabel bits in (-) / out (+) per ${graph_period}'
    echo 'graph_category network'
    echo "graph_info This graph shows the traffic of the $INTERFACE network interface. Please note that the traffic is shown in bits per second, not bytes. IMPORTANT: Since the data source for this plugin use 32bit counters, this plugin is really unreliable and unsuitable for most 100Mb (or faster) interfaces, where bursts are expected to exceed 50Mbps. This means that this plugin is unsuitable for most production environments. To avoid this problem, use the ip_ plugin instead."
    echo 'down.label received'
        echo 'down.type DERIVE'
        echo 'down.graph no'
        echo 'down.cdef down,8,*'
        echo 'up.label bps'
    echo 'up.type DERIVE'
    echo 'up.negative down'
    echo 'up.cdef up,8,*'
    case "$INTERFACE" in
        ath*|wlan*|ra*)
            echo -n "up.info Traffic of the $INTERFACE interface. Maximum speed is "
            which iwlist >/dev/null 2>/dev/null || echo "undeterminable (please install iwlist)."
            iwlist $INTERFACE rate 2>/dev/null | awk '/Current Bit Rate/ { split ($0, arr, "[=:]"); split (arr[2], arr2, "M"); print (arr2[1]*1000000) " bits per second.\nup.max " (arr2[1]*1000000) "\ndown.max "(arr2[1]*1000000); }'
            ;;
        *)
            #echo -n "up.info Traffic of the $INTERFACE interface. Maximum speed is "
            #which ethtool >/dev/null 2>/dev/null || echo "undeterminable (please install ethtool)."
            #ethtool $INTERFACE 2>/dev/null | awk '/Speed/ { split ($2, arr2, "M"); print (arr2[1]*1000000) " bits per second.\nup.max " (arr2[1]*1000000) "\ndown.max "(arr2[1]*1000000); }'
            echo "up.info Traffic of the $INTERFACE interface. Maximum speed is 100000000 bits per second."
            echo "up.min 0"
            echo "down.min 0"
            echo "up.max 100000000"
            echo "down.max 100000000"

            ;;
    esac
    exit 0
fi;

# Escape dots in the interface name (eg. vlans) before using it as a regex
awk -v interface="$INTERFACE" \
    'BEGIN { gsub(/\./, "\\.", interface) } \
    $1 ~ "^" interface ":" {
        split($0, a, /: */); $0 = a[2]; \
        print "down.value " $1 "\nup.value " $9 \
    }' \
    /proc/net/dev

谢了哥们。我希望有人在一年前贴出这样的东西。可能是穆宁不是那么受欢迎吗?
vulcan_hacker 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.