collectd 的 df 插件报告错误 free space in /home

collectd's df plugin reporting wrong free space in /home

我在机器 运行 Ubuntu 16.04 至 collect 使用指标中使用 Librato 的 collectd 版本 5.5。但是,在我的一个集群中,我无法使 df 插件报告所有 space 可用于 //home

如您所见,这些挂载点位于不同的 ext4 分区中。我预计它会报告分别可用于 //home 的 17G 和 1.7T。尽管我正确地收到了与 / 关联的 space,但它报告 /home.

大约有 4GB
$ df -h 
Filesystem Size Used Avail Use% Mounted on 
/dev/root  20G  1.4G 17G   8%   / 
devtmpfs   3.9G 0    3.9G  0%   /dev 
tmpfs      3.9G 0    3.9G  0%   /dev/shm 
tmpfs      3.9G 125M 3.8G  4%   /run 
tmpfs      5.0M 0    5.0M  0%   /run/lock 
tmpfs      3.9G 0    3.9G  0%   /sys/fs/cgroup 
/dev/sda3  1.8T 8.9G 1.7T  1%   /home 
tmpfs      789M 0    789M  0%   /run/user/0

$ cat /etc/fstab 
# <file system> <mount point> <type> <options> <dump> <pass> 
/dev/sda2       /             ext4   errors=remount-ro,relatime 0 1 
/dev/sda3       /home         ext4   defaults,relatime 1 2 
/dev/sda4       swap          swap   defaults 0 0 
proc            /proc         proc   defaults 0 0 
sysfs           /sys          sysfs  defaults 0 0 
devtmpfs        /dev          devtmpfs rw 0 0

这是我当前关于 df 的配置:

<Plugin "df"> 
    MountPoint "/" 
    MountPoint "/home" 
</Plugin>

...

LoadPlugin "match_regex"

<Chain "PostCache"> 
    <Rule "ignore_df_reserved_used_metrics"> 
        <Match "regex"> 
            Plugin "^df" 
            TypeInstance "^(reserved|used)" 
        </Match> 
        Target "stop" 
    </Rule>

    # Default behavior 
    Target "write" 
</Chain>

我尝试了几种配置组合(以及一遍又一遍地阅读 df 插件文档),当仅使用如下所示的 FSType 时,我收到了一些测量值(usrbootbinliblib64root...),所有报告的大小都相同,约为 17G。此外,没有测量 home.

<Plugin df>
  FSType "ext4"
</Plugin>

我也尝试过将 FSType 与 MountPoint "/" 一起使用,但当时只报告了 root

我最后一次尝试在配置中使用 Device,但它没有改变任何东西。

<Plugin "df">
  Device "/dev/sda2"
  Device "/dev/sda3"
  MountPoint "/"
  MountPoint "/home"
  FSType "ext4"
  IgnoreSelected false
  ReportInodes false
</Plugin>

在所有尝试中,collectd 未在其日志中显示任何错误:

[2017-01-13 17:06:15] Exiting normally.
[2017-01-13 17:06:15] collectd: Stopping 5 read threads.
[2017-01-13 17:06:15] collectd: Stopping 5 write threads.
[2017-01-13 17:06:15] supervised by systemd, will signal readyness
[2017-01-13 17:06:15] Initialization complete, entering read-loop.

你有什么建议吗?

事实证明,可能 collectd had this bug fixed in their last version, 5.7, which isn't available in Ubuntu 16.04 apt-get yet. By downloading and installing their latest nightly builddf 开始报告正确的值。