Munin carregar de vários servidores no mesmo gráfico

2

Estou tentando comparar as médias de carga de vários servidores usando o Munin 1.4.6-3ubuntu3 combinando vários hosts em um único gráfico.

Minha tentativa:

[domain.com;Totals]
load.graph_title Load
load.graph_category System
load.graph_order s1=s1.domain.com:load.load \
    s2=s2.cisco.com:load.load \
    s3=s3.cisco.com:load.load \
    s4=s4.cisco.com:load.load \
    s5=s5.cisco.com:load.load \
    s6=s6.cisco.com:load.load \
    s7=s7.cisco.com:load.load

Resultados em:

[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s2=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s3=s2;domain;com:load:
[WARNING] munin_set_var_loc: Setting unknown option 'load' at domain.com;Totals;s4=s2;domain;com:load:

E nenhum gráfico foi gerado em /var/cache/munin/www/domain.com/Totals , apenas index.html e load.html

Qual é o exemplo de trabalho para conseguir isso?

    
por Jon Skarpeteig 12.12.2012 / 15:24

2 respostas

4

Lutei com gráficos combinados por um bom tempo. Eu posso dizer pela minha experiência que a validação de entrada do Munin é muito ruim. Por isso, muitas vezes, silenciosamente, falha se você esquecer de definir uma opção obrigatória ou se definir muitas opções. Além disso, encontrei um problema muito estranho que fez com que meu gráfico combinado desaparecesse depois de alguns minutos no tempo de atividade do servidor. Esse problema foi resolvido com a atualização para o Ubuntu 13.04 (munin 2.0.9-1ubuntu1).

Um pouco sobre a nossa configuração

Atualmente, temos três servidores de produção atrás de um balanceador de carga. Cada um deles conta o número de pedidos recebidos. Todos esses servidores são monitorados pelo munin e um plug-in personalizado (myplugin) recupera o contador de solicitações e o expõe como uma única fonte de dados chamada 'pedidos'. Usando essa configuração, tivemos três gráficos diferentes para os três servidores diferentes. Agora, obviamente, este é um exemplo perfeito para gráficos combinados.

Aqui está minha configuração de trabalho

[server-1.production]
    address xxx.xxx.xxx.xxx
    use_node_name yes
[server-2.production]
    address xxx.xxx.xxx.xxx
    use_node_name yes
[server-3.production]
    address xxx.xxx.xxx.xxx
    use_node_name yes
[aggregate.production]
    update no
    myplugin.update no
    myplugin.graph_args --base 1000 -l 0
    myplugin.graph_category myplugin
    myplugin.graph_vlabel requests/s
    myplugin.graph_title request rate
    myplugin.graph_order \
        total \
        server-1=server-1.production:myplugin.requests \
        server-2=server-2.production:myplugin.requests \
        server-3=server-3.production:myplugin.requests
    myplugin.total.sum \
        server-1.production:myplugin.requests \
        server-2.production:myplugin.requests \
        server-3.production:myplugin.requests
    myplugin.server-1.label server-1
    myplugin.server-2.label server-2
    myplugin.server-3.label server-3
    myplugin.total.label total

armadilhas importantes

  • As definições de rótulo na última parte da configuração são obrigatórias . Omitir-lhes leva a munin a falhar silenciosamente!
  • update no é necessário, embora eu não tenha certeza se você precisa do myplugin.update no .
  • Verifique se você está usando a versão mais recente do munin, já que os erros foram corrigidos ativamente.
por 05.05.2013 / 14:04
0

Esta mensagem de aviso que você recebe é devido a uma verificação de sintaxe que não entende a divisão de várias linhas com '\' e, portanto, considera que sua variável 'load' é uma palavra-chave válida para o final de um comando de configuração. Eu considero que isso é um bug no munin atual.

Embora sejam processados corretamente, você pode evitar esse aviso removendo o '\' e compactando todas as linhas a seguir em apenas uma:

load.graph_order s1=s1.domain.com:load.load   s2=s2.cisco.com:load.load   s3=s3.cisco.com:load.load   s4=s4.cisco.com:load.load     s5=s5.cisco.com:load.load   s6=s6.cisco.com:load.load     s7=s7.cisco.com:load.load

Independentemente da solução alternativa acima, você também precisa adicionar:

use_node_name no
update no
load.update no
    
por 13.01.2017 / 14:14

Tags