Introdução ao Monit for Server Monitoring

Monit é um programa de monitoramento de servidor que pode verificar os processos em execução no seu sistema para garantir que eles estejam sempre online e operando dentro de limites razoáveis de CPU e memória. Ele também vem com uma interface da web para monitorar seu sistema.
O que Monit faz?
Basicamente, o Monit verificará um determinado processo a cada dois minutos (por padrão) para ver como ele está indo. Ele mantém um registro do uso de recursos e pode agir se ocorrer um erro. Isso inclui reiniciar processos travados e reiniciar processos usando muitos recursos.
Monit define seu comportamento inteiramente por meio de arquivos de configuração. Esta é a configuração padrão do MySQL como exemplo:
verificar processo mysql com pidfile /var/run/mysqld/mysqld. pid start program = "/ usr / sbin / service mysql start" com tempo limite de 60 segundos parar programa = "/ usr / sbin / service mysql stop" com tempo limite de 60 segundos se totalmem > 400 MB por 5 ciclos, em seguida, alertar se totalmem > 600 MB por 5 ciclos e reinicie se cpu > 50% por 5 ciclos, em seguida, alerta se cpu > 90% por 5 ciclos, em seguida, reinicie se 3 reiniciar dentro de 5 ciclos, em seguida, tempo limite
O Monit está configurado para monitorar o processo do MySQL em execução. Se ele cair, ele pode iniciá-lo novamente usando o start program = config. Se o MySQL começar a usar muitos recursos, ele pode ser reiniciado automaticamente, embora você seja avisado por e-mail primeiro.
Ele também pode ser configurado para monitorar o seu sistema como um todo e pode alertá-lo se o seu servidor estiver enfrentando uma carga incomum.
verificar sistema wp01 se loadavg (5min) > 1 então alerta se o uso de memória > 90% por 5 ciclos, em seguida, alertar se o uso da CPU (usuário) > 90% por 5 ciclos, em seguida, alerta
Publicidade
Todos os monitores do Monit podem ser vistos na interface da web, que é executada na porta 2812 por padrão.

Além disso, você pode visualizar os dados de vários hosts em um só lugar com o utilitário M / Monit, que requer uma licença, mas pode ser testado gratuitamente.
RELACIONADO: Como configurar notificações do Slack para pouco espaço em disco no servidor
Instalando e configurando o Monit
Instale o Monit a partir do gerenciador de pacotes da sua distro; para sistemas baseados em Debian como Ubuntu, isso seria:
sudo apt-get install monit
O Monit deve vir com a configuração padrão, geralmente localizada em ~ / . monitrc. Se não foi (como foi o caso com a instalação do macOS), você pode encontrar os arquivos de configuração padrão aqui.
A interface da web do Monit está configurada para funcionar na porta 2812. Isso é bom, mas é totalmente aberta por padrão com uma senha padrão. Queremos bloqueá-lo para um endereço IP autorizado e
definir porta httpd 2812 permitir your_ip permitir administrador: senha
Altere esta senha, é claro. Existem mais algumas opções de configuração para a interface da web, mas isso é bom por enquanto.
Publicidade
O Monit pode então ser configurado para monitorar processos individuais. Normalmente, isso é feito com o arquivo PID de processos (frequentemente encontrado em / var / run /) que armazena o PID atual da instância em execução desse processo, uma vez que o PID mudará sempre que o processo for reiniciado.
verificar o processo nginx com pidfile /var/run/nginx. pid start program = "/etc/init.d/nginx start" stop program = "/ etc / init.d / nginx stop "
Você precisará passar um comando ao Monit para iniciar e parar o seu processo. Ele deve reiniciar automaticamente se o processo cair, sem configuração adicional, mas se você quiser reiniciar com base no uso de recursos, você terá que especificar isso com algumas instruções if:
verifique o processo nginx com pidfile /var/run/nginx. pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop" if totalmem & gt ; 600 MB por 5 ciclos e reinicie se cpu > 90% por 5 ciclos, em seguida, reinicie se 3 reiniciar dentro de 5 ciclos, em seguida, tempo limite
O Monit enviará alertas sempre que algo for reiniciado, então você será notificado quando algo estiver errado.
Depois de concluir a configuração, recarregue o daemon monit com:
monit recarregar
E comece a monitorar com:
monit começar todos
Isso deve iniciar a interface da web também, que você pode usar para verificar se o Monit está funcionando corretamente, geralmente executando na porta 2812.

Esta é a configuração básica para fazer o Monit funcionar fora da caixa, mas o Monit tem muito mais sintaxe. Você pode ler o manual completo sobre tudo o que Monit pode fazer para aprender mais.
Configurando alertas
O Monit pode ser configurado para enviar alertas de e-mail sempre que ocorrerem problemas importantes ou quando os processos forem reiniciados. Você precisará adicionar configurações para o seu servidor de e-mail:
definir servidor de email smtp. gmail. com porta 587 nome de usuário "yourserver@gmail. com" senha "secret" com tempo limite de 60 segundos definir eventqueue basedir / var / lib / monit / events slots 100
Publicidade
O primeiro bloco define o servidor de e-mail a ser usado. O método mais fácil seria apenas usar smtp. gmail. com com uma conta do Gmail, embora você pudesse instalar o Postfix em seu servidor para executar localmente ou usar um serviço de e-mail corporativo.
A segunda linha diz ao Monit para colocar alertas na fila, se o servidor de e-mail não estiver acessível por qualquer motivo.
Obviamente, você também precisará definir o endereço de e-mail para o qual enviará:
definir alerta para e-mail@gmail. com
Além disso, como o Monit tem a capacidade de executar scripts com o comando exec, você pode configurar alertas personalizados da maneira que desejar. Por exemplo, você pode configurar um script para enviar notificações do Slack, armazená-lo como /usr/local/bin/slack-webhook. sh e executá-lo sempre que o nginx alterar o PID ou for reiniciado pelo Monit:
verificar o processo nginx com pidfile /var/run/nginx. pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop" se pid alterado então exec "/ bin / bash -c 'PROCESS = Nginx /usr/local/bin/slack-webhook. sh'" se 1 reiniciar dentro de 1 ciclo então exec "/ bin / bash -c 'PROCESS = Nginx / usr / local /bin/slack-webhook. sh'"
Observe que todos os caminhos devem ser totalmente qualificados, incluindo / bin / bash e caminhos para executáveis em seu bin local. E depois de terminar de modificar os arquivos de configuração, você precisará recarregar o Monit novamente.
Nenhum comentário