我们需要监视目录的大小(例如InfluxDB的数据目录)以在Grafana中设置警报。如此处所述:How to configure telegraf to send a folder-size to influxDB,没有内置插件。
我们不介意使用Telegraf的inputs.exec
部分。目录不是很大(低文件计数+目录计数),因此深度扫描(如du
的使用)对我们来说很好。
我们需要监视的目录之一是/var/lib/influxdb/data
。
什么是执行简单的脚本,有哪些警告?
最佳答案
您可以使用以下内容创建一个简单的bash脚本metrics-exec_du.sh
(chmod 755):
#!/usr/bin/env bash
du -bs "${1}" | awk '{print "[ { \"bytes\": "$1", \"dudir\": \""$2"\" } ]";}'
并通过将以下内容放入Telegraf配置文件中来激活它:
[[inputs.exec]] commands = [ "YOUR_PATH/metrics-exec_du.sh /var/lib/influxdb/data" ] timeout = "5s" name_override = "du" name_suffix = "" data_format = "json" tag_keys = [ "dudir" ]
注意事项:
du
命令可以使您的服务器承受压力,因此请谨慎使用telegraf
必须能够扫描目录。有几种选择,但是由于InfluxDB的目录掩码有点不确定(请参阅:https://github.com/influxdata/influxdb/issues/5171#issuecomment-306419800),因此我们应用了一种相当粗略的解决方法(示例是Ubuntu 16.04.2 LTS
):influxdb
组添加到用户telegraf
中:sudo usermod --groups influxdb --append telegraf
10 * * * * chmod -R g+rX /var/lib/influxdb/data > /var/log/influxdb/chmodfix.log 2>&1
结果在Grafana中配置(数据源:InfluxDB):
TW干杯
关于du - 如何通过Telegraf监视目录的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44386205/