Como exibir um gráfico apenas para o horário comercial com o CACTI?

7

Tenho notado que só posso exibir um período ininterrupto com o CACTI. Eu estou querendo saber se é possível ou não fazer um gráfico personalizado que exiba apenas o horário comercial durante um período (uma semana, um mês, etc).

Por exemplo, gostaria de poder exibir um gráfico com um tráfego de entrada médio entre as 8:00 e as 18:00 durante 5 dias úteis por semana (segunda a sexta) do último mês.

Eu tentei configurar um script para o RRDtool, mas não sei a sintaxe correta. Depois de vários testes, vi que é possível sobrepor diferentes gráficos juntos. Eu estava pensando em calcular a média de todos esses gráficos, mas não sei como fazer isso.

Gostaria de configurar algo como o seguinte:

--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

Eu apreciaria qualquer ajuda.

Obrigado.

    
por Blast Raider 11.06.2012 / 11:48

3 respostas

3

O mais provável é que o próprio Cacti não consiga gerar esse tipo de gráfico para você. Você precisará gerar seu gráfico RRD manualmente usando rrdgraph . A solução completa é bastante complicada, mas a essência básica é que você cria um CDEF com uma equação RPN que nula os dados fora do horário comercial.

Um exemplo muito básico que remove as horas 2012-01-31 18:00:00 UTC a 2012-02-01 08:00:00 UTC seria:

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 "

O CDEF para officehours basicamente verifica se a hora da amostra está entre as 18h e as 8h. Se for, o valor é UNKN . Se não for, o valor é 1. Multiplique isso pelo valor e você ficará com os valores reais durante o horário de expediente e os desconhecidos fora do horário de expediente. Um gráfico mostraria um furo fora do horário de expediente e a saída de médias, máximas e min. Através de GPRINT ou PRINT não levaria em consideração os valores da hora fora do escritório.

Você terá que configurar CDEF para cada período de horas que não seja de escritório que deseja filtrar. O tempo está em segundos desde a época, portanto, se você estivesse fazendo gráficos, por exemplo, de 1º de janeiro a 1º de fevereiro, teria na ordem de 20 períodos distintos que precisa filtrar. O RRD tem muito bons hooks de linguagem, então você pode escrever um simples script Perl ou Python para gerar esses gráficos rapidamente para você.

Leia o rrdgraph , rrdgraph_rpn e rrdgraph_examples man pages para mais detalhes e exemplos.

    
por 03.02.2013 / 20:41
-1

O poller CACTI fica sem cron.

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

Se você quiser apenas pesquisar dentro do horário de trabalho, é possível configurá-lo no cron, mas o rrdtool exibirá as lacunas no gráfico onde as pesquisas não foram realizadas.

    
por 11.06.2012 / 14:27
-2

Não, o rrdtool não funciona assim.

    
por 11.06.2012 / 14:22