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:
- O nome é arbitrário porque não precisa se relacionar ao nome do seu plugin, pode ser qualquer coisa, mas ...
- 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');