Voltando com mais um post atrasado e começando uma nova pequena série, venho apresentar alguns plugins do Munin (comentado no post anterior) muito legais e as suas configurações. Apesar de ter dito anteriormente que a instalação de um plugin basea-se na simples criação de um link simbólico, alguns plugins dependem de configurações específicas e, muitas vezes, complexas.

Diferentemente do post anterior, terei que me ater a um ambiente específico, mas informarei quais as aplicações envolvidas e suas versões quando for o caso. No geral, utilizei o CentOS 5.3 para a instalação e configuração do Munin e seus plugins.

Desde já, informo que, na maioria das vezes, ler a documentação de um determinado plugin com problemas me ajudou muito. Geralmente a documentação está junto ao código, no próprio plugin. Então basta abri-lo com algum editor de textos.

1. Conceitos Básicos:

Não é necessário saber desenvolver plugins para conseguir instalá-los corretamente, mas alguns conceitos ajudarão muito a entender a documentação e os requisitos.

Primeiramente, os plugins são desenvolvidos em Perl. Com isso em mente, muitas vezes a solução de algum problema é simplesmente a instalação do pacote apropriado, como o perl-DBD-Pg para conexões com o PostgreSQL. USE O ‘YUM SEARCH‘ (ou ‘apt-get‘ ou whatever)!

Em alguns casos, serão necessários “variáveis de ambiente” para a correta execução do plugin. Por exemplo, um plugin para banco de dados precisa do usuário e senha de acesso; um plugin para o Tomcat precisará da porta de acesso.

Essas variáveis deverão ser configuradas no arquivo ‘/etc/munin/plugin-conf.d/munin-node‘. Por padrão, algumas configurações e documentações já estão inclusas. E cada configuração relaciona-se ao plugin através do nome. Por exemplo:

As configurações acima servirão para todos os plugins cujo nome comece com “mysql“. Esse plugin rodará como o usuário root e terá as permissões de super usuário. Além disso, fornecemos ao plugins alguns dados através de variáveis de ambiente (env.). No caso, o plugin usará o mysqladmin do local informado e usará o usuário ‘munin’ para obter as informações necessárias.

Na documentação dos plugins geralmente é informado quais variáveis de ambiente devem ou podem ser setadas.

Além de configurações, existem alguns comandos úteis no processo de configuração de plugins. Através do “munin-run” podemos executar o plugin na hora, obtendo um valor numérico, se bem configurado, ou ‘U‘ se ocorrer algum problema interno. Por exemplo:

Adicione o argumento “autoconf” para receber uma resposta booleana:

2. Plugin: MySQL

Tratarei aqui sobre as configurações dos plugins “mysql_queries” e “mysql_threads“. O primeiro apresenta a quantidade de requisições ao banco por tipo (selects, updates, deletes, etc); o segundo mostra a quantidade de threads criadas internamento no MySQL.

mysql_queries
mysql_queries

mysql_threads
mysql_threads

Essencialmente, precisamos apenas criar um usuário do MySQL sem permissão alguma e informar os dados de acesso ao plugin. Então criemos um usuário:

Adicione as informações de acesso no arquivo ‘/etc/munin/plugin-conf.d/munin-node‘:

Através desse usuário o plugin obterá os dados necessários para geração do gráfico. Utilize o comando “munin-run” para testar:

Simples, não? Muitas vezes a dificuldade não é configurar, mas sim descobrir o que configurar.

3. Plugin: PostgreSQL

Dessa vez falarei sobre um plugin para PostgreSQL, o “postgres_connections_db“. Ele gera um gráfico com os valores de conexões por banco de dados.

postgres_connections_db
postgres_connections_db

Dessa vez, além de criar um novo usuário para o Munin, temos que liberar o acesso livre desse usuário a partir do servidor. Então, primeiramente, criamos o usuário com senha aleatória (segura):

Utilizamos uma senha segura porque não usaremos ela na configuração do plugin. Ao invés disso, liberaremos o acesso sem senha para o usuário “munin” a partir do servidor para uma determinada tabela. Então, abriremos para edição o arquivo “/var/lib/pgsql/data/pg_hba.conf” e adicionamos a linha:

Com isso, todas as conexões para o usuário “munin” na tabela “template1” a partir do servidor local serão aceitas sem a necessidade de senha. Basta dar um reload no postgre e podemos incluir as configurações do plugin no arquivo “/var/lib/pgsql/data/pg_hba.conf” :

Depois disso, basta testar:

Bem. Acredito que seja o suficiente por hora… Espero voltar logo com a continuação apresentando outros Plugins para o Munin, incluindo um plugin não oficial para monitorar memória usada pelo Passenger (RoR).