Monitoramento · 7 min read · Jan 24, 2026
Monitoramento de Servidores com Munin e Monit no Ubuntu 14.04 LTS - Página 2
6 Instalar e Configurar o Monit
Para instalar o Monit, fazemos o seguinte:
apt-get install monitAgora devemos editar /etc/monit/monitrc. O padrão /etc/monit/monitrc tem muitos exemplos, e você pode encontrar mais exemplos de configuração em http://mmonit.com/monit/documentation/. No entanto, no meu caso, quero monitorar proftpd, sshd, mysql, apache e postfix, quero habilitar a interface web do Monit na porta 2812, quero uma interface web https, quero fazer login na interface web com o nome de usuário admin e a senha howtoforge, e quero que o Monit envie alertas por e-mail para root@localhost, então meu arquivo fica assim (adicionei exemplos para outros daemons à configuração para que você possa ajustar o arquivo às suas necessidades):
cp /etc/monit/monitrc /etc/monit/monitrc_orig
cat /dev/null > /etc/monit/monitrc
nano /etc/monit/monitrcset daemon 60
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format { from: [email protected] }
set alert root@localhost
set httpd port 2812 and
SSL ENABLE
PEMFILE /var/certs/monit.pem
allow admin:howtoforge
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/sbin/service ssh start"
stop program "/usr/sbin/service ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
check process apache with pidfile /var/run/apache2/apache2.pid
group www
start program = "/usr/sbin/service apache2 start"
stop program = "/usr/sbin/service apache2 stop"
if failed host localhost port 80 protocol http
and request "/monit/token" then restart
if cpu is greater than 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 500 MB for 5 cycles then restart
if children > 250 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop
if 3 restarts within 5 cycles then timeout
#check process mysql with pidfile /var/run/mysqld/mysqld.pid
# group database
# start program = "/usr/sbin/service mysql start"
# stop program = "/usr/sbin/service mysql stop"
# if failed host 127.0.0.1 port 3306 then restart
# if 5 restarts within 5 cycles then timeout
#check process proftpd with pidfile /var/run/proftpd.pid
# start program = "/usr/sbin/service proftpd start"
# stop program = "/usr/sbin/service proftpd stop"
# if failed port 21 protocol ftp then restart
# if 5 restarts within 5 cycles then timeout
#
#check process postfix with pidfile /var/spool/postfix/pid/master.pid
# group mail
# start program = "/usr/sbin/service postfix start"
# stop program = "/usr/sbin/service postfix stop"
# if failed port 25 protocol smtp then restart
# if 5 restarts within 5 cycles then timeout
#
#check process nginx with pidfile /var/run/nginx.pid
# start program = "/usr/sbin/service nginx start"
# stop program = "/usr/sbin/service nginx stop"
# if failed host 127.0.0.1 port 80 then restart
#
#check process memcached with pidfile /var/run/memcached.pid
# start program = "/usr/sbin/service memcached start"
# stop program = "/usr/sbin/service memcached stop"
# if failed host 127.0.0.1 port 11211 then restart
#
#check process pureftpd with pidfile /var/run/pure-ftpd/pure-ftpd.pid
# start program = "/usr/sbin/service pure-ftpd-mysql start"
# stop program = "/usr/sbin/service pure-ftpd-mysql stop"
# if failed port 21 protocol ftp then restart
# if 5 restarts within 5 cycles then timeout
#
#check process named with pidfile /var/run/named/named.pid
# start program = "/usr/sbin/service bind9 start"
# stop program = "/usr/sbin/service bind9 stop"
# if failed host 127.0.0.1 port 53 type tcp protocol dns then restart
# if failed host 127.0.0.1 port 53 type udp protocol dns then restart
# if 5 restarts within 5 cycles then timeout
#
#check process ntpd with pidfile /var/run/ntpd.pid
# start program = "/usr/sbin/service ntp start"
# stop program = "/usr/sbin/service ntp stop"
# if failed host 127.0.0.1 port 123 type udp then restart
# if 5 restarts within 5 cycles then timeout
#
#check process mailman with pidfile /var/run/mailman/mailman.pid
# group mail
# start program = "/usr/sbin/service mailman start"
# stop program = "/usr/sbin/service mailman stop"
#
#check process amavisd with pidfile /var/run/amavis/amavisd.pid
# group mail
# start program = "/usr/sbin/service amavis start"
# stop program = "/usr/sbin/service amavis stop"
# if failed port 10024 protocol smtp then restart
# if 5 restarts within 5 cycles then timeout
#
#check process courier-imap with pidfile /var/run/courier/imapd.pid
# group mail
# start program = "/usr/sbin/service courier-imap start"
# stop program = "/usr/sbin/service courier-imap stop"
# if failed host localhost port 143 type tcp protocol imap then restart
# if 5 restarts within 5 cycles then timeout
#
#check process courier-imap-ssl with pidfile /var/run/courier/imapd-ssl.pid
# group mail
# start program = "/usr/sbin/service courier-imap-ssl start"
# stop program = "/usr/sbin/service courier-imap-ssl stop"
# if failed host localhost port 993 type tcpssl sslauto protocol imap then restart
# if 5 restarts within 5 cycles then timeout
#
#check process courier-pop3 with pidfile /var/run/courier/pop3d.pid
# group mail
# start program = "/usr/sbin/service courier-pop start"
# stop program = "/usr/sbin/service courier-pop stop"
# if failed host localhost port 110 type tcp protocol pop then restart
# if 5 restarts within 5 cycles then timeout
#
#check process courier-pop3-ssl with pidfile /var/run/courier/pop3d-ssl.pid
# group mail
# start program = "/usr/sbin/service courier-pop-ssl start"
# stop program = "/usr/sbin/service courier-pop-ssl stop"
# if failed host localhost port 995 type tcpssl sslauto protocol pop then restart
# if 5 restarts within 5 cycles then timeout
#
#check process dovecot with pidfile /var/run/dovecot/master.pid
# group mail
# start program = "/usr/sbin/service dovecot start"
# stop program = "/usr/sbin/service dovecot stop"
# if failed host localhost port 143 type tcp protocol imap then restart
# if 5 restarts within 5 cycles then timeoutO arquivo de configuração é bastante autoexplicativo; se você não tiver certeza sobre uma opção, dê uma olhada na documentação do Monit: http://mmonit.com/monit/documentation/monit.html
Na parte do apache da configuração do Monit você encontra isso:
if failed host localhost port 80 protocol http
and request "/monit/token" then restartque significa que o Monit tenta se conectar ao localhost na porta 80 e tenta acessar o arquivo /monit/token que é /var/www/html/monit/token porque o diretório raiz do nosso site é /var/www/html. Se o Monit não tiver sucesso, isso significa que o Apache não está em execução, e o Monit irá reiniciá-lo. Agora devemos criar o arquivo /var/www/html/monit/token e escrever alguma string aleatória nele:
mkdir /var/www/html/monit
echo "hello" > /var/www/html/monit/tokenEm seguida, criamos o certificado pem (/var/certs/monit.pem) que precisamos para a interface web do Monit criptografada em SSL:
mkdir /var/certs
cd /var/certsPrecisamos de um arquivo de configuração OpenSSL para criar nosso certificado. Ele pode ser assim:
nano /var/certs/monit.cnf# criar certificados RSA - Servidor
RANDFILE = ./openssl.rnd
[ req ]
default_bits = 2048
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
[ req_dn ]
countryName = Nome do País (código de 2 letras)
countryName_default = MO
stateOrProvinceName = Nome do Estado ou Província (nome completo)
stateOrProvinceName_default = Monitoria
localityName = Nome da Localidade (por exemplo, cidade)
localityName_default = Monittown
organizationName = Nome da Organização (por exemplo, empresa)
organizationName_default = Monit Inc.
organizationalUnitName = Nome da Unidade Organizacional (por exemplo, seção)
organizationalUnitName_default = Dept. de Tecnologias de Monitoramento
commonName = Nome Comum (FQDN do seu servidor)
commonName_default = server.monit.mo
emailAddress = Endereço de E-mail
emailAddress_default = [email protected]
[ cert_type ]
nsCertType = serverAgora criamos o certificado assim:
openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pemopenssl gendh 1024 >> /var/certs/monit.pemopenssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pemchmod 600 /var/certs/monit.pemFinalmente, podemos iniciar o Monit:
service monit startAgora aponte seu navegador para https://www.example.com:2812/ (certifique-se de que a porta 2812 não esteja bloqueada pelo seu firewall), faça login com admin e howtoforge, e você deve ver a interface web do Monit. Deve parecer assim:

(Tela Principal)

(Página de Status do SSHd)
Dependendo da sua configuração em /etc/monit/monitrc, o monit irá reiniciar seus serviços se eles falharem e enviar e-mails de notificação se os IDs de processo dos serviços mudarem, etc.
Para obter o status do Monit no shell, execute o comando “monit status”:
monit statusO comando mostrará o status de todos os serviços monitorados.

7 Configurar o Monit no ISPConfig
O Painel de Controle do Servidor ISPConfig pode mostrar dados do Monit dentro do seu módulo Monitor. Para habilitar essa função no ISPConfig, faça login no ISPConfig como usuário Administrador (admin), vá para Sistema > Configuração do servidor, preencha a URL, nome de usuário e senha para o Monit conforme mostrado abaixo.

8 Links
- munin: http://munin-monitoring.org/
- monit: http://mmonit.com/monit/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.