Analisi dei log StorageGRID con stack ELK
Di Angela Cheng
Con la funzione di inoltro syslog di StorageGRID, è possibile configurare un server syslog esterno per raccogliere e analizzare i messaggi di registro StorageGRID. ELK (Elasticsearch, Logstash, Kibana) è diventata una delle soluzioni di analisi dei log più diffuse. Osservare la "Analisi del log StorageGRID con video ELK" per visualizzare una configurazione ELK di esempio e come può essere utilizzata per identificare e risolvere i problemi relativi alle richieste S3 non riuscite. StorageGRID 11,9 supporta l'esportazione del log di accesso agli endpoint del bilanciamento del carico nel server syslog esterno. Guarda questo "Video di YouTube" articolo per saperne di più su questa nuova funzionalità. Questo articolo fornisce file di esempio di configurazione di Logstash, query Kibana, grafici e dashboard per fornire un rapido avvio per la gestione dei log e l'analisi di StorageGRID.
Requisiti
-
StorageGRID 11.6.0.2 o superiore
-
ELK (Elasticsearch, Logstash e Kibana) 7.1x o superiore installato e in funzione
File di esempio
-
"Scarica il pacchetto di file di esempio Logstash 7.x." + checksum md5 148c23d0021d9a4bb4a6c0287464deab + checksum sha256 f51ec9e2e3f842d5a7861566b167a561beb4373038b4e7bb3c8be3d522adf2d6
-
"Scarica il pacchetto di file di esempio Logstash 8.x." + checksum md5 e11bae3a662f87c310ef363d0fe06835 + checksum sha256 5c670755742cfdfd5aa723a596ba087e0153a65bcaef3934afdb682f61cd278d
-
"Scaricare il pacchetto file di esempio Logstash 8.x per StorageGRID 11,9" + md5 checksum 41272857c4a54600f95995f6ed74800d + sha256 checksum 67048e8661052719990851e1ad960d4902fe537a6e135e8600177188da6779c9
Assunzione
I lettori conoscono la terminologia e le operazioni di StorageGRID ed ELK.
Istruzioni
Due versioni di esempio sono fornite a causa delle differenze nei nomi definiti dai modelli grok. Ad esempio, il modello SYSLOGBASE grok nel file di configurazione di Logstash definisce i nomi dei campi in modo diverso a seconda della versione di Logstash installata.
match => {"message" => '<%{POSINT:syslog_pri}>%{SYSLOGBASE} %{GREEDYDATA:msg-details}'}
Esempio di Logstash 7.17
Esempio di Logstash 8.23
Fasi
-
Decomprimere l'esempio fornito in base alla versione ELK installata. La cartella di esempio include due esempi di configurazione di Logstash: + sglog-2-file.conf: questo file di configurazione genera messaggi di log StorageGRID in un file su Logstash senza trasformazione dei dati. È possibile utilizzare questa opzione per confermare che Logstash riceve messaggi StorageGRID o per comprendere meglio i modelli di log di StorageGRID. + sglog-2-es.conf: questo file di configurazione trasforma i messaggi di log di StorageGRID utilizzando vari modelli e filtri. Include istruzioni drop di esempio, che consentono di eliminare i messaggi in base a modelli o filtri. L'output viene inviato a Elasticsearch per l'indicizzazione. + personalizzare il file di configurazione selezionato in base alle istruzioni contenute nel file.
-
Verificare il file di configurazione personalizzato:
/usr/share/logstash/bin/logstash --config.test_and_exit -f <config-file-path/file>
Se l'ultima riga restituita è simile alla riga seguente, il file di configurazione non presenta errori di sintassi:
[LogStash::Runner] runner - Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash
-
Copiare il file di configurazione personalizzato nella configurazione del server Logstash: /Etc/logstash/conf.d + se non si è abilitato config.reload.automatic in /etc/logstash/logstash.yml, riavviare il servizio Logstash. In caso contrario, attendere lo scadere dell'intervallo di ricarica della configurazione.
grep reload /etc/logstash/logstash.yml # Periodically check if the configuration has changed and reload the pipeline config.reload.automatic: true config.reload.interval: 5s
-
Controllare /var/log/logstash/logstash-plain.log e verificare che non ci siano errori durante l'avvio di Logstash con il nuovo file di configurazione.
-
Verificare che la porta TCP sia stata avviata e in attesa. + in questo esempio, viene utilizzata la porta TCP 5000.
netstat -ntpa | grep 5000 tcp6 0 0 :::5000 :::* LISTEN 25744/java
-
Dalla GUI di StorageGRID Manager, configurare il server syslog esterno per l'invio dei messaggi di log a Logstash. Per ulteriori informazioni, fare riferimento alla "video dimostrativo" .
-
È necessario configurare o disattivare il firewall sul server Logstash per consentire la connessione dei nodi StorageGRID alla porta TCP definita.
-
Dalla GUI di Kibana, selezionare Management (Gestione) → Dev Tools (Strumenti di sviluppo). Nella pagina Console, eseguire questo comando GET per confermare la creazione di nuovi indici in Elasticsearch.
GET /_cat/indices/*?v=true&s=index
-
Dalla GUI di Kibana, creare un modello di indice (ELK 7.x) o una vista dati (ELK 8.x).
-
Dalla GUI di Kibana, inserire "oggetti memorizzati" nella casella di ricerca situata in alto al centro. + nella pagina Saved Objects (oggetti salvati), selezionare Import (Importa). In Opzioni di importazione, selezionare "Richiedi azione in caso di conflitto"
Importa elk <version>-query-chart-sample.ndjson. + quando viene richiesto di risolvere il conflitto, selezionare il modello di indice o la vista dati creata al punto 8.
Vengono importati i seguenti oggetti Kibana: + Query + * audit-msg-s3rq-orlm + * bycast log S3 messaggi correlati + * avviso livello di accesso o superiore + * evento di sicurezza non riuscito + * nginx-gw log di accesso endpoint (disponibile solo in elk8-sample-for-sg119.zip) + grafico + * S3 conteggio richieste basato su bycast.log + * Codice di stato HTTP + * tipo di controllo + tempo di risposta medio del dashboard * S3 msg del dashboard * dati di analisi del dashboard * dati del tipo di analisi del dashboard * S3.
A questo punto, è possibile eseguire l'analisi del registro StorageGRID utilizzando Kibana.