Linux è molto popolare nei server: il sistema operativo Open Source ha la reputazione di essere stabile e affidabile. Tuttavia, se siete un sysadmin e vi occupate di uno o più server Linux, probabilmente vorrete monitorare la salute e le prestazioni delle vostre macchine (e ricevere avvisi quando necessario).
Checkmk supporta diverse distribuzioni Linux. La componente server è disponibile come pacchetto di installazione (.deb
e .rpm
), come appliance virtuale e come contenitore Docker. Anche la versione Linux dell'agente Checkmk è facile da installare: Si tratta di un semplice script di shell (/usr/bin/check_mk_agent
) che richiama vari altri comandi (come df
, mount
, ps
, ecc.) per raccogliere dati sul file system, sulla CPU, sui dispositivi di rete, ecc.
È anche possibile estendere le funzionalità dell'agente con dei plug-in. In questo post presenteremo sette plug-in di Checkmk che si rivelano utili per il monitoraggio dei server Linux.
Plug-in al vostro servizio
I plug-in di Checkmk sono piccoli script o programmi richiamati dall'agente per raccogliere dati aggiuntivi sui computer monitorati. Esistono due tipi di plug-in:
- Plugin di controllo
- Plugin dell'agente
Circa 2.000 plug-in di controllo sono forniti con Checkmk, cioè sono presenti sul server. Oltre ai check plug-in, esistono circa 100 agent plug-in. Questi devono essere installati sul sistema monitorato. La maggior parte dei plug-in menzionati in questo articolo sono plug-in agenti. Alcuni di essi richiedono una configurazione (in/etc/check_mk
) per funzionare correttamente, altri funzionano subito. Per saperne di più sulle opzioni di configurazione, consultate la documentazione dei plug-in o controllate il codice sorgente.
Se si utilizza Checkmk Raw, è possibile installare i plug-in copiandoli nella directory plug-in dell'agente Linux (/usr/lib/check_mk_agent/plugins
); ricordardatevi di rendere i file eseguibili (chmod +x
). Poiché alcuni plug-in hanno un tempo di esecuzione molto lungo e non devono essere aggiornati ogni minuto, è possibile memorizzarli in sottodirectory denominate dopo un certo numero di secondi per eseguirli in modo asincrono.
I clienti di Checkmk Enterprise o Checkmk Cloud possono utilizzare l'agent bakery per installare i plug-in e generare automaticamente i file di configurazione.
Per trovare e scaricare i plug-in dell'agente in Checkmk Raw e per sapere come installare automaticamente i plug-in utilizzando una delle edizioni commerciali di Checkmk tramite Agent Bakery, consultate il nostro manuale.
Ecco i 7 migliori plug-in per il monitoraggio dei server Linux con Checkmk.
1. Packet Management
Il vostro distributore di Linux pubblica regolarmente aggiornamenti software e patch per risolvere bug e vulnerabilità di sicurezza. È importante installare i pacchetti aggiornati per mantenere sicuro il sistema operativo. Invece di controllare manualmente ogni server per gli aggiornamenti, potete usare Checkmk per monitorare il sistema di gestione dei pacchetti della vostra distribuzione.
Se si utilizzano server basati su Debian, si può usare il plugin mk_apt
per monitorare il gestore di pacchetti APT. Il plug-in mk_zypper
controlla la disponibilità di aggiornamenti tramite zypper sui sistemi SUSE Linux Enterprise Server e openSUSE, e se siete utenti di sistemi basati su Red-Hat. yum
utenti di sistemi basati su Red-Hat, controllate questo plug-in.
Tutti e tre i plug-in raggiungono lo stato di avviso per gli aggiornamenti regolari dei pacchetti e critico per gli aggiornamenti di sicurezza.
Suggerimento: È una buona idea installare i plug-in con esecuzione asincrona; non è necessario controllare gli aggiornamenti più di una volta al giorno.
2. Inventario
Il sistema di inventario HW/SW di Checkmk raccoglie informazioni sull'hardware e sul software installato negli host. Il plug-in mk_inventory
può non solo fornire informazioni sull'hardware/software esistente nel server Linux ("Quanta RAM/spazio swap ha la macchina?", "Quante CPU e core?", "Quali dei miei server hanno installato un certo pacchetto", ecc.).
È sufficiente installare mk_inventory.linux
sui server Linux. In Checkmk Enterprise o Checkmk Cloud è possibile distribuire il plug-in dell'agente con la regola Hardware/Software-Inventory (Linux, Windows, Solaris, AIX) in Setup.
Successivamente, attivare il controllo dell'inventario con la regola Esegui inventario hardware/software in Setup. Per ogni host selezionato, verrà visualizzato un nuovo controllo chiamato Checkmk HW/SW Inventory. È possibile visualizzare i risultati tramite Mostra inventario hardware/software di questo host, sfogliare la struttura ad albero, aggiungere i dati dell'inventario come visualizzazione personalizzata o esportarli in altri formati. Inoltre, è possibile impostare i parametri per questo controllo, in modo da essere avvisati delle modifiche.
3. Numero di utenti connessi
Se volete monitorare il numero di utenti attualmente connessi, potete installare il plugin mk_logins
. Esso combina i due comandi "who"
e "wc -l"
per ricevere informazioni sugli utenti connessi. In Checkmk Enterprise o Checkmk Cloud, è possibile distribuire il plug-in agente con la regola Numero di utenti connessi (Linux) in Configurazione.
La configurazione predefinita emette un avviso se il numero supera 20 e raggiunge il livello critico se il numero è 30 o più. È possibile modificare la regola e ridefinire i numeri come si ritiene opportuno. Ad esempio, si può impostare la soglia a 1 per i server in cui normalmente nessuno accede. Inoltre, è possibile configurare periodi di tempo e specificare diversi livelli di avviso/critica.
Suggerimento: Su uno dei miei server, ho modificato il plug-in in modo che escluda il mio indirizzo IP della connessione dial-up aggiungendo un semplice comando grep
:
#!/bin/bash
[...]
if type who >/dev/null; then
echo "<<<logins>>>"
who | grep -v 203.0.113.0 | wc -l
fi
4. Demone SSH
Forse avete disabilitato il login di root, cambiato la porta SSH predefinita da 22 a qualcos'altro o attivato l'autenticazione con chiavi pubbliche/private per il vostro server SSH. In questo caso, se si desidera monitorare il proprio /etc/ssh/sshd_config
, è possibile installare il plug-in mk_sshd_config
. La regola dell'agente per distribuire il plug-in con Checkmk Enterprise o Checkmk Cloud può essere trovata e configurata in Configurazione -> Configurazione del demone SSH (Linux). Il plug-in controlla i parametri di sicurezza della configurazione del demone SSH e avvisa l'utente nel caso in cui una o più opzioni siano state modificate. È possibile modificare la maggior parte dei parametri configurando la regola Configurazione del demone SSH.
Se il vostro server SSH non usa /etc/ssh/sshd_config
ma un file di configurazione diverso, modificate semplicemente il plug-in nel vostro editor di testo preferito e cambiate la variabile SSHD_CONFIG
.
Qualunque sia la vostra configurazione, verificate che il firewall sia aperto per consentire le connessioni alla porta SSH (di default 22, ma è consigliabile cambiarla). Eseguire il programma sull'host da monitorare:
iptables -nvL
e se si notano pacchetti caduti nella catena INPUT sulla porta SSH, è necessario aprirla:
iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
Con ufw, si tratta semplicemente di eseguire
ufw allow 22/tcp
Oppure, se si utilizza firewalld:
firewall-cmd --permanent --add-port=22/tcp
Checkmk può verificare la presenza di un firewall non configurato correttamente, iptables o uno dei suoi moderni frontend come ufw e firewalld, con il plugin mk_iptables
plug-in dell'agente.
5. Database MySQL
I database fanno parte della nostra vita informatica moderna e sono una componente vitale di molti servizi. Che ci sia o meno un server di database dedicato, assicurarsi che il database sia attivo e funzionante è uno dei compiti di ogni amministratore di sistema, anche se non si è amministratori di database. Per tenere sotto controllo lo stato del database, il numero di sessioni aperte o le statistiche di IO, Checkmk è qui per aiutarvi. Il plug-in dell'agente mk_mysql
è tutto ciò che serve per ottenere le informazioni di base sui database. Se si desiderano dati più specifici, altri plug-in lavorano sui dati forniti da mk_mysql
:
mysql_sessions
controllare le sessioni MySQL (sia attive che inattive).mysql_connections
tenere traccia delle connessioni al databasemysql_slave
per monitorare lo stato di sincronizzazione dei database primari MySQL.mysql_ping
per verificare semplicemente se il demone MySQL è vivo e accetta connessioni.mysql_innodb_io
per verificare la velocità di I/O del motore InnoDB.mysql_version
per capire la versione di MySQL.mysql_capacity
per sapere quanto spazio è utilizzato dal database.
Non dimenticate il plug-in agent stesso, che deve essere installato per far funzionare i plug-in di controllo: mk_mysql
. Come al solito, mettete l'agente in /usr/lib/check_mk_agent/plugins
, assicuratevi che sia eseguibile e sarete pronti a tenere sotto controllo i vostri database MySQL. In alternativa, con Checkmk Enterprise o Checkmk Cloud, è possibile inserire il plug-in direttamente nel pacchetto dell'agente per facilitarne l'installazione. Per fare ciò, è necessario cercare e configurare la regola dell'agente Database MySQL in Setup.
6. LVM
Sia per le prestazioni che per motivi organizzativi, la suddivisione delle partizioni del disco in volumi logici è una pratica comune sui server. LVM è stato lo standard in Linux per molti anni e, come si può immaginare a questo punto, può essere monitorato con Checkmk. Il plug-in necessario per iniziare il monitoraggio si chiama lvm
. La regola dell'agente in Checkmk Enterprise o Checkmk Cloud si trova in Configurazione -> LVM, Gruppi di volumi logici (Linux). Sono disponibili altri plug-in che consentono di monitorare in modo specifico i volumi logici (lvm_lvs
) e gruppi di volumi (lvm_vgs
).
7. SMART monitoring
Tenere costantemente sotto controllo lo stato di salute delle unità fisiche è fondamentale. A nessuno fa piacere che un disco muoia improvvisamente. Anche se è possibile recuperare completamente i dati, sapere in anticipo che qualcosa non è in ordine può far risparmiare all'amministratore saggio molto tempo e stress.
Il monitoraggio SMART non è in grado di prevedere con precisione quando sostituire un'unità in avaria, ma può indicare se è il caso di prepararsi al peggiore degli scenari. In Linux, il pacchetto standard per accedere alle informazioni S.M.A.R.T. è smartmontools
. La configurazione va oltre lo scopo di questo articolo, ma è sufficiente dire che una volta installato, Checkmk interrogherà lo strumento a riga di comando fornito con esso, smartctl
per ottenere i dati sullo stato di salute delle unità.
Per farlo, Checkmk utilizza il plug-in smart
che interagisce con smartctl
stesso. In una delle edizioni commerciali di Checkmk, è possibile trovare e configurare la regola dell'agente in Configurazione -> Monitoraggio del disco rigido SMART (Linux). Altri plug-in sono smart_stats
, che monitora le statistiche di salute, e smart_temp
che riporta la temperatura.