Monitoramento Servidor · 5 min read · Oct 15, 2025

Monitoramento de Servidor com Munin e Monit no Debian 8 (Jessie)

Neste artigo, descreverei como você pode monitorar seu servidor Debian 8 (Jessie) com Munin e Monit. O munin produz gráficos interessantes sobre quase todos os aspectos do seu servidor (média de carga, uso de memória, uso de CPU, throughput do MySQL, tráfego do eth0, etc.) sem muita configuração, enquanto o Monit verifica a disponibilidade de serviços como Apache, MySQL, Postfix e toma a ação apropriada, como um reinício, se encontrar um serviço que não está se comportando como esperado. A combinação dos dois oferece um monitoramento completo: gráficos que permitem reconhecer problemas atuais ou futuros (como “Precisamos de um servidor maior em breve, nossa média de carga está aumentando rapidamente.”), e um watchdog que garante a disponibilidade dos serviços monitorados.

Embora o Munin permita monitorar mais de um servidor, discutiremos apenas o monitoramento do sistema onde ele está instalado aqui.

Este tutorial foi escrito para Debian 8 (Jessie), mas a configuração deve se aplicar a outras distribuições como Ubuntu com poucas mudanças também.

Quero dizer primeiro que esta não é a única maneira de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

O nome do host do nosso sistema é server1.example.com, e temos um site www.example.com nele com o diretório raiz do documento /var/www/www.example.com/web.

Certifique-se de que o sistema esteja atualizado antes de começar a instalar o Munin, execute:

apt-get update  
apt-get upgrade

O Apache é usado para mostrar as páginas do Munin, o módulo fcgid do apache é necessário para o recurso de zoom do gráfico do Munin. Instale o apache e o módulo fcgid com apt.

apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid

Ative o módulo fcgid no apache.

a2enmod fcgid

2 Instalar e Configurar o Munin

Para instalar o Munin no Debian Jessie, fazemos isso:

apt-get install munin munin-node munin-plugins-extra 

Quando o servidor estiver executando MySQL ou MariaDB, ative alguns plugins extras do Munin para monitorar o MySQL:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/mysql_ mysql_  
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes  
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb  
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_  
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries  
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries  
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

Em seguida, devemos editar o arquivo de configuração do Munin /etc/munin/munin.conf. Descomente as linhas dbdir, htmldir, logdir, rundir e tmpldir (os valores padrão estão bons). Queremos que o Munin use o nome server1.example.com em vez de localhost.localdomain na saída HTML, portanto, substituímos localhost.localdomain por server1.example.com na seção de árvore de hosts simples. Sem os comentários, o arquivo alterado fica assim:

nano /etc/munin/munin.conf
# Exemplo de arquivo de configuração para Munin, gerado por 'make build'  
  
# As próximas três variáveis especificam onde está a localização dos RRD  
# bancos de dados, a saída HTML, logs e os arquivos de lock/pid. Todos eles  
# devem ser graváveis pelo usuário que executa o munin-cron. Todos eles  
# são definidos com os valores que você vê aqui.  
#  
dbdir /var/lib/munin  
htmldir /var/cache/munin/www  
logdir /var/log/munin  
rundir /var/run/munin  
  
# Onde procurar os templates HTML  
#  
tmpldir /etc/munin/templates  
  
# Onde procurar os arquivos www estáticos  
#  
#staticdir /etc/munin/static  
  
# arquivos cgi temporários estão aqui. note que deve ser gravável por  
# o usuário cgi (geralmente ninguém ou httpd).  
#  
# cgitmpdir /var/lib/munin/cgi-tmp

# (Exatamente um) diretório para incluir todos os arquivos.
includedir /etc/munin/munin-conf.d
[...]  
# uma árvore de hosts simples  
[server1.example.com]  
 address 127.0.0.1  
 use_node_name yes
[...]  

Devemos encontrar o arquivo de configuração do Apache 2.4 para o Munin /etc/munin/apache24.conf - ele define um alias chamado munin para o diretório de saída HTML do munin /var/cache/munin/www, o que significa que podemos acessar o munin de todos os sites neste servidor usando o caminho relativo /munin (por exemplo, http://www.example.com/munin).

A configuração do apache Munin não está habilitada por padrão, isso foi alterado do Debian Wheezy para Jessie. O novo diretório de configuração é /etc/apache2/conf-enabled em vez de /etc/apache2/conf.d, que era usado em versões mais antigas como Wheezy e Squeeze.

Execute esses comandos para habilitar e carregar a configuração no apache.

cd /etc/apache2/conf-enabled/  
ln -s /etc/munin/apache24.conf munin.conf  
service apache2 restart

Certifique-se de comentar a linha Require local e adicionar Require all granted e Options FollowSymLinks SymLinksIfOwnerMatch em vez disso (caso contrário, você só poderá acessar a saída do Munin a partir do localhost):

nano /etc/munin/apache24.conf
Alias /munin /var/cache/munin/www  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Reinicie o Apache:

service apache2 restart

Em seguida, reinicie o Munin:

service munin-node restart

Agora aguarde alguns minutos para que o Munin possa produzir sua primeira saída, e então vá para http://www.example.com/munin/ em seu navegador, e você verá as primeiras estatísticas:

Gráficos do Munin

(Este é apenas um pequeno trecho dos muitos gráficos que o munin produz…)

3 Proteger por Senha o Diretório de Saída do Munin (Opcional, mas altamente recomendado)

Agora é uma boa ideia proteger por senha o diretório de saída do munin, a menos que você queira que todos possam ver cada pequena estatística sobre seu servidor.

Para fazer isso, devemos criar o arquivo de senha /etc/munin/munin-htpasswd. Queremos fazer login com o nome de usuário admin, então fazemos isso:

htpasswd -c /etc/munin/munin-htpasswd admin

Digite uma senha para admin. Em seguida, abra /etc/munin/apache24.conf novamente…

nano /etc/munin/apache24.conf

… comente “Require all granted” e adicione as linhas que marquei em vermelho:

Alias /munin /var/cache/munin/www  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Em seguida, reinicie o Apache:

service apache2 restart

4 Habilitar módulos adicionais no Munin

O comando Munin “munin-node-configure –suggest” pode ser usado para obter recomendações para módulos adicionais do Munin que podem ser habilitados no servidor. Execute:

munin-node-configure --suggest

A saída deve ser semelhante a isto:

Status da configuração do nó Munin.

A coluna “usado” mostra se um módulo está habilitado, a coluna “Sugestões” mostra se o servidor executa um serviço que pode ser monitorado por este módulo. Crie um symlink para o módulo em /etc/munin/plugins para habilitá-lo.

Aqui, habilitarei os módulos apache_* como exemplo:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/apache_accesses  
ln -s /usr/share/munin/plugins/apache_processes  
ln -s /usr/share/munin/plugins/apache_volume

Reinicie o Munin para carregar a nova configuração.

service munin-node restart
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.