Monit è uno strumento di monitoraggio del processo opensource per il sistema operativo Linux che ti aiuta a monitorare il processo di sistema utilizzando il browser web e anche ogni volta che lo richiede esegue automaticamente la manutenzione o la riparazione del particolare processo in modo tale che possa essere riportato online.
Monit può essere utilizzato anche per la gestione e il monitoraggio di programmi, file, directory e dispositivi per modifiche di timestamp, modifiche al checksum o modifiche alle dimensioni; non limitato a eseguire vari controlli di rete TCP/IP, controlli di protocollo e può utilizzare SSL per tali controlli.
Si registra nel suo file di registro e notifica all'utente tramite messaggi personalizzabili.
Questa guida ti aiuterà a installare Monit su CentOS 7 / RHEL 7.
Installa Monit
Abilita il repository EPEL per scaricare l'ultima versione di Monit.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installa Monit usando il comando YUM.
yum -y install monit
Avvia il monitoraggio usando il comando seguente.
monit
Risultato:
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
Controlla lo stato di monitoraggio.
monit status
Risultato:
Monit 5.25.1 uptime: 0m System 'server.itzgeek.local' status OK monitoring status Monitored monitoring mode active on reboot start load average [0.01] [0.05] [0.04] cpu 0.0%us 0.0%sy 0.0%wa memory usage 170.2 MB [29.0%] swap usage 0 B [0.0%] uptime 4m boot time Sun, 09 Feb 2020 04:55:42 data collected Sun, 09 Feb 2020 05:00:00
Configura Monitor
Il file di configurazione principale di Monit è /etc/monitrc. Apporteremo alcune modifiche al file di configurazione di Monit per i nostri requisiti.
vi /etc/monitrc
Per impostazione predefinita, monit è impostato per controllare i servizi a intervalli di 30 secondi. Questa impostazione può essere modificata modificando la riga sottostante.
set daemon 30
Gli avvisi possono essere configurati da.
set mailserver mx.itzgeek.local port 25
I modelli di avviso possono essere trovati nel file di configurazione stesso. Vedi gli extra in fondo a questo articolo.
L'impostazione dei registri può essere modificata utilizzando il seguente file.
set log /var/log/monit
Abilita interfaccia Web Monitor
Monit fornisce anche un'interfaccia web per il monitoraggio e la gestione dei servizi configurati. Per impostazione predefinita, monit è in ascolto sulla porta 2812, ma deve essere configurato.
Modifica il file di configurazione di monitoraggio.
vi /etc/monitrc
Cerca la porta httpd 2812, modifica le seguenti voci.
DA:
set httpd port 2812 and use address localhost # only accept connection from localhost allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
A:
set httpd port 2812 and use address 0.0.0.0 # only accept connection 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' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
Dalle impostazioni di cui sopra, monit sarà in ascolto su 2812 e l'utente amministratore potrà accedere all'interfaccia web da qualsiasi rete.
Ricarica monitor.
systemctl restart monit
Avvia automaticamente il monitoraggio all'avvio.
systemctl enable monit
Configura il firewall per consentire l'accesso all'interfaccia web di Monit, in esecuzione sulla porta 2812.
firewall-cmd --permanent --add-port=2812/tcp firewall-cmd --reload
Accedi all'interfaccia web di monitoraggio
Apri il tuo browser web e vai all'URL sottostante.
http://tuo.ip.addr.ess:2812O
http://tuo.fq.dn:2812Utilizza il nome utente e la password menzionati nel passaggio precedente.
La home page di Monit apparirà come sotto.
Configura i servizi per il monitoraggio con Monit
Una volta installata l'interfaccia web, possiamo iniziare a configurare i servizi che vogliamo monitorare.
È possibile posizionare i file di configurazione del monitoraggio del servizio nella directory /etc/monit.d/.
Configura per il servizio SSH.
vi /etc/monit.d/sshdmonitor
Usa le informazioni di seguito.
check process sshd with pidfile /var/run/sshd.pid start program "/usr/bin/systemctl start sshd.service" stop program "/usr/bin/systemctl stop sshd.service" if failed port 22 protocol ssh then restart
Configura il servizio per syslog.
vi /etc/monit.d/syslogmonitor
Usa le informazioni di seguito.
check process syslogd with pidfile /var/run/syslogd.pid start program = "/usr/bin/systemctl start rsyslog.service" stop program = "/usr/bin/systemctl stop rsyslog.service"
Servizio di configurazione per HTTP.
vi /etc/monit.d/httpdmonitor
Usa le informazioni di seguito.
check process httpd with pidfile /var/run/httpd/httpd.pid start program "/usr/bin/systemctl start httpd.service" stop program "/usr/bin/systemctl stop httpd.service" if failed port 80 protocol http then restart
Una volta configurata, verifica la sintassi di monitoraggio
monit -t
Uscita:
Control file syntax OK
Ricaricalo, per rendere effettive le modifiche.
monit reload
Accedi all'interfaccia web. Dovresti vedere i nuovi servizi che abbiamo configurato proprio ora.
Cliccando sui servizi otterrai maggiori informazioni sul particolare servizio. Qui puoi eseguire azioni come avviare, interrompere e riavviare il servizio e anche disabilitare il monitoraggio.
Monitoraggio test
Ora interrompi il servizio HTTP per i nostri test.
systemctl stop httpd
Attendi 30 secondi, monit avvierà automaticamente il syslog. Puoi trovarlo nel log di monitoraggio.
cat /var/log/monit.log
Uscita:
[UTC Feb 9 05:18:00] error : 'httpd' process is not running [UTC Feb 9 05:18:00] info : 'httpd' trying to restart [UTC Feb 9 05:18:00] info : 'httpd' start: '/usr/bin/systemctl start httpd.service' [UTC Feb 9 05:18:31] info : 'httpd' process is running with pid 1959
Avvisi e-mail con Monit
In Monit sono disponibili modelli di avviso predefiniti per avvisare gli amministratori di sistema in caso di guasto di un particolare servizio.
Modifica il file di configurazione.
vi /etc/monitrc
Puoi aggiornare il modello di avviso di seguito in base alle tue esigenze.
set mail-format { from: Monit <monit@$HOST> subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION Your faithful employee, Monit @ ITzGeek }
Imposta qui l'indirizzo del destinatario. Nota:riceverai avvisi su tutti i tipi di azioni
set alert root@localhost
Se desideri non avvisarti al riavvio del servizio avviato dall'utente, aggiungi la configurazione seguente.
set alert root@localhost not on { instance, action }
Infine, imposta la configurazione del server di posta in modo da poter ricevere la posta. Qui sto usando il relè locale in modo da poter leggere l'avviso di posta sul terminale per verificare il test.
set mailserver localhost
Ricarica il servizio.
monit reload
Esempio di avviso
Monit ha inviato e-mail all'utente root sul processo HTTP.
cat /var/spool/mail/root
Posta:
From [email protected] Sun Feb 9 05:22:48 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id 670E21082B34 for <root@localhost>; Sun, 9 Feb 2020 05:22:48 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Does not exist httpd Date: Sun, 09 Feb 2020 05:22:48 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Does not exist Service httpd Date: Sun, 09 Feb 2020 05:22:48 Action: restart Host: server.itzgeek.local Description: process is not running Your faithful employee, Monit @ ITzGeek From [email protected] Sun Feb 9 05:23:18 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id B22AF1082B37 for <root@localhost>; Sun, 9 Feb 2020 05:23:18 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Exists httpd Date: Sun, 09 Feb 2020 05:23:18 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Exists Service httpd Date: Sun, 09 Feb 2020 05:23:18 Action: alert Host: server.itzgeek.local Description: process is running with pid 2139 Your faithful employee, Monit @ ITzGeek
O
Usa il client di posta elettronica Mutt (yum install -y mutt).
Conclusione
È tutto. Abbiamo configurato correttamente Monit su CentOS 7 / RHEL 7.