Monit - Uma Ferramenta para Gerenciar e Monitorar Sistemas Linux


Monit é uma ferramenta gratuita de código aberto e muito útil que monitora e gerencia automaticamente processos, arquivos, diretórios, somas de verificação, permissões, sistemas de arquivos e serviços como Apache, Nginx, MySQL, FTP, SSH, SMTP e assim por diante em um UNIX/Linux sistemas baseados e fornece uma funcionalidade de monitoramento excelente e útil para administradores de sistema.

O monit possui uma interface web amigável onde você pode visualizar diretamente o status do sistema e configurar processos usando um servidor web HTTP(S) nativo ou através da interface de linha de comando. Isso significa que você deve ter um servidor web como Apache ou Nginx instalado em seu sistema para acessar e visualizar a interface web do monit.

[Você também pode gostar: 20 ferramentas de linha de comando para monitorar o desempenho do Linux]

O Monit tem a capacidade de iniciar um processo se não estiver em execução, reiniciar um processo se não estiver respondendo e interromper um processo se usar muitos recursos. Além disso, você também pode usar o Monit para monitorar arquivos, diretórios e sistemas de arquivos para alterações, alterações de checksum, alterações de tamanho de arquivo ou alterações de carimbo de data/hora.

Com o Monit, você pode monitorar a porta TCP/IP de hosts remotos, protocolos de servidor e ping. O Monit mantém seu próprio arquivo de log e alerta sobre quaisquer condições críticas de erro e status de recuperação.

Este artigo foi escrito para descrever um guia simples sobre a instalação e configuração do Monit em distribuições Linux baseadas em Debian.

Etapa 1: Instalando o Monit no Linux

Por padrão, o programa de monitoramento Monit não está disponível nos repositórios base do sistema padrão, você precisa adicionar e habilitar um repositório epel de terceiros para instalar o pacote monit em distribuições baseadas em RHEL, como CentOS, Rocky Linux e AlmaLinux.

--------- On RHEL 9 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm 

--------- On RHEL 8 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

--------- On RHEL 7 based Systems ---------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Depois de adicionar o repositório epel, instale o pacote Monit executando o seguinte comando yum.

# yum install monit
OR
# dnf install monit  [On Fedora Linux]

Para usuários do Ubuntu/Debian/Linux Mint pode facilmente instalar usando o comando apt como mostrado.

$ sudo apt install monit

Etapa 2: configurando o Monit no Linux

O Monit é muito fácil de configurar, de fato, os arquivos de configuração são criados para serem de fácil leitura e de fácil compreensão para os usuários. Ele é projetado para monitorar os serviços em execução a cada 2 minutos e mantém os logs em “/var/log/monit“.

O Monit possui uma interface web que roda na porta 2812 usando um servidor web. Para habilitar a interface da web, você precisa fazer alterações no arquivo de configuração do monit.

O arquivo de configuração principal do monit localizado em /etc/monit.conf em (RedHat/CentOS/Fedora) e arquivo /etc/monit/monitrc para (Ubuntu/Debian/Linux Mint).

Abra este arquivo usando o editor de sua escolha.

# vi /etc/monitrc
Or
$ sudo nano /etc/monit/monitrc

Em seguida, descomente a seção a seguir e adicione o endereço IP ou nome de domínio do seu servidor, permita que qualquer pessoa se conecte e altere o usuário e a senha do monit ou você pode usar os padrões.

set httpd port 2812 and
     use address 0.0.0.0  # only accept connections from localhost
     allow 0.0.0.0/0        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly

Depois de configurá-lo, você precisa iniciar, habilitar e verificar o serviço de monit para recarregar as novas configurações.

# systemctl start monit
# systemctl enable monit
# systemctl status monit

Agora, você poderá acessar a interface web do monit navegando até as seguintes URLs.

http://localhost:2812
OR
http://ip-address:2812
Or
http://example.com:2812

Em seguida, digite o nome de usuário como “admin” e a senha como “monit“. Você deve obter uma tela semelhante à abaixo.

Etapa 3: Adicionando Serviços Linux ao Monitoramento de Monitoramento

Uma vez que as interfaces web do monit estejam configuradas corretamente, comece a adicionar os programas que você deseja monitorar no arquivo /etc/monitrc em (RedHat/CentOS/Fedora) e /etc/monit/monitrc para (Ubuntu/Debian/Linux Mint) no fundo.

A seguir estão alguns exemplos úteis de configuração para o monit, que podem ser muito úteis para ver como um serviço está sendo executado, onde ele mantém seu perfil, como iniciar e parar um serviço, etc.

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/usr/bin/systemctl httpd start"
stop program = "/usr/bin/systemctl httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
check process apache with pidfile /run/apache2.pid
start program = "/usr/bin/systemctl apache2 start" with timeout 60 seconds
stop program  = "/usr/bin/systemctl apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl nginx start"
stop program = "/usr/bin/systemctl nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/usr/bin/systemctl mysqld start"
stop program = "/usr/bin/systemctl mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/bin/systemctl sshd start"
stop program "/usr/bin/systemctl sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Depois de configurar todos os programas para monitoramento, verifique se há erros na sintaxe do monit. Se encontrar algum erro, corrija-os, não é tão difícil descobrir o que deu errado. Quando você receber uma mensagem como “Sintaxe do arquivo de controle OK“, ou se não vir nenhum erro, você pode prosseguir.

# monit -t
Or
$ sudo monit -t

Depois de corrigir todos os erros possíveis, você pode digitar o seguinte comando para iniciar o serviço de monit.

# systemctl monit restart
OR
$ sudo systemctl monit restart

É assim que fica o monit depois de adicionar todos os serviços do Linux para monitoramento.