Graylog è uno strumento di gestione dei registri open source che consente di raccogliere, indicizzare e analizzare centralmente i registri delle macchine. Questa guida ti aiuterà a installare Graylog su CentOS 7 / RHEL 7.
Componenti
- MongoDB – Essendo un database per memorizzare le configurazioni e le metainformazioni.
- Elasticsearch – Memorizza i messaggi di registro ricevuti dal server Graylog e fornisce una funzione per cercarli quando necessario. Elasticsearch è un generatore di risorse in quanto esegue l'indicizzazione dei dati, quindi alloca più memoria e utilizza dischi SAS o SAN.
- Server Graylog:esegue l'analisi dei registri provenienti da vari input e fornisce un'interfaccia Web integrata per gestire tali registri.
Prerequisiti
Assicurati che il tuo sistema sia configurato con il repository EPEL.
Installa i pacchetti richiesti per l'installazione di Graylog.
yum -y install wget pwgen
Elasticsearch richiede che Java sia installato sulla macchina. Quindi, installa OpenJDK o Oracle JDK.
yum install -y java-1.8.0-openjdk-headless
Verifica la versione Java.
versione java
Risultato:
openjdk versione "1.8.0_191"OpenJDK Runtime Environment (build 1.8.0_191-b12)OpenJDK 64-Bit Server VM (build 25.191-b12, modalità mista)
Installa Elasticsearch
Elasticsearch è uno dei componenti importanti nella configurazione di Graylog. Memorizza i dati provenienti dall'input di Graylog e visualizza i messaggi ogni volta che un utente lo richiede tramite l'interfaccia Web integrata di Graylog.
Qui Elasticseach viene utilizzato principalmente per indicizzare i dati/registri e fornire la funzionalità di ricerca quando l'interfaccia Web Graylog richiede informazioni.
Questa guida copre la configurazione di base richiesta per Graylog.
Importa la chiave di firma GPG prima dell'installazione.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Crea un file di repository per ottenere l'ultima versione del pacchetto Elasticsearch dal repository ufficiale.
vi /etc/yum.repos.d/elasticsearch.repo
Aggiungi il contenuto sottostante al file sopra.
[elasticsearch-6.x]name=repository Elasticsearch per packagesbaseurl 6.x=https://artifacts.elastic.co/packages/6.x/ymgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
Ora installa il pacchetto Elasticsearch usando il comando yum.
yum install -y elasticsearch
Ricarica il demone systemctl e abilita Elasticsearch per l'avvio automatico all'avvio del sistema.
systemctl daemon-reloadsystemctl enable elasticsearch
Per far funzionare Elasticsearch con la configurazione di Graylog, dobbiamo impostare il nome del cluster su graylog
. Modifica il file elasticsearch.yml.
vi /etc/elasticsearch/elasticsearch.yml
Aggiornalo come mostrato di seguito.
cluster.name:graylog
Riavvia Elasticsearch.
systemctl riavvia elasticsearch
Concediti un minuto per consentire il riavvio completo di Elasticsearch. Elastisearch dovrebbe ora essere in ascolto su 9200 per l'elaborazione delle richieste HTTP. Usa il comando CURL per controllare la risposta.
curl -X OTTIENI http://localhost:9200
Il nome del cluster deve essere graylog.
{ "name" :"DF8QK3-", "cluster_name" :"graylog", "cluster_uuid" :"_wAgUfN9RJeQ0npCKBswVA", "version" :{ "number" :"6.6.0", "build_flavor" :"default ", "build_type" :"rpm", "build_hash" :"a9861f4", "build_date" :"2019-01-24T11:27:09.439740Z", "build_snapshot" :false, "lucene_version" :"7.6.0" , "minimum_wire_compatibility_version" :"5.6.0", "minimum_index_compatibility_version" :"5.0.0" }, "tagline" :"Sai, per la ricerca"}
Esegui un controllo dello stato del cluster Elasticsearch.
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Assicurati che lo stato del cluster sia verde .
{ "cluster_name" :"graylog", "status" :"green", "timed_out" :false, "number_of_nodes" :1, "number_of_data_nodes" :1, "active_primary_shards" :0, "active_shards" :0, "relocating_shards" :0, "initializing_shards" :0, "unassigned_shards" :0, "delayed_unassigned_shards" :0, "number_of_pending_tasks" :0, "number_of_in_flight_fetch" :0, "task_max_waiting_in_queue_millis" :0, "active_ashards_number"_percent:1.0 }Installa MongoDB
MongoDB funge da database per memorizzare le configurazioni e le meta informazioni. Utilizzeremo il repository ufficiale di MongoDB per ottenere l'ultima versione di MongoDB.
vi /etc/yum.repos.d/mongodb-org-4.0.repoAggiungi le informazioni sul repository al file sopra.
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-4.0.ascInstalla l'edizione community di MongoDB utilizzando il comando seguente.
yum install -y mongodb-orgAvvia il servizio MongoDB e abilitalo all'avvio del sistema.
systemctl avvia mongodsystemctl abilita mongodInstalla Graylog
Il server Graylog accetta ed elabora i messaggi di log provenienti dai vari input, mostra i dati alle richieste che provengono dall'interfaccia web del graylog.
Scarica e installa il repository graylog 3.x.
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpmInstalla il server Graylog usando il comando seguente.
yum -y install graylog-serverModifica il file server.conf per iniziare la configurazione del graylog.
vi /etc/graylog/server/server.confUsa il comando seguente per creare un segreto
pwgen -N 1 -s 96Risultato:
OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPInserisci il segreto come di seguito in server.conf
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gPImposta la password hash per l'utente root, ovvero admin di graylog. Avresti bisogno di questa password per accedere al web graylog.
Se desideri modificare/reimpostare la password dimenticata dell'amministratore, puoi modificare/aggiornare server.conf con una password con hash.
Genera una password con hash usando il comando seguente. Sostituisci la tua password a tua scelta.
eco -n la tua password | sha256sommaRisultato:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Inserisci la password hash.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951Puoi impostare un indirizzo email per l'utente amministratore.
root_email ="[email protected] "Imposta il fuso orario dell'utente root (amministratore).
root_timezone =UTCImposta un solo nodo master definendo la variabile sottostante, l'impostazione predefinita è true.
Se questo server è il tuo secondo nodo Graylog nel tuo ambiente, impostalo su false per rendere questo nodo come slave. Il nodo master esegue alcune attività periodiche che i nodi slave non eseguiranno.
is_master =veroImposta il numero di messaggi di registro da conservare per indice. Si consiglia di avere diversi indici più piccoli invece di quelli più grandi.
elasticsearch_max_docs_per_index =20000000Il parametro seguente definisce di avere un numero totale di indici. Se viene raggiunto questo numero, il vecchio indice verrà eliminato.
elasticsearch_max_number_of_indices =20L'impostazione degli shard si basa sul numero di nodi nel particolare cluster Elasticsearch. Se hai un solo nodo, impostalo come 1.
elasticsearch_shards =1Questo definisce il numero di repliche per i tuoi indici. Se hai un solo nodo nel cluster Elasticsearch, impostalo come 0.
elasticsearch_replicas =0Installa l'interfaccia web di Graylog
A partire dalla versione Graylog 2.x, l'interfaccia web è servita direttamente dal server Graylog. Abilita l'interfaccia web Graylog modificando il file server.conf.
vi /etc/graylog/server/server.confModificare le voci per consentire a Graylog Web Interface di connettersi al server Graylog. Sostituisci 192.168.1.10 con l'indirizzo IP del tuo sistema.
http_bind_address =192.168.1.10 :9000Riavvia il servizio Graylog.
systemctl daemon-reloadsystemctl riavvia graylog-serverFai in modo che il server Graylog si avvii automaticamente all'avvio del sistema.
systemctl abilita graylog-serverPuoi controllare i registri di avvio del server; ti sarà utile per risolvere Graylog per eventuali problemi.
tailf /var/log/graylog-server/server.logSe tutto va bene, dovresti vedere il messaggio sotto nel file server.log.
25-02-2019 T21:00:23.157+05:30 INFO [ServerBootstrap] Server Graylog attivo e funzionante.Firewall
In CentOS 7 / RHEL 7, le regole del firewall sono impostate per bloccare la maggior parte del traffico proveniente dalle macchine esterne per impostazione predefinita. Dovresti aggiungere regole di autorizzazione affinché Graylog funzioni correttamente.
firewall-cmd --permanent --add-port=9000/tcpRicarica firewalld per applicare le nuove regole.
firewall-cmd --reloadAccedi all'interfaccia web di Graylog
L'interfaccia web sarà ora in ascolto sulla porta 9000. Punta il tuo browser su.
http://ip.add.re.ss:9000Accedi con nome utente admin e la password che hai configurato in root_password_sha2 su server.conf .
Una volta effettuato l'accesso, vedrai la pagina introduttiva.
Fare clic su Sistema>> Panoramica per conoscere lo stato del server Graylog.
Crea ingressi Graylog
L'input del Graylog deve essere configurato per ricevere i registri da fonti esterne, ad esempio syslog o qualsiasi sistema di registrazione. Per questo esempio, imposteremo un input per la ricezione dei log da syslog sulla porta numero UDP 514.
Ma c'è un problema. Se inizi a provare un input su una delle porte privilegiate, qualsiasi numero di porta TCP/UDP inferiore a 1024, vedrai un errore di autorizzazione negata nei log di Graylog.
Per risolvere il problema, creeremo un input per iniziare sulla porta 1514 e reindirizzeremo il traffico proveniente da 514 a 1514 con regole firewall.
Fai clic su Sistema >> Input >> seleziona Syslog UDP e quindi fai clic su Avvia nuovo input.
Completa i valori mostrati di seguito.
Nodo: Seleziona il tuo nodo Graylog
Titolo: Dai un nome al tuo input
Indirizzo di associazione: 0.0.0.0 (lascia quello predefinito)
Porta: 1514
Assicurati che l'input Syslog creato sia in stato di esecuzione.
Configura Rsyslog
Una volta creati gli input, configura Rsyslog o inoltra qualsiasi registro di sistema al tuo server Graylog.
Modifica il file di configurazione di Rsyslog.
vi /etc/rsyslog.confLa configurazione tipica di Rsyslog sarà simile alla seguente per inviare i log su UDP 514.
Se non si desidera utilizzare UDP 514 e si desidera inviare i log direttamente all'UDP 1514 di Graylog, è possibile modificare il numero di porta nel file di configurazione di Rsyslog*.info;mail.none;authpriv.none;cron. nessuno @192.168.1.10:514Riavvia il servizio Rsyslog per inviare i log.
systemctl riavvia rsyslogFirewall
Configura il firewall in base alla configurazione di Rsyslog eseguita nel passaggio precedente.
Porta 514
Esegui i comandi seguenti sul server Graylog per reindirizzare il traffico che arriva sulla porta UDP 514 all'UDP 1514 dell'input Graylog.
firewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-port=port=514:proto=udp:toport=1514 --permanentfirewall-cmd --reloadPorta 1514
Esegui i comandi seguenti sul server Graylog per consentire al numero di porta UDP 1514 sul firewall di ricevere i registri da Rsyslog.
firewall-cmd --permanent --add-port=1514/udpfirewall-cmd --reloadVisualizza i registri utilizzando Graylog
Aspetta qualche minuto. Dovresti iniziare a ricevere messaggi di registro dal computer client quando viene generato l'evento.
La schermata seguente mostra i log ricevuti da Graylog (console Graylog >>Cerca h ).
Conclusione
Hai installato correttamente Graylog 3.0 su CentOS 7 / RHEL 7 e configurato Graylog per ricevere i registri Rsyslog da fonti esterne. Come ulteriore lettura, puoi provare a configurare Nginx o Apache come proxy inverso e impostare HTTPS per l'interfaccia Web Graylog.