Configuração de aviso / limites críticos no arquivo plugin-conf.d

1

Eu posso definir limites de aviso / críticos em munin.conf (para um plug-in que eu escrevi) assim:

load_per_core.load_per_core.warning 0.2 # Low value to trigger warnings
load_per_core.load_per_core.critical 1

Isso funciona como esperado, vejo avisos por e-mail e as coisas certas nos gráficos.

Mas eu quero mover esses itens de configuração para um arquivo separado para que eu possa gerenciá-los com mais facilidade em servidores com o Puppet. No entanto, quando eu mover essas duas linhas em um novo arquivo plugin-conf.d/zz-load_per_core , como este:

[load_per_core]
env.load_per_core.warning 0.3 # Low value to trigger warnings
env.load_per_core.critical 1

... não funciona. Sem e-mails, nada nos gráficos.

Eu adivinhei o formato das linhas iniciando env.load_per_core , então talvez seja isso que está errado?

    
por Eric Clack 08.12.2015 / 18:10

1 resposta

2

tldr; Os pares de chave / valor de configuração do Munin são variáveis de ambiente que são injetadas no ambiente de execução de um plug-in específico no tempo de execução. Eles devem ser acessados de dentro do código do plug-in, como qualquer outra variável de ambiente do sistema.

Execução do Plugin Munin

Cada plugin munin é um arquivo executável autônomo. Em tempo de execução, Munin cria um ambiente separado para cada plugin no qual injeta variáveis que o plug-in pode referenciar. Existem dois grupos de variáveis de ambiente: núcleo central e específico do plug-in .

Dica: Use munin-run -d load_per_core para ver quais variáveis de ambiente estão sendo injetadas no ambiente do seu plugin.

Como definir variáveis de ambiente

As variáveis de ambiente específicas de plug-in são declaradas por plug-in usando a sintaxe:

#/etc/munin/plugin-conf.d/zz-name_of_your_plugin
[name_of_your_plugin]
env.identifier value

Que no seu caso seria:

#/etc/munin/plugin-conf.d/zz-load_per_core
[load_per_core]
env.load_per_core.warning 0.2 

Isso cria uma variável env ironment com identificador load_per_core.warning que tem um valor de 0.2 e injeta no ambiente de execução do plugin chamado load_per_core .

Importante: reinicie munin-node para que suas alterações entrem em vigor:

sudo service munin-node restart 

Onde definir variáveis de ambiente

Variáveis de plug-in são definidas no diretório /etc/munin/plagin-conf.d .

Munin cria um arquivo de configuração padrão neste local chamado munin-node não é recomendado editar este arquivo porque o munin pode sobrescrevê-lo.

Em vez disso, crie um novo arquivo para cada plugin. Que no seu caso poderia ser /etc/munin/plugin-conf.d/zz-load_per_core . Há duas coisas em que pensar ao nomear seu arquivo de configuração de plug-in:

  1. O nome é arbitrário porque não precisa se relacionar ao nome do seu plugin, pode ser qualquer coisa, mas ...
  2. Os arquivos de configuração nesse diretório são avaliados na ordem alfabética e as definições podem ser sobrepostas umas às outras. Portanto, imponha precedência para o seu arquivo de configuração prefixando o nome com zz para garantir que ele seja avaliado após munin-node .

Como acessar variáveis de ambiente

Variáveis de ambiente de configuração podem ser acessadas pelo código do seu plugin como qualquer outra variável de ambiente. A sintaxe para isso depende da linguagem usada pelo seu plugin. por exemplo, se o seu plugin foi escrito em bash você pode escrever:

#!/usr/bin/bash
#this would access and print the load_per_core.warning environment var 
#i.e 0.2    
echo $load_per_core.warning 

ou em Python :

#!/usr/bin/env python
import os
print os.environ.get('load_per_core.warning')

ou em Perl , usando a biblioteca padrão Munin:

#!/usr/bin/perl
use Munin::Plugin;
print_thresholds('load_per_core');
por 09.12.2015 / 14:39