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. É 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.
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:~# apt install munin-node munin-plugins-core munin-plugins-extra
Do lado do servidor é necessário a instalação do pacote munin:
root@server:~# apt 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:~# systemctl restart munin-node
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.
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:
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> # [...]
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:
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:~# systemctl restart apache2
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.