Introduzione a Monit per il monitoraggio del server

Contenuti

Monit è un programma di monitoraggio del server in grado di controllare i processi in esecuzione sul sistema per assicurarsi che siano sempre online e in esecuzione entro limiti ragionevoli di CPU e memoria. Inoltre è dotato di un'interfaccia web per monitorare il tuo sistema.

Cosa fa Monit?

Semplicemente, Monit verificherà una determinata procedura ogni due minuti (per impostazione predefinita) para ver cómo está funcionando. Mantiene un registro del uso de recursos y puede tomar medidas si se produce un error. Esto incluye relanzar procesos bloqueados y reiniciar procesos que usan demasiados recursos.

Monit establece su comportamiento totalmente a través de archivos de configuración. Aquí está la configuración predeterminada para MySQL como ejemplo:

check process mysql
  with pidfile /var/run/mysqld/mysqld.pid
  start program = "/usr/sbin/service mysql start" with timeout 60 seconds
  stop program = "/usr/sbin/service mysql stop" with timeout 60 seconds
  if totalmem > 400 MB for 5 cycles then alert
  if totalmem > 600 MB for 5 cycles then restart
  if cpu > 50% per 5 cycles then alert
  if cpu > 90% per 5 cycles then restart
  if 3 restarts within 5 cycles then timeout

Monit está configurado para monitorear el procedimiento de MySQL en ejecución. Si se cae, puede iniciarlo de nuevo con el start program = config. Si MySQL comienza a utilizar demasiados recursos, se puede reiniciar automáticamente, aún cuando primero se le advertirá por email.

Además se puede configurar para monitorear su sistema como un todo y puede alertarle si su servidor está experimentando una carga inusual.

check system wp01
  if loadavg(5min) > 1 then alert
  if memory usage > 90% per 5 cycles then alert
  if cpu usage (utente) > 90% per 5 cycles then alert

Todo lo que Monit supervisa se puede ver desde la interfaz web, que se ejecuta en el puerto 2812 per impostazione predefinita.

Allo stesso tempo, puede ver los datos de varios hosts en un solo lugar con el Utilidad M / Monit, que necesita una licencia pero es gratuito para probar.

IMPARENTATO: Come impostare le notifiche di Slack per spazio su disco insufficiente sul tuo server

Monit installazione e configurazione

Installa Monit da il gestore di pacchetti della tua distribuzione; per sistemi basati su Debian come Ubuntu, sarebbe:

sudo apt-get install monit

Monit dovrebbe venire con le impostazioni predefinite, generalmente situato in ~/.monitrc. Se non l'hai fatto (come nel caso di un'installazione macOS), puoi trovare i file di configurazione predefiniti qui.

L'interfaccia web di Monit è configurata per essere eseguita sulla porta 2812. Va bene, pero está totalmente abierta de forma predeterminada con una contraseña predeterminada. Queremos bloquearlo en una dirección IP autorizada y

set httpd port 2812
    allow your_ip
    allow admin:parola d'ordine

Cambie esta contraseña, in ogni caso. C'è un algunas opciones de configuración más para la interfaz web, pero esto es bueno por ahora.

Successivamente, Monit se puede configurar para monitorear procesos individuales. Generalmente, esto se hace con el archivo PID de procesos (que a menudo se encuentra en /var/run/) que almacena el PID actual de la instancia en ejecución de ese procedimiento, puesto que el PID cambiará cada vez que se reinicie el procedimiento.

check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"

Deberá pasar un comando a Monit para iniciar y detener su procedimiento. Debería reiniciarse automáticamente si el procedimiento falla, sin configuración adicional, pero si desea reiniciar según el uso de recursos, tendrá que especificarlo usted mismo con algunos if dichiarazioni:

check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"
    if totalmem > 600 MB for 5 cycles then restart
    if cpu > 90% per 5 cycles then restart
    if 3 restarts within 5 cycles then timeout

Monit enviará alertas cada vez que se reinicie algo, por lo que se le notificará cuando algo esté mal.

Una vez que haya terminado con la configuración, vuelva a cargar el demonio monit con:

monitorare la ricarica

E inizia a monitorare con:

mon inizia tutto

Questo dovrebbe anche avviare l'interfaccia web, che puoi utilizzare per verificare che Monit funzioni correttamente, generalmente in esecuzione nel porto 2812.

Questa è la configurazione di base per Monit per funzionare fuori dalla scatola, ma Monit ha molta più sintassi. Puoi leggi il manuale completo fondamentalmente cosa può fare Monit per saperne di più.

Configura avvisi

Monit se puede configurar para enviar alertas por email siempre que se produzcan problemas importantes o cuando se reinicien los procesos. Deberá agregar la configuración para su servidor de correo:

set mailserver smtp.gmail.com
  port 587
  nome utente "[email protected]"
  parola d'ordine "secret"
  with timeout 60 seconds

set eventqueue
  basedir /var/lib/monit/events
  slots 100

El primer bloque establece el servidor de correo a usar. El método más sencillo sería utilizar smtp.gmail.com con una cuenta de Gmail, anche se puoi installare Postfix sul tuo server per eseguirlo localmente o utilizzare un servizio di posta elettronica aziendale.

La seconda riga dice a Monit di mettere in coda gli avvisi, se il server di posta non è raggiungibile per qualsiasi motivo.

Evidentemente, devi anche configurare l'indirizzo email a cui invii:

imposta l'avviso [email protected]

Allo stesso tempo, poiché Monit ha la capacità di eseguire script con il exec comando, puoi impostare avvisi personalizzati come preferisci. Come esempio, puoi impostare uno script per inviarti notifiche da Slack, almacenarlo como /usr/local/bin/slack-webhook.shy ejecútelo siempre que nginx cambie el PID o sea reiniciado por Monit:

check process nginx with pidfile /var/run/nginx.pid
  start program = "/etc/init.d/nginx start"
  stop program = "/etc/init.d/nginx stop"
  if changed pid then exec "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"
  Se 1 restart within 1 cycle then exec "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"

Si prega di notare che tutte le rotte devono essere completamente classificate, incluso /bin/bash e percorsi per gli eseguibili nella tua sede bin. E una volta che hai finito di modificare i file di configurazione, dovrai ricaricare Monit.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.