我们需要监视目录的大小(例如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
  • 将以下内容放入crontab中,例如每10分钟运行一次:10 * * * * chmod -R g+rX /var/lib/influxdb/data > /var/log/influxdb/chmodfix.log 2>&1

  • 结果在Grafana中配置(数据源:InfluxDB):
    du - 如何通过Telegraf监视目录的大小-LMLPHP

    TW干杯

    关于du - 如何通过Telegraf监视目录的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44386205/

    10-16 07:18