我要向我的 MRTG 设置添加新目标。我已经有过去一年的原始测量数据。是否可以将这些数据回溯到我的日志文件中?我知道 MRTG 使用自己的文件格式,并且会汇总旧数据。当然,我可以编写一个“时间机器”脚本,它将当前操作系统时间重置为日志的起始位置,然后循环检索该数据,将时间增加 5 分钟。显然,这看起来像是肮脏的黑客行为。
答案1
我不明白你为什么不能这样做,MRTG 生成的日志文件的格式非常简单。
完整细节如下:http://oss.oetiker.ch/mrtg/doc/mrtg-logfile.en.html
但总体来说:
第一行是最后一次读取的总输入、输出和时间戳值:
[unix timestamp] [incoming bytes total] [outgoing bytes total]
之后,每 5 分钟就有一行(或者你的 mrtg 配置文件中的间隔是多少)默认为 5 分钟
以下每一行的形式为
[unix timestamp] [average bytes in for period] [average bytes out for period] [max bytes in for period] [maxbytes out for period]
“周期”定义为此行的时间戳减去上一行的时间戳所得的时间差。
编写一个小脚本来手动传输数据,在 MRTG 工作目录中创建一个适当命名的文件,然后让 MRTG 继续更新它,这并不困难。
您需要在 MRTG.CFG 中设置要监控的新接口,并在 cron 中运行 MRTG(您可能已经这样做了),然后一旦您可以在新文件中看到前几个更新,您就需要快速运行更新脚本来在下一次计划的 cron 检查之前传输数据。
只要文件的日期和时间信息准确,并且日志中的时间戳准确,那么您就可以轻松完成这项工作。