Nella guida " Come installare e configurare Sensu Monitoring su CentOS 7 ", hai imparato come configurare un server Sensu. Questa esercitazione è la seconda parte, in cui imparerai come aggiungere un client Sensu. Un client Sensu è un server monitorato da Sensu.
Presumo che il client Sensu sia una macchina virtuale CentOS 7. Accedi a SSH e segui i passaggi seguenti. Non dovrai modificare nulla sul server Sensu. Finché il client Sensu si autentica correttamente con il server Sensu, i controlli verranno eseguiti automaticamente.
Prima di iniziare, assicurati che il tuo firewall sia configurato correttamente. Con un'impostazione predefinita, aprire le porte TCP in uscita 5671e 5672.
Passaggio 1: aggiungere il repository Sensu
Il pacchetto sensu-clientnon si trova nei repository CentOS predefiniti. Aggiungi il repository incollando il seguente contenuto nel file /etc/yum.repos.d/sensu.repo:
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1
Successivamente, aggiorna yume installa sensu-client:
yum update
yum install sensu
Tutti i servizi ( sensu-server, sensu-cliente sensu-api) saranno installati con l'installazione del sensupacchetto. Puoi tranquillamente ignorare tutti i servizi tranne quello sensu-clientche useremo. Non avviare ancora il servizio.
Passaggio 2: installare i plug-in necessari
Il modello di Sensu è distribuire il carico sui client risultante dall'esecuzione dei controlli e dalla trasmissione dei risultati dei controlli. Di conseguenza, è necessario installare i plug-in Sensu sui client stessi anziché sul server Sensu. Alcuni plugin sono compilati localmente, il che significa che avremo bisogno di strumenti di compilazione sui client:
yum groupinstall "Development tools"
I seguenti plugin sono molto popolari e utilizzati per molti controlli. Eseguire ciascuno di questi comandi per installare i plug-in dopo aver installato i pacchetti degli strumenti di sviluppo. A seconda delle dimensioni del server, ciò potrebbe richiedere del tempo:
sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks
Passaggio 3: aggiungere i file di configurazione
Aggiungeremo quattro file di configurazione al client Sensu.
-
/etc/sensu/conf.d/client.json:
Questo file contiene abbonamenti, l'indirizzo IP per il client Sensu e il nome del client. Sostituisci i valori ipaddresse hostnamecon i valori che descrivono il client che stai aggiungendo. Inoltre, specifica gli abbonamenti definiti sul server Sensu o, se non ne hai, rimuovi l'intera subscriptionssezione. Non dimenticare di rimuovere la virgola dopo namese lo fai:
{
"client": {
"address": "-----ipaddress-----",
"environment": "production",
"name": "-----hostname-----",
"subscriptions": [
"linux"
]
}
}
-
/etc/sensu/conf.d/transport.json:
In questo file, definiamo il trasporto utilizzato. Per impostazione predefinita, il trasporto utilizzato è RabbitMQ. Incolla i seguenti contenuti nel file. Nessun valore deve essere modificato:
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
-
/etc/sensu/conf.d/rabbitmq.json:
Il server RabbitMQ e le credenziali sono specificati in questo file. Sostituisci hostnamecon il nome DNS. Per impostazione predefinita, la porta è 5672per connessioni non crittografate. Anche l'utente e la password RabbitMQ devono essere sostituiti. Questi dettagli possono differire per ciascun client Sensu o essere uguali per tutti i client. Questa è una decisione pratica che viene presa dall'utente.
Il vhostè /di default, ma è spesso cambiato in /sensu. Se non sei sicuro di quale utilizzare, prova entrambi:
{
"rabbitmq": {
"host": "-----hostname-----",
"password": "-----rabbitmq_password-----",
"port": 5672,
"user": "-----username-----",
"vhost": "/sensu"
}
}
-
/etc/sensu/conf.d/checks.json:
Sensu supporta due tipi di controlli: controlli autonomi e controlli di abbonamento. I controlli delle sottoscrizioni sono definiti sul server Sensu e le sottoscrizioni sono definite nel client.jsonfile su un client Sensu. I controlli autonomi sono controlli definiti sui client Sensu stessi. Si tratta in genere di controlli che si applicano solo a un server specifico. Ad esempio, un controllo che sarebbe in un abbonamento è un controllo per vedere se il web server è ancora in esecuzione. Un controllo autonomo potrebbe essere un controllo per vedere se il server A può raggiungere il server B. Nessun altro server ha bisogno di quel controllo.
I controlli autonomi sono definiti in questo file. Di seguito troverai un esempio di un checks.jsonfile con alcuni esempi di controlli autonomi:
{
"checks": {
"httpd": {
"command": "sudo check-process.rb -p httpd",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
},
"mysqld": {
"command": "sudo check-process.rb -p mysqld",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
}
}
}
Dopo aver completato la configurazione del client Sensu, modificare i diritti:
chown -R sensu:sensu /etc/sensu/conf.d
Passaggio 4: concedere le autorizzazioni sensuall'utente
I controlli vengono eseguiti come utente sensu. Naturalmente, questo utente ha diritti limitati. Tuttavia, alcuni controlli richiedono rootautorizzazioni per l'esecuzione. Consentiremo all'utente sensudi eseguire qualsiasi controllo poiché rootlimiteremo le sue altre autorizzazioni.
Incolla i seguenti contenuti nel file /etc/sudoers.d/sensu:
Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *
Le prime due righe definiscono il percorso predefinito che consente di specificare solo il nome dello script nel comando check anziché l'intero percorso. Ad esempio, semplicemente usando il comando sudo check-process.rb -p mysqldfunzionerà senza dover specificare l'intero percorso ( /opt/sensu/embedded/bin/check-process.rb -p mysqld).
Le altre righe consentono sensuall'utente di eseguire qualsiasi script di controllo come root.
Infine, avvia il sensu-clientservizio e avvialo automaticamente all'avvio:
systemctl start sensu-client
systemctl enable sensu-client
Se hai installato Uchiwa, il nuovo client dovrebbe apparire nell'elenco. In caso contrario, eseguire il debug sensu-clientispezionando il file di registro/var/log/sensu/sensu-client.log