我正在使用 MRTG + RRDtool 通过 snmp 监控 Cisco Catalyst 2950 的每个交换机端口上的带宽。MRTG 能够生成每小时图表吗?使用 RRDtool,我能够将间隔设置为 1 分钟,希望获得更详细的图表,但最短时间范围内的图表是“每日”图表(5 分钟平均值),图像太小。
我希望从中得到什么:我希望能够直观地监控所有交换机端口,并实时告知端口何时开始出现异常高的流量(snmp 轮询间隔 1 分钟,生成图表,刷新页面)。
答案1
您可以使用关系图命令行工具使用 MRTG 生成的 rrd 文件生成图表。您可以检查 rrd 文件并查看它整合数据的速度,如果它一天后才这样做,那么您将失去所追求的分辨率。所以基本上我会针对 MRTG 存储 rra 模板和 rrd 图表模板的位置。
这可能需要一点时间,但因为 RRD 是 MRTG、Cacti、Munin 等的后端图形库/工具集,所以值得学习。我在博客上介绍了在创建自己的图表时可能需要做的一些事情服务器故障博客在这里。
希望更熟悉 MRTG 的人可以为您提供有关 MRTG 具体问题的更多详细信息。
答案2
修改 MRTG 以使用 RRDtool通过添加或更改 mrtg.cfg 中的 LogFormat 行并定义路径(如果需要)。将间隔缩短至 1 分钟。
LogFormat: rrdtool Interval: 1 PathAdd: /path/to/rrdtool/bin/ LibAdd: /path/to/rrdtool/lib/perl/
将您的 cron 作业更改为每分钟运行一次。(根据需要进行编辑。)
vim /etc/cron.d/mrtg
将索引更改为建议的 Perl CGI 脚本之一。这将根据需要生成图像,而不是每次运行 cron 作业时生成图像。我使用了One4All 脚本参考上面的链接,修改如下:
my %graphparams = (
插入新图表后'hourly' => ['-10h', 'now', 60],
以下;
# the header lines and tags for the graphics my $pngdir = getdirwriteable($cfg->{config}{imagedir}, $cfg->{targets}{directory}{$log});
为之前定义的新小时图添加一个部分。
if ($sup !~ /h/) { print $q->h2("'Hourly' graph (1 Minute Average)"),"\n", $q->img({src => "$url=hourly", alt => "hourly-graph", getpngsize("$pngdir$log-hourly.png")} ), "\n"; }
修改了 Apache 配置以执行 CGI 脚本。(/etc/httpd/conf.d/mrtg.conf)
在标签外面添加;
AddHandler cgi-script .cgi
在标签内部添加;
Options +ExecCGI
重新启动 Apache 并浏览到新的 MRTG 索引页。
答案3
如果您使用 Routers2 前端进行 MRTG/RRD,那么如果您以 1 分钟为间隔收集数据,它就可以制作 4 小时图表。在标准分辨率下,4 小时是图表宽度,每个数据点 1 像素。您可以在 routers2.conf 文件中启用此功能。
答案4
经过一些修改后,以下补丁对我有用: http://www.loplop.net/projects/1minMRTG/