Graylog (precedentemente noto come Graylog2) è una piattaforma di gestione dei registri open source, che consente di raccogliere, indicizzare e analizzare i registri di qualsiasi macchina in una posizione centralizzata. Questa guida ti aiuta a installare Graylog2 su Ubuntu 15.04, concentrandoti anche sull'installazione di altri quattro componenti che rendono Graylog2 uno strumento di gestione dei registri completo di potenza.
Componenti:
1. MongoDB:memorizza le configurazioni e le meta informazioni.
2. Elasticsearch:memorizza i messaggi di registro e offre una funzione di ricerca, i nodi dovrebbero avere memoria elevata poiché tutte le operazioni di I/O avvengono qui.
3. GrayLog – Parser di log, raccoglie i log da vari input.
4. Interfaccia Web GrayLog =fornisce il portale basato sul Web per la gestione dei registri.
Prerequisiti:
Poiché Elasticsearch è basato su java, sarebbe necessario installare openJDK o Oracle JDK. Si consiglia di installare Oracle JDK, verificare la versione java utilizzando il comando seguente.
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
Installa Elasticsearch:
Elasticsearch è un server di ricerca open source, offre una ricerca e analisi distribuite in tempo reale con interfaccia web RESTful. Elasticsearch archivia tutti i log inviati dal server Graylog e visualizza i messaggi quando l'interfaccia Web graylog richiede il riempimento completo della richiesta dell'utente tramite l'interfaccia Web. Questo argomento copre le impostazioni di configurazione necessarie per Graylog, puoi anche dare un'occhiata a Install Elasticsearch su CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1 per istruzioni dettagliate.
Installiamo Elasticsearch, può essere scaricato dal sito ufficiale.
Scarica e installa la chiave di firma GPG.
$ sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Salva la definizione del repository in /etc/apt/sources.list.d/elasticsearch.list
$ echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch.list
Aggiorna la cache del repository.
$ sudo apt-get update
Installa Elasticsearch.
$ sudo apt-get install elasticsearch
Configura Elasticsearch per l'avvio durante l'avvio del sistema.
$ sudo systemctl start elasticsearch $ sudo systemctl enable elasticsearch
L'unica cosa importante è impostare un nome cluster come "graylog2 “, utilizzato da graylog. Ora modifica il file di configurazione di Elasticsearch.
$ sudo nano /etc/elasticsearch/elasticsearch.yml cluster.name: graylog2
Disabilita gli script dinamici per evitare l'esecuzione remota, operazione che può essere eseguita aggiungendo la riga seguente alla fine del file precedente.
script.disable_dynamic: true
Una volta fatto, siamo a posto. Prima di ciò, riavvia i servizi Elasticsearch per caricare la configurazione modificata.
$ sudo systemctl restart elasticsearch
Attendi almeno un minuto per consentire il riavvio completo di Elasticsearch, altrimenti il test avrà esito negativo. Elastisearch dovrebbe ora essere in ascolto su 9200 per l'elaborazione della richiesta HTTP, possiamo usare CURL per ottenere la risposta. Assicurati che venga restituito con il nome del cluster "graylog2 ”
$ curl -X GET http://localhost:9200 { "status" : 200, "name" : "Pistol", "cluster_name" : "graylog2", "version" : { "number" : "1.7.1", "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19", "build_timestamp" : "2015-07-29T09:54:16Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" }
Facoltativo: Utilizza il comando seguente per verificare lo stato del cluster Elasticsearch, devi ottenere uno stato del cluster come "verde ” affinché graylog funzioni.
$ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' { "cluster_name" : "graylog2", "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 }
Installa MongoDB:
MongoDB è disponibile in formato dep e lo stesso può essere scaricato dal sito ufficiale. Aggiungi le seguenti informazioni sul repository sul sistema per installare MongoDB. Prima di ciò dobbiamo importare la chiave pubblica.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Aggiungi il repository creando il file di elenco /etc/apt/sources.list.d/mongodb-org-3.0.list utilizzando il comando.
### Ubuntu 15.04 / 14.10 ### $ echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Aggiorna la cache del repository.
$ sudo apt-get update
Installa MongoDB usando il seguente comando.
$ sudo apt-get install mongodb-org
Avvia il servizio MongoDB e abilitalo all'avvio automatico durante l'avvio del sistema.
$ sudo systemctl start mongod $ sudo systemctl enable mongod
Installa Graylog2:
Graylog-server accetta ed elabora i messaggi di registro, genera anche la RESTAPI per le richieste che provengono da graylog-web-interface. Scarica l'ultima versione di graylog da graylog.org, usa il seguente comando per scaricare usando il terminale.
$ wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.1.6.tgz
Estrailo e spostalo in /opt.
$ sudo tar -zxvf graylog-1.1.6.tgz $ sudo mv graylog-1.1.6/ /opt/graylog
Copia il file di configurazione di esempio in /etc/graylog/server, crea la directory se non esiste.
$ sudo mkdir -p /etc/graylog/server $ sudo cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
Modifica il file server.conf.
$ sudo nano /etc/graylog/server/server.conf
Configura le seguenti variabili nel file sopra.
Imposta un segreto per proteggere le password degli utenti, utilizza il comando seguente per generare un segreto, utilizza almeno 64 caratteri.
$ pwgen -N 1 -s 96 OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gP
Se ricevi un "pwgen:comando non trovato “, usa il comando seguente per installare pwgen.
$ sudo apt-get install pwgen
Metti il segreto.
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gP
Successivamente è impostare una password hash per l'utente root (da non confondere con l'utente di sistema, l'utente root di graylog è admin). Utilizzerai questa password per accedere all'interfaccia web, la password dell'amministratore non può essere modificata utilizzando l'interfaccia web, devi modificare questa variabile per impostarla.
Sostituisci "la tua password ” con la scelta della tua.
# echo -n yourpassword | sha256sum e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Inserisci la password hash.
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951
Graylog proverà a trovare automaticamente i nodi Elasticsearch, utilizza la modalità multicast per lo stesso. Ma quando si tratta di reti più grandi, si consiglia di utilizzare la modalità unicast, la più adatta per le configurazioni di produzione. Quindi aggiungi le seguenti due voci al file graylog server.conf, sostituisci indirizzo IP con nome host o indirizzo IP live. È possibile aggiungere più host separati da virgole.
elasticsearch_http_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = ipaddress:9300
Imposta un solo nodo master definendo la variabile sottostante, l'impostazione predefinita è true, devi impostarla come false per rendere il nodo particolare come slave. Il nodo master esegue alcune attività periodiche che lo slave non eseguirà.
is_master = true
La seguente variabile imposta il numero di messaggi di log da conservare per indice, si consiglia di avere diversi indici più piccoli invece di quelli più grandi.
elasticsearch_max_docs_per_index = 20000000
Il parametro seguente definisce di avere il numero totale di indici, se questo numero viene raggiunto, il vecchio indice verrà eliminato.
elasticsearch_max_number_of_indices = 20
L'impostazione degli shard dipende in realtà dal numero di nodi nel cluster Elasticsearch, se hai un solo nodo, impostalo come 1.
elasticsearch_shards = 1
Il numero di repliche per i tuoi indici, se hai un solo nodo nel cluster Elasticsearch; impostalo come 0.
elasticsearch_replicas = 0
Avvia il server graylog usando il seguente comando.
$ sudo cp /opt/graylog/bin/graylogctl /etc/init.d/graylog2
Aggiorna lo script di avvio per inserire i log di Graylog2 in /var/log e per cercare il file JAR del server Graylog2 in /opt/graylog eseguendo i due seguenti comandi sed:
$ sudo sed -i -e 's/\=graylog.jar/\=\/opt\/graylog\/graylog.jar/g' /etc/init.d/graylog2 $ sudo sed -i -e 's/\=log/\=\/var\/log/g' /etc/init.d/graylog2
Installa lo script di avvio.
$ sudo update-rc.d graylog2 defaults
Avvia il servizio Graylog.
$ sudo service graylog2 start
All'avvio corretto di graylog-server, dovresti ricevere il seguente messaggio nel file di registro (/var/log/graylog-server.log).
2015-09-07 17:41:21,407 INFO : org.graylog2.shared.initializers.RestApiService - Started REST API at <http://127.0.0.1:12900/>
Installa l'interfaccia web di Graylog:
Per configurare graylog-web-interface, devi avere almeno un nodo graylog-server; scarica lo stesso numero di versione per assicurarti che sia compatibile
$ wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.1.6.tgz
Estrai l'archivio e spostalo in /opt.
$ sudo tar -zxvf graylog-web-interface-1.1.6.tgz $ sudo mv graylog-web-interface-1.1.6 /opt/graylog-web-interface
Modifica il file di configurazione e imposta i seguenti parametri.
$ sudo nano /opt/graylog-web-interface/conf/graylog-web-interface.conf
Questo è l'elenco dei nodi graylog-server, puoi aggiungere più nodi, separati da virgole.
graylog2-server.uris="http://127.0.0.1:12900/"
Imposta lo script dell'applicazione e può essere generato usando pwgen -N 1 -s 96.
application.secret="sNXyFf6B4Au3GqSlZwq7En86xp10JimdxxYiLtpptOejX6tIUpUE4DGRJOrcMj07wcK0wugPaapvzEzCYinEWj7BOtHXVl5Z"
Scarica lo script di inizializzazione dell'interfaccia web graylog da GitHub.
$ wget https://gist.githubusercontent.com/stojg/d1cbb8536e5a447e1f3a/raw/32b95a7909fa8fa42991600dbbb4d871bd86486b/graylog2-web-interface
Sposta il file nella directory init e modifica i permessi del file.
$ sudo mv graylog2-web-interface /etc/init.d/graylog2-web $ sudo chown root:root /etc/init.d/graylog2-web $ sudo chmod 755 /etc/init.d/graylog2-web
Modifica lo script init per cambiare la directory dell'interfaccia web.
$ sudo sed -i -e 's/graylog2-web-interface/graylog-web-interface/g' /etc/init.d/graylog2-web
Installa lo script di avvio.
$ sudo update-rc.d graylog2-web defaults
Avvia il servizio Graylog.
$ sudo service graylog2-web start
L'interfaccia web ascolterà sulla porta 80. Punta il tuo browser su di essa. Accedi con il nome utente admin e la password che hai configurato in root_password_sha2 su server.conf .
Una volta effettuato l'accesso, otterrai la seguente pagina di ricerca.
Questo è tutto!, hai installato correttamente Graylog2 su Ubuntu 15.04.