Monitoramento · 4 min read · Oct 17, 2025
Monitoramento de Servidor Com munin E monit No Mandriva 2008.0 - Página 2
4 Instalar E Configurar monit
monit parece estar disponível apenas em certos repositórios contrib_backports do Mandriva; eu o encontrei no repositório carroll.cac.psu.edu, então devemos habilitá-lo agora:
urpmi.addmedia contrib_backports ftp://carroll.cac.psu.edu/pub/linux/distributions/mandrivalinux/official/2008.0/i586/media/contrib/backports with media_info/hdlist.czVocê pode tentar outros repositórios contrib_backports com a ajuda de http://easyurpmi.zarb.org, mas se eles não contiverem monit, você deve remover o repositório contrib_backports que você escolheu assim…
urpmi.removemedia contrib_backports… e tentar outro repositório contrib_backports.
Depois, instalamos o monit:
urpmi monitO arquivo de configuração padrão do monit é /etc/monitrc onde você pode encontrar alguns exemplos de configuração (você pode encontrar mais exemplos de configuração em http://www.tildeslash.com/monit/doc/examples.php) que estão todos comentados. Abrimos esse arquivo agora e descomentamos a linha include /etc/monit.d/* no final:
vi /etc/monitrc| [...] include /etc/monit.d/* [...] |
Isso diz ao monit para também procurar no diretório /etc/monit.d por arquivos de configuração, portanto, em vez de modificar /etc/monitrc, criamos um novo arquivo de configuração /etc/monit.d/monitrc. 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 test, e quero que o monit envie alertas por email para root@localhost, então meu arquivo fica assim:
vi /etc/monit.d/monitrc| set 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:test check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart if 5 restarts within 5 cycles then timeout check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/sshd start" stop program "/etc/init.d/sshd stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid group database start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/httpd.pid group www start program = "/etc/init.d/httpd start" stop program = "/etc/init.d/httpd stop" if failed host www.example.com 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 postfix with pidfile /var/spool/postfix/pid/master.pid group mail start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp then restart if 5 restarts within 5 cycles then timeout |
(Por favor, certifique-se de que você verifica processos que realmente existem em seu servidor - caso contrário, o monit não iniciará. Ou seja, se você disser ao monit para verificar o Postfix, mas o Postfix não estiver instalado no sistema, o monit não iniciará.)
O 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://www.tildeslash.com/monit/doc/manual.php
Na parte do apache da configuração do monit você encontra isso:
| if failed host www.example.com port 80 protocol http and request "/monit/token" then restart |
que significa que o monit tenta se conectar a www.example.com na porta 80 e tenta acessar o arquivo /monit/token que é /var/www/www.example.com/web/monit/token porque a raiz do documento do nosso site é /var/www/www.example.com/web. 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/www.example.com/web/monit/token e escrever alguma string aleatória nele:
mkdir /var/www/www.example.com/web/monit
echo "hello" > /var/www/www.example.com/web/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:
vi /var/certs/monit.cnf| # criar certificados RSA - Servidor RANDFILE = ./openssl.rnd [ req ] default_bits = 1024 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 Email emailAddress_default = [email protected] [ cert_type ] nsCertType = server |
Agora 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 512 >> /var/certs/monit.pemopenssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pemchmod 700 /var/certs/monit.pemFinalmente, podemos iniciar o monit:
/etc/init.d/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 test, e você deve ver a interface web do monit. Deve parecer assim:

(Tela Principal)

(Página de Status do Apache)
Dependendo da sua configuração em /etc/monit.d/monitrc, o monit irá reiniciar seus serviços se eles falharem e enviar emails de notificação se os IDs de processo dos serviços mudarem, etc.
Divirta-se!
5 Links
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.