Tabela de Conteúdos

6.2.1 Munin

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.

Atenção

O pacote Munin utiliza uma interface web. É portanto necessário 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.

Sugestão

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.

Instalação

Cliente

Do lado do cliente, a instalação consiste apenas em instalar o pacote cliente e alguns extras:

root@server:~# apt-get install munin-node munin-plugins-core munin-plugins-extra

Servidor

Do lado do servidor é necessário a instalação do pacote munin:

root@server:~# apt-get install munin

Configuração

Cliente

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:

/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:

/etc/munin/munin-node.conf
# [..]
# 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:~# service munin-node restart

Servidor

No servidor deverão ser acrescentados à configuração os endereços dos clientes a contactar, o que é feito no ficheiro /etc/munin/munin.conf:

/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.

A instalação do munin gera um ficheiro de configuração para o apache2 que pode ser utilizado com algumas alterações.

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-available/munin.conf:

//etc/apache2/conf-available/munin.conf
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
        # Require local
        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>
# [...]

Segurança

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.

Confgurar a restrição de acessos é feita em 2 fases: Em primeiro lugar, alteramos a configuração do apache2 para exigir um utilizador e uma palavra-passe válidos para aceder à directoria /munin, o que é feito no ficheiro /etc/apache2/conf-available/munin.conf:

/etc/apache2/conf-available/munin.conf
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
        # [...]

        AuthType Basic
        AuthName "Munin"
        AuthUserFile /etc/munin/htpasswd
        Require valid-user

        Order allow,deny
        Allow from all
</Directory>
# [...]

O módulo de autenticação auth_basic deve estar ativo:

root@server:~# a2enmod auth_basic
Considering dependency authn_core for auth_basic:
Module authn_core already enabled
Module auth_basic already enabled

Em segundo lugar, deverá ser criado o ficheiro de autorizações com os utilizadores e respetivas senhas:

root@server:~# htpasswd -c /etc/munin/htpasswd fribeiro
New password:
Re-type new password:
Adding password for user fribeiro

A opção -c cria o ficheiro de novo. Para acrescentar outro utilizador, esta opção deve ser omitida.

A configuração pode agora ser activada:

root@server:~# a2enconf munin
Enabling conf munin.
To activate the new configuration, you need to run:
  service apache2 reload

E reiniciar o servidor apache2:

root@server:~# service apache2 restart

Verificação

Para verificar o funcionamento do munin, basta abrir um browser e indicar http://192.168.1.100/munin na barra de endereços:

Monitorização do sistema com o munin

Plug-ins

É 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.

Referências