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


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

例如,我希望能够在上个月的8个工作日(星期一到星期五)之间的上午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

我会帮助你。

谢谢。


7
2018-06-11 09:48






答案:


最有可能的是,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 "

CDEF 对于 officehours 基本上检查样品的时间是否在下午6点到8点之间。如果是,则值为 UNKN。如果不是,则值为1.乘以该值,在办公时间内保留实际值,在非办公时间保留未知数。图表将在非办公时间显示一个洞,并通过平均值,最大值和分钟输出 GPRINT 要么 PRINT 不会考虑非办公时间的价值。

你必须设置一个 CDEF 对于您要过滤的每个非办公时间段。时间是以纪元为单位的秒数,所以如果您正在绘制图表,例如1月1日到2月1日,那么您需要过滤掉20个不同时期的订单。 RRD有很好的语言钩子,所以你可以编写一个简单的Perl或Python脚本来为你动态生成这些图形。

读完了 rrdgraphrrdgraph_rpn,和 rrdgraph_examples 手册页了解更多详情和示例。


3
2018-02-03 19:41





CACTI轮询器用完了cron。

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

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


-1
2018-06-11 12:27



我可以检索一下平均流量吗?我不介意图表不能很好地显示。 - Blast Raider
不是仙人掌,如果你有rrd数据,与womble所说的相反,是的rrdtool就是这样工作的,你对你能看到的东西有很大的控制权,看看 oss.oetiker.ch/rrdtool/doc/rrdgraph_examples.en.html - Sirch
感谢rrdgraph的例子。我希望在上午8点到下午6点一起观看5天,然后了解整体平均值。 - Blast Raider
我已经编辑了这个问题 - Blast Raider
你不能将不同的时间段叠加在一起。在rrdtool图中,时间是线性的,从起点到终点。您希望显示的任何图表都沿着这条连续的线。您可以做的是拉出该部分的平均值和平均值。你要求现在做什么......不,rrdtool不会那样工作。 - Sirch


不,rrdtool不能那样工作。


-2
2018-06-11 12:22



rrdtool确实允许您查看谨慎的数据区域。仙人掌可能没有能力。 - Sirch
@Sirch:怎么样?该 rrdgraph manpage没有提到任何东西。 - womble♦