{"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\/es\/docs\/initial-server-setup\/how-to-install-and-configure-monit-to-watch-and-monitor-your-servers\/","title":{"rendered":"C\u00f3mo instalar y configurar Monit para vigilar y monitorizar sus servidores"},"content":{"rendered":"<p class=\"is-style-text-annotation is-style-text-annotation--1 wp-block-paragraph\">Este art\u00edculo asume que utilizar\u00e1 el Servidor Ubuntu 20.04 o 24.04.<\/p>\n\n\n\n<h2 id=\"motivation\" class=\"wp-block-heading\">Motivaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Monit es una herramienta sencilla y ligera para monitorizar y gestionar servicios, procesos, archivos y sistemas de archivos en su servidor Linux. Sus capacidades proactivas lo convierten en una gran opci\u00f3n para la automatizaci\u00f3n de servidores. A continuaci\u00f3n se detallan los pasos para instalar, configurar y utilizar Monit en Ubuntu Server 20.04 y 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\">Netdata viene con WordOps y hace un gran trabajo mostrando las estad\u00edsticas de su servidor. Pero no tiene las caracter\u00edsticas de monitoreo proactivo que ofrece Monit. Otras herramientas como Kibana, Zabbix y Nagios tambi\u00e9n son populares, pero son m\u00e1s dif\u00edciles de configurar y consumen m\u00e1s recursos del sistema.<\/p>\n\n\n\n<h2 id=\"install-monit\" class=\"wp-block-heading\">Instalar Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Por suerte, Monit est\u00e1 incluido en el repositorio del Ubuntu, as\u00ed que vamos a instalarlo:<\/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\">Configuraci\u00f3n b\u00e1sica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El archivo de configuraci\u00f3n principal de Monit se encuentra en <code>\/etc\/monit\/monitrc<\/code>. Antes de editar, es una buena idea crear una copia de seguridad:<\/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 defecto, Monit comprueba los servicios cada 2 minutos (120 segundos). Puede modificar este valor en el archivo editando la l\u00ednea siguiente. Preferimos que las comprobaciones se realicen cada 1 minuto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set daemon 60<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Monit viene con su propio servidor de correo, pero como necesitamos algo m\u00e1s robusto y ya hemos configurado Sendmail, vamos a usarlo como nuestro MTA, apuntando la configuraci\u00f3n a localhost (este par\u00e1metro est\u00e1 comentado por defecto, as\u00ed que puedes simplemente pegar encima):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set mailserver localhost<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En <code>formato de correo<\/code> definen todos los aspectos de la estructura de su correo electr\u00f3nico, por lo que tendr\u00e1 que descomentar todas sus l\u00edneas, y la configuraci\u00f3n m\u00ednima es s\u00f3lo cambiar su direcci\u00f3n de correo electr\u00f3nico FROM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>de: Monit &lt;<span \n                data-original-string='DrnYl9P4r9vHkWMhDInMLw==a66OuGQDFgRj1cyK3ve10U9CO8dm3zBqI2Rl1TWzuoEs0I='\n                class='apbct-email-encoder'\n                title='Este contacto ha sido codificado por Anti-Spam by CleanTalk. Haz clic para decodificar. Para finalizar la decodificaci\u00f3n, aseg\u00farate de que JavaScript est\u00e1 activado en tu 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\">Establezca un correo electr\u00f3nico que recibir\u00e1 todas las alertas de Monit, normalmente el correo electr\u00f3nico de su propia empresa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>establecer alerta <span \n                data-original-string='Q\/mpdVxb\/iFr1e4KOnjT0g==a66T4FCerK\/7vo2GSUeZruVJ\/FfX01iW3tPKpQetdT2+WY='\n                class='apbct-email-encoder'\n                title='Este contacto ha sido codificado por Anti-Spam by CleanTalk. Haz clic para decodificar. Para finalizar la decodificaci\u00f3n, aseg\u00farate de que JavaScript est\u00e1 activado en tu 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\">Monit utiliza su interfaz HTTP integrada tanto para proporcionar una p\u00e1gina de estado basada en web como para manejar comandos de l\u00ednea de comandos. Incluso si no desea habilitar la interfaz web, debe proporcionar un bloque de configuraci\u00f3n v\u00e1lido y completo para establecer un punto final y gestionar Monit correctamente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>establezca el puerto httpd 2812 y utilice la direcci\u00f3n localhost\n permitir localhost\n allow admin:monit # require user 'admin' with password 'monit'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir el acceso remoto, cambie <code><em>localhost<\/em><\/code> a la IP o dominio del servidor apropiado, y establezca las credenciales de autenticaci\u00f3n segura.<\/p>\n\n\n\n<h2 id=\"include-additional-configuration-files\" class=\"wp-block-heading\">Incluir archivos de configuraci\u00f3n adicionales:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aparte de su archivo de configuraci\u00f3n principal, Monit puede incluir archivos de configuraci\u00f3n adicionales de <code><em>\/etc\/monit\/conf-enabled\/<\/em><\/code>. A\u00f1adiremos varios monitores dentro de este directorio, cubriendo la mayor\u00eda de los servicios que utilizamos en nuestro servidor, pero empecemos por el m\u00e1s importante, la seguridad.<\/p>\n\n\n\n<h3 id=\"monitor-successful-ssh-logins\" class=\"wp-block-heading\">Supervisar los inicios de sesi\u00f3n SSH correctos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es una primera alerta crucial, ya que necesitamos saber cada vez que alguien hace un inicio de sesi\u00f3n con \u00e9xito en nuestro servidor a trav\u00e9s de SSH. Esta alerta fue proporcionada por <a href=\"https:\/\/www.elitmus.com\/blog\/technology\/using-monit-to-get-email-alert-on-unauthorized-login\/\">Shireesh en Elitmus<\/a> y lo llamaremos <em><code>ssh_logins.conf<\/code><\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>comprobar archivo ssh_logins con ruta \/var\/log\/auth.log\n  ignorar coincidencia \"\/etc\/monit\/whitelist_ips.regex\"\n  si coincide con \"Accepted publickey\" entonces alerta<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1ade una IP por l\u00ednea en el archivo <em><code>\/etc\/monit\/whitelist_ips.regex<\/code><\/em> o com\u00e9ntalo\/elim\u00ednalo si quieres recibir todas las alertas.<\/p>\n\n\n\n<h3 id=\"monitor-the-lemp-stack\" class=\"wp-block-heading\">Supervisar la pila LEMP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Acertadamente llamado <em>lemp.conf<\/em> este monitor cubre los recursos de nuestros sistemas, como almacenamiento, CPU y RAM, NGINX, PHP y MySQL, que en nuestro caso es MariaDB. La f\u00f3rmula para <em>loadavg<\/em> es 1,5 * n\u00famero de n\u00facleos de CPU:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Comprueba el uso del sistema de archivos ra\u00edz\ncomprueba el sistema de archivos rootfs con la ruta \/\n    si el uso de espacio &gt; 90% entonces alerta # Alerta si el uso de espacio en disco excede 90%\n\n# Comprueba las m\u00e9tricas de rendimiento del sistema en localhost\ncomprobar sistema localhost\n    if loadavg (1min) &gt; 6 then alert # Alerta si la media de carga de 1 minuto supera 6\n    if loadavg (5min) &gt; 4 then alert # Alerta si la media de carga de 5 minutos supera el 4\n    si el uso de memoria &gt; 90% entonces alerta # Alerta si el uso de memoria excede 90%\n    # Alerta si el uso de la CPU supera 80% durante 15 comprobaciones consecutivas\n    si el uso de cpu &gt; 80% durante 15 ciclos entonces alerta # Uso total de CPU\n    si uso CPU (usuario) &gt; 70% entonces alerta # Uso CPU Usuario\n    si uso cpu (sistema) &gt; 30% entonces alerta # Uso CPU Sistema\n    if cpu usage (wait) &gt; 20% then alert # Uso de CPU en espera de E\/S\n\n# Comprueba el proceso del servidor web Nginx (HTTPS)\ncomprobar proceso nginx con pidfile \/var\/run\/nginx.pid\n    start programa = \"\/usr\/sbin\/service nginx start\"\n    stop programa = \"\/usr\/sbin\/service nginx stop\"\n    if cpu &gt; 80% for 2 cycles then alert # Alerta si el uso de la CPU supera los 80% durante 2 comprobaciones consecutivas\n    si falla host 127.0.0.1 puerto 443 protocolo https entonces reiniciar # Reiniciar si Nginx no responde en HTTPS\n\n# Compruebe el proceso del servidor de base de datos MySQL\ncompruebe el proceso mysqld con pidfile \/var\/run\/mysqld\/mysqld.pid\n    start programa = \"\/usr\/sbin\/service mysql start\"\n    stop programa = \"\/usr\/sbin\/service mysql stop\"\n    if cpu &gt; 80% for 2 cycles then alert # Alerta si el uso de la CPU supera los 80% durante 2 comprobaciones consecutivas\n    if failed unixsocket \/var\/run\/mysqld\/mysqld.sock then restart # Reinicie MySQL si el socket Unix no responde\n\n# Comprueba el proceso PHP-FPM para PHP 8.3\nrevise el proceso php8.3-fpm con el archivo pid \/var\/run\/php\/php8.3-fpm.pid\n    iniciar programa = \"\/usr\/sbin\/service php8.3-fpm start\"\n    stop programa = \"\/usr\/sbin\/service php8.3-fpm stop\"\n    si cpu &gt; 80% durante 2 ciclos entonces alerta # Alerta si el uso de CPU excede 80% durante 2 comprobaciones consecutivas<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-redis\" class=\"wp-block-heading\">Supervisar Redis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a a\u00f1adir la monitorizaci\u00f3n de Redis en un archivo separado, <em><code>redis.conf<\/code><\/em>ya que no es crucial para el funcionamiento de WordPress y puede desactivarse si es necesario:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Monitorizaci\u00f3n de Redis (usando socket Unix)\ncomprobar proceso redis con pidfile \/var\/run\/redis\/redis-server.pid\n    start programa = \"\/usr\/sbin\/service redis-server start\"\n    stop programa = \"\/usr\/sbin\/service redis-server stop\"\n    \n    # Monitorizaci\u00f3n de los recursos del proceso\n    si el uso de cpu &gt; 80% durante 5 ciclos entonces alerta\n    si uso de memoria &gt; 75% entonces alerta\n    si children &gt; 255 durante 5 ciclos entonces alerta\n    \n    grupo redis\n\n# Comprueba si hay errores en el archivo de registro de Redis\ncomprueba el archivo redis_log con la ruta \/var\/log\/redis\/redis-server.log\n    si coincide con \"ERROR\" entonces alerta\n    si coincide \"CRITICAL\" entonces 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\">Utilizando la misma metodolog\u00eda, a\u00f1adamos <em><code>fail2ban.conf<\/code><\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>comprobar proceso fail2ban con pidfile \/var\/run\/fail2ban\/fail2ban.pid\n    grupo servicios\n    start programa = \"\/etc\/init.d\/fail2ban force-start\"\n    stop programa = \"\/etc\/init.d\/fail2ban stop\"\n    si falla unixsocket \/var\/run\/fail2ban\/fail2ban.sock entonces reiniciar\n    si 5 reinicios en 5 ciclos entonces timeout\n\ncomprueba el archivo fail2ban_log con la ruta \/var\/log\/fail2ban.log\n    si coincide con \"ERROR|WARNING\" entonces alerta<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-clamav\" class=\"wp-block-heading\">Supervisar ClamAV<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos saber si ClamAV, que instalamos anteriormente, encuentra alg\u00fan virus o malware en nuestro servidor, por lo que nuestro <em><code>clamav.conf<\/code><\/em> mira esto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Observe el archivo de registro de ClamAV en busca de cambios que indiquen una detecci\u00f3n\ncomprueba el archivo clamav_log con la ruta \/var\/log\/clamav\/clamav.log\n  if match \"FOUND\" then alert<\/code><\/pre>\n\n\n\n<h3 id=\"monitor-the-integrity-of-sensitive-files\" class=\"wp-block-heading\">Supervisar la integridad de los archivos sensibles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Monit puede vigilar los archivos importantes o aquellos que probablemente no deber\u00edan cambiar tan a menudo y nos alerta cada vez que eso ocurre. Esta actividad se suele llamar \"monitorizaci\u00f3n de la integridad de los archivos\", as\u00ed que nuestro archivo conf se llama <em><code>fim.conf<\/code><\/em> y dentro de \u00e9l puedes listar tus archivos as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Comprobaci\u00f3n de cambios en el archivo de configuraci\u00f3n de WordPress\ncomprueba el archivo wp_config con la ruta \/var\/www\/ejemplo.com\/wp-config.php\n    si se cambia la suma de comprobaci\u00f3n entonces alerta\n\ncompruebe el archivo whitelist_ips con la ruta \/etc\/monit\/whitelist_ips.regex\n    si cambia la suma de comprobaci\u00f3n, alerta<\/code><\/pre>\n\n\n\n<h2 id=\"enable-and-start-the-monit-service\" class=\"wp-block-heading\">Activar e iniciar el servicio Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Permite que Monit se inicie autom\u00e1ticamente al arrancar:<\/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\">A continuaci\u00f3n, inicie el servicio 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\">Puede comprobar el estado del servicio Monit con:<\/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\">Probar la configuraci\u00f3n de Monit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de poner su configuraci\u00f3n de Monit en producci\u00f3n, pru\u00e9bela:<\/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\">En <code>estado del monitor<\/code> listar\u00e1 todos los servicios y procesos actualmente monitorizados por Monit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si hay errores de configuraci\u00f3n, Monit los mostrar\u00e1 y usted podr\u00e1 corregirlos en consecuencia.<\/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\/es\/wp-json\/wp\/v2\/docs\/47276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/comments?post=47276"}],"version-history":[{"count":1,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/docs\/47276\/revisions"}],"predecessor-version":[{"id":47277,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/docs\/47276\/revisions\/47277"}],"up":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/docs\/47233"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/media?parent=47276"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/docs_category?post=47276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}