如果您需要监视多个目录,我更新了Tw Bert的答案并对其进行了扩展,以允许您在一个命令行上将它们全部传递。[[input.exec]]
这使您不必在 telegraf.conf 文件中添加多个条目。
创建包含以下内容的文件/etc/telegraf/scripts/disk-usage.sh
:
#!/bin/bash
echo "["
du -ks "$@" | awk '{if (NR!=1) {printf ",\n"};printf " { \"directory_size_kilobytes\": "$1", \"path\": \""$2"\" }";}'
echo
echo "]"
我想监视两个目录:/mnt/user/appdata/influxdb
和/mnt/user/appdata/grafana
. 我可以做这样的事情:
# Get disk usage for multiple directories
[[inputs.exec]]
commands = [ "/etc/telegraf/scripts/disk-usage.sh /mnt/user/appdata/influxdb /mnt/user/appdata/grafana" ]
timeout = "5s"
name_override = "du"
name_suffix = ""
data_format = "json"
tag_keys = [ "path" ]
更新配置后,您可以使用以下方法进行测试:
telegraf --debug --config /etc/telegraf/telegraf.conf --input-filter exec --test
这应该向您展示 Telegraf 将推动什么涌入:
bash-4.3# telegraf --debug --config /etc/telegraf/telegraf.conf --input-filter exec --test
> du,host=SomeHost,path=/mnt/user/appdata/influxdb directory_size_kilobytes=80928 1536297559000000000
> du,host=SomeHost,path=/mnt/user/appdata/grafana directory_size_kilobytes=596 1536297559000000000