Munin提示min must be less than max in DS definition

因为家中使用的树莓派意外损坏,使用NAS上的虚拟机来代替原来树莓派的工作.在配置Munin的时候出现错误,当更新网络设备数据时,munin服务器端报错

2016/12/20 17:30:05 [INFO] creating rrd-file for if_ens3->down: '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-down-d.rrd'
2016/12/20 17:30:05 [ERROR] Unable to create '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-down-d.rrd': min must be less than max in DS definition
2016/12/20 17:30:05 [ERROR] In RRD: Error updating /var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-down-d.rrd: opening '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-down-d.rrd': No such file or directory
2016/12/20 17:30:05 [INFO] creating rrd-file for if_ens3->up: '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-up-d.rrd'
2016/12/20 17:30:05 [ERROR] Unable to create '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-up-d.rrd': min must be less than max in DS definition
2016/12/20 17:30:05 [ERROR] In RRD: Error updating /var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-up-d.rrd: opening '/var/lib/munin/ARCHLINUX/mx.ARCHLINUX-if_ens3-up-d.rrd': No such file or directory

 

在做了一些搜索之后发现文章 https://github.com/mail-in-a-box/mailinabox/issues/896

 

执行munin-run if_ens3 config 后出现以下输出

graph_order down up
graph_title ens3 traffic
graph_args --base 1000
graph_vlabel bits in (-) / out (+) per ${graph_period}
graph_category network
graph_info This graph shows the traffic of the ens3 network interface. Please note that the traffic is shown in bits per second, not bytes. IMPORTANT: On 32-bitsystems the data source for this plugin uses 32-bit counters, which makes the plugin unreliable and unsuitable for most 100-Mb/s (or faster) interfaces, where traffic is expected to exceed 50 Mb/s over a 5 minute period.  This means that this plugin is unsuitable for most 32-bit production environments. To avoid this problem, use the ip_ plugin instead.  There should be no problems on 64-bit systems running 64-bit kernels.
down.label received
down.type DERIVE
down.graph no
down.cdef down,8,*
down.min 0
up.label bps
up.type DERIVE
up.negative down
up.cdef up,8,*
up.min 0
up.max -1000000
up.info Traffic of the ens3 interface. Maximum speed is -1 Mb/s.
down.max -1000000

根据文章的内容,应用munin-monitoring/munin@f982751到插件中即可修复这个问题.

 

使用以下patch可以解决问题

--- if_.orig    2016-08-02 23:52:05.691224811 +0200
+++ if_ 2016-08-02 23:52:49.563223127 +0200
@@ -91,7 +91,7 @@
     # iwlist first)
     if [[ -r /sys/class/net/$INTERFACE/speed ]]; then
             SPEED=$(cat /sys/class/net/$INTERFACE/speed 2>/dev/null)
-            if [[ -n "$SPEED" ]]; then
+            if [ -n "$SPEED" -a "$SPEED" -gt "0" ]; then
                 echo $SPEED
                 return
             fi

 

ArchLinux包管理器pacman和yaourt简明用法

1.升级系统

pacman -Syu

2.升级系统,附带升级从aur安装的软件包

yaourt -Syu –aur

注:这条命令的确切意思是升级系统,从AUR升级本地软件数据库并安装更新。

3.安装包

pacman -S package_name
pacman -Sf package_name #重新安装软件包

4.只下载你要的包

pacman -Sw package_name

5.安装下载的包到指定目录

pacman -U /path/to/package/package_name-version.pkg.tar.gz

6.删除已安装的软件

pacman -R package_name
pacman -Rs package_name #卸载包的同时卸载相关依赖

注:-R和-Rs参数同样适用于yaourt。

7.查找包

pacman -Ss package
yaourt foo #会列出所有匹配foo的包,用户可选择安装。

8.查看本地包

pacman -Qi package #显示包信息
pacman -Ql package #显示包安装位置

9.清空cache

pacman -Scc

用pacman 安装的时候,下的包会在/var/cache 这个目录,你会发现这个文件夹很大

yaourt的其他用法:

yaourt -Si package_name #列出软件包信息
yaourt -Sc #从缓存中清楚旧的软件包
yaourt -Su #安装AUR中的更新软件包
yaourt -Sy #获取最新的AUR软件包数据库
yaourt -Cd #清除AUR软件包数据库

 

ArchLinux安装要点

1.安装文件包时记得设置DNS。

2.安装完成后首先设置Pacman镜像
nano /etc/pacman.d/mirrorlist
找到CN,去掉Server前面的#,Ctrl+X退出。

3.更新源列表,执行:

pacman -Syu

4.设置签名全部信任(如不设置会十分麻烦)
nano /etc/pacman.conf
在 Architecture = auto 下新增

SigLevel = Optional TrustAll

5.更新系统

pacman -Sy pacman
pacman -Su

6.安装yaourt(32位系统)
nano pacman.conf 最后添加:

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

然后执行 pacman -Sy yaourt curl

ArchLinux上关闭IPv6的方法

IPv6日历历在目,为啥要关呢?我归纳为:洁癖,这和性能或内存啥的没关系。所谓的洁癖是指执行

netstat -lntp

类命令时,输出能清爽一点。

:::*

实在太丑了!

不管怎样,让我们来看看怎样在Arch linux有有效的关闭

IPv6

吧…

正确方法

其实Arch linux的wiki专门介绍过关闭IPv6: Disabling IPv6, 但尝试后发现method1和method2都不管用,必须重新生成一个

initramfs

。对于像我这样的菜鸟,还是列出命令更实惠:

首先编辑

/etc/modprobe.d/modprobe.conf

,添加:

options ipv6 disable=1

然后编辑

/etc/mkinitcpio.conf

,添加:

FILES="/etc/modprobe.d/modprobe.conf"

最后执行命令,并重启:

sudo mkinitcpio -p linux

注意:

  1. 不确定这是最好的办法,因为要重启服务器
  2. 如果
    initramfs

    不是用默认的linux模板,那

    -p linux

    要做相应修改