如何使用 CACTI 仅显示营业时间的图表?

如何使用 CACTI 仅显示营业时间的图表?

我注意到,使用 CACTI 只能显示不间断的时间段。我想知道是否可以制作自定义图表,仅显示某个时间段(一周、一个月等)内的营业时间。

例如,我希望能够显示上个月每周 5 个工作日(周一至周五)上午 8 点至下午 6 点之间的平均入站流量图表。

我尝试为 RRDtool 配置一个脚本,但我不知道正确的语法。经过几次测试,我发现可以将不同的图表叠加在一起。我想计算所有这些图表的平均值,但我不知道该怎么做。

我想配置如下内容:

--startday 20120604+8h
--endday 20120604+18h
monday:          --start startday --end endday
tuesday:         --start startday+24h --end endday+24h
wednesday:       --start startday+48h --end endday+48h
thursday:        --start startday+72h --end endday+72h
friday:          --start startday+96h --end endday+96h

DEF:monday=router.rrd:gi0/1:traffic_mon:AVERAGE
DEF:tuesday=router.rrd:gi0/1:traffic_tue:AVERAGE
DEF:wednesday=router.rrd:gi0/1:traffic_wed:AVERAGE
DEF:thursday=router.rrd:gi0/1:traffic_thu:AVERAGE
DEF:friday=router.rrd:gi0/1:traffic_fri:AVERAGE

DEF:traffic_mon:traffic_tue:traffic_wed:traffic_thu:traffic_fri:AVERAGE

我将非常感激任何帮助。

谢谢。

答案1

最有可能的是,Cacti 本身无法为您生成这种图表。您需要使用 手动生成 RRD 图表rrdgraph。完整的解决方案相当复杂,但基本要点是您创建一个CDEF带有 RPN 方程的 ,该方程会在非工作时间将数据清零。

删除 2012-01-31 18:00:00 UTC 至 2012-02-01 08:00:00 UTC 之间的时间段的一个非常基本的示例如下:

DEF:ds0=/path/to/data.rrd:ds0:AVERAGE
CDEF:officehours=TIME,1328032800,GT,0,1,IF,TIME,1328083200,LT,0,1,IF,MAX,1,UNKN,IF
CDEF:dslimit=ds0,officehours,*
AREA:dslimit#00cc00:"Value "

forCDEF基本上officehours检查样本的时间是否在下午 6 点到早上 8 点之间。如果是,则值为UNKN。如果不是,则值为 1。将其乘以该值,您将得到办公时间内的实际值和非办公时间内的未知值。图表将显示非办公时间内的漏洞,并且通过 或 输出的平均值、最大值和最小值GPRINT不会PRINT考虑非办公时间值。

您必须CDEF为每个要过滤掉的非办公时间时段设置一个。时间以纪元以来的秒数表示,因此如果您要绘制 1 月 1 日至 2 月 1 日的图表,则需要过滤掉大约 20 个不同的时段。RRD 具有非常好的语言钩子,因此您可以编写一个简单的 Perl 或 Python 脚本来为您动态生成这些图表。

阅读rrdgraphrrdgraph_rpn, 和rrdgraph_examples手册页以获取更多详细信息和示例。

答案2

CACTI 轮询器用尽 cron。

*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1

如果您只想在工作时间内进行轮询,可以在 cron 中进行配置,但 rrdtool 会在图表上显示未进行轮询的间隙。

答案3

不,rrdtool 不是那样工作的。

相关内容