Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.
O pacote munin permite monitorizar diversos parâmetros de um ou vários sistemas, como por exemplo, estado e carga dos serviços, temperaturas, espaço em disco, etc. O munin funciona segundo uma arquitetura cliente-servidor, em que um sistema servidor recolhe e organiza dados recebidos de vários sistemas clientes. Para monitorizar apenas um servidor, deverão ser instalados e configurados os pacotes cliente e servidor no mesmo sistema.
O pacote munin utiliza uma interface web. É necessário, portanto, instalar um 4.1 Servidor HTTP. Para mais informações, consultar instalação do 4.1.1 Apache2 e 4.1.2 Apache2 + Ssl, caso queiramos ligações seguras.
O pacote munin pode ser instalado num sistema (servidor) e monitorizar outros sistemas (clientes). Caso se pretenda monitorizar apenas um sistema, este funciona como cliente e servidor ao mesmo tempo.
Do lado do cliente, a instalação consiste apenas em instalar o pacote cliente e alguns extras:
root@server:~# aptitude install munin-node munin-plugins-core munin-plugins-extra
Do lado do servidor é necessário a instalação do pacote munin:
root@server:~# aptitude install munin
A configuração dos sistemas cliente consiste em adicionar o endereço do servidor à lista de endereços que podem estabelecer ligação ao cliente. o endereço deve ser acrescentado no formato expressão regular. No nosso caso, como o cliente e o servidor é o mesmo, basta adicionar o endereço 127.0.0.1. Essa configuração é efetuada no ficheiro /etc/munin/munin-node.conf:
# [..] # A list of addresses that are allowed to connect. This must be a # regular expression, since Net::Server does not understand CIDR-style # network notation unless the perl module Net::CIDR is installed. You # may repeat the allow line as many times as you'd like allow ^127\.0\.0\.1$ # [..]
O nome do sistema cliente também pode ser configurado neste ficheiro:
# [..] # Set this if the client doesn't report the correct hostname when # telnetting to localhost, port 4949 # #host_name localhost.localdomain host_name server.home.lan # [..]
O serviço cliente deverá então ser reiniciado:
root@server:~# /etc/init.d/munin-node restart
No servidor deverão ser acrescentados à configuração os endereços dos clientes a contactar, o que é feito no ficheiro /etc/munin/munin.conf:
# [...] # a simple host tree [server.home.lan] address 127.0.0.1 use_node_name yes # [...]
Caso existam mais clientes, basta adicionar os respetivos nomes e endereços em blocos semelhantes ao listado.
Deverá também ser configurada a integração do munin no servidor apache2. O munin fornece um ficheiro de configuração do apache que pode ser utilizado com algumas alterações.
O ficheiro deverá ser colocado em /etc/apache2/conf.d/munin, o que pode ser feito recorrendo a um link simbólico::
root@server:~# ln -sf /etc/munin/apache.conf /etc/apache2/conf.d/munin
Neste ficheiro ser definida para uma gama de endereços IP a partir dos quais se pode aceder à interface web do munin: A opção Allow from 192.168.1.0/24 permite o acesso apenas a partir da rede interna. Caso se pretenda aceder a partir de qualquer endereço, basta especificar Allow from All. Esta configuração está guardada no ficheiro /etc/apache2/conf.d/munin:
# [...] <Directory /var/cache/munin/www> Options None Order allow,deny Allow from localhost 127.0.0.0/8 ::1 Allow from 192.168.1.0/24 # Allow from All # [...] </Directory> # [...]
Como o munin fornece muita informação acerca das características do sistema, o seu acesso deve ser bastante restrito. O servidor httpd apache2 pode proteger uma diretoria, dando acesso apenas a utilizadores devidamente autenticados e autorizados. Como se pretende o máximo de segurança, a autenticação será feita através do método de autenticação “Digest” do apache2, que transmite os dados de forma segura.
A configuração é feita em 2 fases. Em primeiro lugar, deverá ser criado o ficheiro de autorizações para o recurso Munin no servidor apache2, com os utilizadores e respetivas senhas:
root@server:~# htdigest -c /etc/munin/munin-htpasswd Munin fribeiro Adding password for fribeiro in realm munin. New password: Re-type new password:
A opção -c cria o ficheiro de novo. Para acrescentar outro utilizador, esta opção deve ser omitida.
Em segundo lugar, alteramos a configuração do apache2 para exigir um utilizador e palavra-passe válidos para aceder à diretoria /munin, o que é feito no ficheiro /etc/apache2/conf.d/munin:
# [...] # This file can be used as a .htaccess file, or a part of your apache # config file. # # For the .htaccess file option to work the munin www directory # (/var/cache/munin/www) must have "AllowOverride all" or something # close to that set. # AuthUserFile /etc/munin/munin-htpasswd AuthName "Munin" AuthType Digest Require valid-user # [...]
O módulo de autenticação auth_digest deve estar activo:
root@server:~# a2enmod auth_digest
E reiniciar o servidor apache2:
root@server:~# /etc/init.d/apache2 restart
Para verificar o funcionamento do munin, basta abrir um browser e indicar http://192.168.1.100/munin na barra de endereços:
É possível expandir a funcionalidade do munin, recorrendo aos diversos plugins e templates disponíveis no sítio Internet do projeto, em https://github.com/munin-monitoring/contrib/. No entanto, a sua configuração sai fora do âmbito deste guia.