{"id":47276,"date":"2026-06-27T22:46:31","date_gmt":"2026-06-27T13:46:31","guid":{"rendered":"https:\/\/raybeam.jp\/docs\/initial-server-setup\/how-to-install-and-configure-monit-to-watch-and-monitor-your-servers\/"},"modified":"2026-06-27T22:47:04","modified_gmt":"2026-06-27T13:47:04","slug":"how-to-install-and-configure-monit-to-watch-and-monitor-your-servers","status":"publish","type":"docs","link":"https:\/\/raybeam.jp\/pt\/docs\/initial-server-setup\/how-to-install-and-configure-monit-to-watch-and-monitor-your-servers\/","title":{"rendered":"Como instalar e configurar o Monit para observar e monitorar seus servidores"},"content":{"rendered":"<p class=\"is-style-text-annotation is-style-text-annotation--1 wp-block-paragraph\">Este artigo pressup\u00f5e que voc\u00ea usar\u00e1 o Ubuntu Server 20.04 ou 24.04.<\/p>\n\n\n\n<h2 id=\"motivation\" class=\"wp-block-heading\">Motiva\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O Monit \u00e9 uma ferramenta simples e leve para monitorar e gerenciar servi\u00e7os, processos, arquivos e sistemas de arquivos em seu servidor Linux. Seus recursos proativos o tornam uma \u00f3tima op\u00e7\u00e3o para automa\u00e7\u00e3o de servidores. Abaixo est\u00e3o as etapas detalhadas sobre como instalar, configurar e usar o Monit no servidor Ubuntu 20.04 e 24.04.<\/p>\n\n\n\n<h2 id=\"alternatives\" class=\"wp-block-heading\">Alternativas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O Netdata vem com o WordOps e faz um \u00f3timo trabalho mostrando as estat\u00edsticas do seu servidor. Mas ele n\u00e3o tem os recursos de monitoramento proativo que o Monit oferece. Outras ferramentas como Kibana, Zabbix e Nagios tamb\u00e9m s\u00e3o populares, mas s\u00e3o mais dif\u00edceis de configurar e consomem mais recursos do sistema.<\/p>\n\n\n\n<h2 id=\"install-monit\" class=\"wp-block-heading\">Instalar o Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Felizmente, o Monit est\u00e1 inclu\u00eddo no reposit\u00f3rio do Ubuntu, portanto, vamos instal\u00e1-lo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install monit<\/code><\/pre>\n\n\n\n<h2 id=\"basic-configuration\" class=\"wp-block-heading\">Configura\u00e7\u00e3o b\u00e1sica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O arquivo de configura\u00e7\u00e3o principal do Monit est\u00e1 localizado em <code>\/etc\/monit\/monitrc<\/code>. Antes de editar, \u00e9 uma boa ideia criar um backup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/etc\/monit\/monitrc \/etc\/monit\/monitrc.backup<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por padr\u00e3o, o Monit verifica os servi\u00e7os a cada 2 minutos (120 segundos). Voc\u00ea pode modificar esse valor no arquivo editando a linha abaixo. Preferimos que as verifica\u00e7\u00f5es ocorram a cada 1 minuto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>definir daemon 60<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O Monit vem com seu pr\u00f3prio servidor de e-mail, mas como precisamos de algo mais robusto e j\u00e1 configuramos o Sendmail, vamos us\u00e1-lo como nosso MTA, apontando a configura\u00e7\u00e3o para localhost (esse par\u00e2metro \u00e9 comentado por padr\u00e3o, portanto, basta colar acima dele):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>definir servidor de correio eletr\u00f4nico localhost<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O <code>formato de correio<\/code> define todos os aspectos da sua estrutura de e-mail, portanto, voc\u00ea precisar\u00e1 descomentar todas as suas linhas, e a configura\u00e7\u00e3o m\u00ednima \u00e9 apenas alterar seu e-mail FROM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>de: Monit &lt;<span \n                data-original-string='a\/sJ51UQN+Qv9YAi+uuiLA==a66G4DBOmyEBLUtg\/4aJ7u53F3kDiDKZ5cbRXHyYVguKpI='\n                class='apbct-email-encoder'\n                title='Esse contato foi codificado pelo Anti-Spam da CleanTalk. Clique para decodificar. Para concluir a decodifica\u00e7\u00e3o, certifique-se de que o JavaScript esteja ativado em seu navegador.'>mo<span class=\"apbct-blur\">************<\/span>@<span class=\"apbct-blur\">*****<\/span>le.com<\/span>&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Defina um e-mail que receber\u00e1 todos os alertas da Monit, normalmente seu pr\u00f3prio e-mail comercial:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>definir alerta <span \n                data-original-string='qgtsdqgUmT3tfCGhb3QDAg==a665i7Y26sk3UNNvR\/79e3wY\/YjDHoqX+4rti2awKcZt2A='\n                class='apbct-email-encoder'\n                title='Esse contato foi codificado pelo Anti-Spam da CleanTalk. Clique para decodificar. Para concluir a decodifica\u00e7\u00e3o, certifique-se de que o JavaScript esteja ativado em seu navegador.'>al<span class=\"apbct-blur\">****<\/span>@<span class=\"apbct-blur\">*****<\/span>le.com<\/span><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O Monit usa sua interface HTTP incorporada para fornecer uma p\u00e1gina de status baseada na Web e para lidar com comandos de linha de comando. Mesmo que n\u00e3o queira ativar a interface da Web, voc\u00ea deve fornecer um bloco de configura\u00e7\u00e3o v\u00e1lido e completo para estabelecer um ponto de extremidade e gerenciar adequadamente o Monit.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>definir a porta 2812 do httpd e usar o endere\u00e7o localhost\n permitir localhost\n allow admin:monit # requer o usu\u00e1rio 'admin' com a senha 'monit'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir o acesso remoto, altere <code><em>localhost<\/em><\/code> para o IP ou dom\u00ednio do servidor apropriado e defina as credenciais de autentica\u00e7\u00e3o segura.<\/p>\n\n\n\n<h2 id=\"include-additional-configuration-files\" class=\"wp-block-heading\">Incluir arquivos de configura\u00e7\u00e3o adicionais:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m de seu arquivo de configura\u00e7\u00e3o principal, o Monit pode incluir arquivos de configura\u00e7\u00e3o adicionais de <code><em>\/etc\/monit\/conf-enabled\/<\/em><\/code>. Adicionaremos v\u00e1rios monitores dentro desse diret\u00f3rio, abrangendo a maioria dos servi\u00e7os que usamos em nosso servidor, mas vamos come\u00e7ar com o mais importante, a seguran\u00e7a.<\/p>\n\n\n\n<h3 id=\"monitor-successful-ssh-logins\" class=\"wp-block-heading\">Monitorar logins SSH bem-sucedidos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esse \u00e9 um primeiro alerta crucial, pois precisamos saber sempre que algu\u00e9m faz um login bem-sucedido em nosso servidor via SSH. Esse alerta foi fornecido por <a href=\"https:\/\/www.elitmus.com\/blog\/technology\/using-monit-to-get-email-alert-on-unauthorized-login\/\">Shireesh na Elitmus<\/a> e o nomearemos <em><code>ssh_logins.conf<\/code><\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>verificar o arquivo ssh_logins com o caminho \/var\/log\/auth.log\n  ignorar a correspond\u00eancia \"\/etc\/monit\/whitelist_ips.regex\"\n  se corresponder a \"Accepted publickey\", ent\u00e3o alertar<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adicione um IP por linha no arquivo <em><code>\/etc\/monit\/whitelist_ips.regex<\/code><\/em> ou comente\/remova-o se quiser receber todos os alertas.<\/p>\n\n\n\n<h3 id=\"monitor-the-lemp-stack\" class=\"wp-block-heading\">Monitorar a pilha LEMP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nome apropriado <em>lemp.conf<\/em> Esse monitor abrange os recursos de nossos sistemas, como armazenamento, CPU e RAM, NGINX, PHP e MySQL, que, no nosso caso, \u00e9 o MariaDB. A f\u00f3rmula para <em>carregarvg<\/em> \u00e9 1,5 * n\u00famero de n\u00facleos da CPU:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Verifique o uso do sistema de arquivos no sistema de arquivos raiz\nVerifique o sistema de arquivos rootfs com o caminho \/\n    se o uso do espa\u00e7o &gt; 90%, alertar # Alertar se o uso do espa\u00e7o em disco exceder 90%\n\n# Verificar as m\u00e9tricas de desempenho do sistema no localhost\nverificar sistema localhost\n    if loadavg (1min) &gt; 6 then alert # Alerta se a m\u00e9dia de carga de 1 minuto exceder 6\n    se loadavg (5min) &gt; 4 then alert # Alerta se a m\u00e9dia de carga de 5 minutos exceder 4\n    se o uso de mem\u00f3ria &gt; 90% ent\u00e3o alerta # Alerta se o uso de mem\u00f3ria exceder 90%\n    # Alerta se o uso da CPU exceder 80% por 15 verifica\u00e7\u00f5es consecutivas\n    se o uso da CPU &gt; 80% por 15 ciclos, ent\u00e3o alerta # Uso total da CPU\n    Se o uso da CPU (usu\u00e1rio) &gt; 70%, alerta # Uso da CPU do usu\u00e1rio\n    Se o uso da cpu (sistema) &gt; 30%, alertar # Uso da CPU do sistema\n    se cpu usage (wait) &gt; 20% ent\u00e3o alerta # Uso da CPU de espera de E\/S\n\n# Verificar o processo do servidor da Web Nginx (HTTPS)\nverificar o processo nginx com o arquivo pid \/var\/run\/nginx.pid\n    start program = \"\/usr\/sbin\/service nginx start\"\n    stop program = \"\/usr\/sbin\/service nginx stop\"\n    se cpu &gt; 80% por 2 ciclos, ent\u00e3o alerta # Alerta se o uso da CPU exceder 80% por 2 verifica\u00e7\u00f5es consecutivas\n    se houver falha no host 127.0.0.1 porta 443 protocolo https, reinicie # Reinicie se o Nginx n\u00e3o estiver respondendo em HTTPS\n\n# Verifique o processo do servidor de banco de dados MySQL\nVerifique o processo mysqld com o arquivo de pid \/var\/run\/mysqld\/mysqld.pid\n    start program = \"\/usr\/sbin\/service mysql start\"\n    stop program = \"\/usr\/sbin\/service mysql stop\"\n    se cpu &gt; 80% por 2 ciclos, ent\u00e3o alerta # Alerta se o uso da CPU exceder 80% por 2 verifica\u00e7\u00f5es consecutivas\n    if failed unixsocket \/var\/run\/mysqld\/mysqld.sock then restart # Reinicie o MySQL se o soquete Unix n\u00e3o estiver respondendo\n\n# Verifique o processo PHP-FPM para o PHP 8.3\nverificar o processo php8.3-fpm com pidfile \/var\/run\/php\/php8.3-fpm.pid\n    iniciar programa = \"\/usr\/sbin\/service php8.3-fpm start\"\n    stop program = \"\/usr\/sbin\/service php8.3-fpm stop\"\n    se cpu &gt; 80% por 2 ciclos, ent\u00e3o alerta # Alerta se o uso da CPU exceder 80% por 2 verifica\u00e7\u00f5es consecutivas<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-redis\" class=\"wp-block-heading\">Monitorar o Redis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos adicionar o monitoramento do Redis em um arquivo separado, <em><code>redis.conf<\/code><\/em>j\u00e1 que ele n\u00e3o \u00e9 crucial para a execu\u00e7\u00e3o do WordPress e pode ser desativado, se necess\u00e1rio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Monitoramento do Redis (usando soquete Unix)\nVerifique o processo redis com o arquivo pid \/var\/run\/redis\/redis-server.pid\n    programa de in\u00edcio = \"\/usr\/sbin\/service redis-server start\"\n    stop program = \"\/usr\/sbin\/service redis-server stop\"\n    \n    # Monitoramento de recursos do processo\n    se o uso da CPU for maior que 80% por 5 ciclos, ent\u00e3o alerta\n    se o uso da mem\u00f3ria for &gt; 75%, ent\u00e3o alerta\n    se crian\u00e7as &gt; 255 por 5 ciclos, ent\u00e3o alerta\n    \n    grupo redis\n\n# Verifique se h\u00e1 erros no arquivo de registro do Redis\nVerifique o arquivo redis_log com o caminho \/var\/log\/redis\/redis-server.log\n    se corresponder a \"ERROR\", alertar\n    se corresponder a \"CRITICAL\", ent\u00e3o alerta\n    grupo redis<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-fail2ban\" class=\"wp-block-heading\">Monitor Fail2Ban<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usando a mesma metodologia, vamos adicionar <em><code>fail2ban.conf<\/code><\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Verificar o processo fail2ban com o arquivo pid \/var\/run\/fail2ban\/fail2ban.pid\n    servi\u00e7os de grupo\n    iniciar programa = \"\/etc\/init.d\/fail2ban force-start\"\n    stop program = \"\/etc\/init.d\/fail2ban stop\"\n    se houver falha no unixsocket \/var\/run\/fail2ban\/fail2ban.sock, reinicie\n    se houver 5 reinicializa\u00e7\u00f5es em 5 ciclos, o tempo limite ser\u00e1 atingido\n\nverifique o arquivo fail2ban_log com o caminho \/var\/log\/fail2ban.log\n    se corresponder a \"ERROR|WARNING\", ent\u00e3o alertar<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-clamav\" class=\"wp-block-heading\">Monitorar o ClamAV<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Precisamos saber se o ClamAV, que instalamos anteriormente, encontrou algum v\u00edrus ou malware em nosso servidor, portanto, nosso <em><code>clamav.conf<\/code><\/em> parece isso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Observe o arquivo de registro do ClamAV em busca de altera\u00e7\u00f5es que indiquem uma detec\u00e7\u00e3o\nverifique o arquivo clamav_log com o caminho \/var\/log\/clamav\/clamav.log\n  se corresponder a \"FOUND\", ent\u00e3o alertar<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-the-integrity-of-sensitive-files\" class=\"wp-block-heading\">Monitorar a integridade de arquivos confidenciais<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O Monit pode observar arquivos importantes ou aqueles que provavelmente n\u00e3o devem ser alterados com frequ\u00eancia e nos alerta sempre que isso acontece. Essa atividade \u00e9 normalmente chamada de \"monitoramento da integridade do arquivo\", portanto, nosso arquivo conf tem o nome <em><code>fim.conf<\/code><\/em> e, dentro dele, voc\u00ea pode listar seus arquivos da seguinte forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Monitoramento do arquivo de configura\u00e7\u00e3o do WordPress quanto a altera\u00e7\u00f5es\nVerifique o arquivo wp_config com o caminho \/var\/www\/example.com\/wp-config.php\n    se a soma de verifica\u00e7\u00e3o for alterada, alertar\n\nVerifique o arquivo whitelist_ips com o caminho \/etc\/monit\/whitelist_ips.regex\n    se a soma de verifica\u00e7\u00e3o for alterada, o alerta ser\u00e1 emitido<\/code><\/pre>\n\n\n\n<h2 id=\"enable-and-start-the-monit-service\" class=\"wp-block-heading\">Ativar e iniciar o servi\u00e7o Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Habilite o Monit para iniciar automaticamente na inicializa\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable monit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, inicie o servi\u00e7o Monit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start monit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode verificar o status do servi\u00e7o Monit com:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status monit<\/code><\/pre>\n\n\n\n<h2 id=\"testing-the-monit-configuration\" class=\"wp-block-heading\">Teste da configura\u00e7\u00e3o do Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de colocar sua configura\u00e7\u00e3o do Monit em produ\u00e7\u00e3o, teste-a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo monit -t\nsudo monit reload\nsudo monit status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O <code>status de monitoramento<\/code> listar\u00e1 todos os servi\u00e7os e processos que est\u00e3o sendo monitorados atualmente pelo Monit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se houver erros de configura\u00e7\u00e3o, o Monit os exibir\u00e1, e voc\u00ea poder\u00e1 corrigi-los adequadamente.<\/p>","protected":false},"featured_media":0,"parent":47233,"menu_order":3,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-47276","docs","type-docs","status-publish","hentry","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/comments?post=47276"}],"version-history":[{"count":1,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47276\/revisions"}],"predecessor-version":[{"id":47277,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47276\/revisions\/47277"}],"up":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs\/47233"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/media?parent=47276"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/pt\/wp-json\/wp\/v2\/docs_category?post=47276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}