Elasticsearch è un server di ricerca distribuito basato su Lucene disponibile come software OpenSource. È un motore di ricerca full-text, scritto in Java, con un'interfaccia Web HTTP e supporta i documenti JSON in modo nativo. Elasticsearch può essere utilizzato per cercare tutti i tipi di documenti e fornisce una soluzione di ricerca scalabile e di ricerca in tempo reale. Elasticsearch è utilizzato da molte grandi organizzazioni Mozilla, Netflix, Stack Exchange ecc.
Graylog2 è un framework centralizzato di gestione e analisi dei log basato su Elasticsearch e MongoDB. È in grado di analizzare e accumulare messaggi di registro da diverse fonti.
In questo tutorial, ti guiderò attraverso l'installazione di Graylog2, Elasticsearch e MongoDB. Userò Ubuntu 15.10 per questa installazione.
Prerequisito
- Ubuntu 15.10 - 64 bit
- 4 GB di RAM
- privilegi radice
Passaggio 1:installa MongoDB
MongoDB è un database NoSQL orientato ai documenti. Lo schema del documento MongoDB è simile a JSON, si chiama BSON. Installeremo MongoDB 3 dai repository Debian di MongoDB.
Aggiungi il repository, aggiornalo e installalo:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get update
Installa MongoDB con il seguente comando apt:
apt-get install mongodb-org
Quindi, avvia mongodb e abilitalo per l'avvio all'avvio:
systemctl start mongod
systemctl enable mongod
Fase 2:installa Java
Tutte le applicazioni che useremo in questo tutorial sono basate su Java, quindi dobbiamo installarlo ora :). Abbiamo bisogno di Java 7 o superiore per l'installazione di Graylog. Java 7 è disponibile nel repository Ubuntu, quindi installiamolo con questo comando apt:
apt-get install openjdk-7-jre
Ora controlla la versione java:
java -version
E dovresti ottenere la versione java:
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
Fase 3:installa Elasticsearch
Installeremo elasticsearch versione 1.7 in questo tutorial.
Scarica e aggiungi la chiave GPG al sistema:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Ora aggiungi il repository elasticsearch alla directory sources.list.d ed esegui apt-get update:
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get update
Ora installa elasticsearch:
sudo apt-get install elasticsearch
E quando l'installazione è stata completata, avvia il demone Elastcisearch e abilita l'avvio all'avvio:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
L'installazione di Elastisearch è terminata e il demone è stato avviato. Ora è il momento di configurarlo.
Modifica il file di configurazione nella directory "/etc/elasticsearch/" con vim:
vim /etc/elasticsearch/elasticsearch.yml
Decommenta la riga "cluster.name" e cambia il valore in "graylog2".
cluster.name = graylog2
Aggiungi la configurazione seguente per i server di produzione per disabilitare gli script dinamici ed evitare l'esecuzione remota:
script.disable_dynamic: true
Salva il file ed esci.
Quindi riavvia Elasticsearch e testalo con il comando curl:
systemctl restart elasticsearch
Sto testando Elasticsearch con una connessione curl alla porta 9200:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Passaggio 4:installazione del server Graylog2
Il passaggio successivo consiste nell'installare il server Graylog2. Userò Graylog 1.3.2 per questa installazione. Scarica graylog2 con il comando wget, estrailo e poi configuralo.
Prima di iniziare con l'installazione di pwgen, abbiamo bisogno che pwgen generi la password casuale.
Installa pwgen:
apt-get install pwgen
Ora genera la nuova password con il comando:
pwgen -N 1 -s 96
Il mio codice segreto:
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
e genera un nuovo hash sha256 con il comando seguente:
echo -n mypassword | sha256sum
Questa è la mia password:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Quindi, vai alla directory /opt/ e scarica graylog-server con il comando wget:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz
Estrai graylog-server e rinomina la directory in graylog2:
tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/
Graylog-server viene scaricato e utilizziamo la directory /opt/ per la sua installazione.
Per configurare graylog-server, crea una nuova directory graylog e copia il file di configurazione di esempio del graylog-server in "server.conf".
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
Modifica la configurazione:
vim /etc/graylog/server/server.conf
Incolla la password generata con pwgen sulla riga password_secret:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
Incolla la tua password sha256 generata, questa password viene utilizzata per accedere alla dashboard di amministrazione di graylog:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Disabilita la ricerca multicast elasticsearch e aggiungi gli host unicast.
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
Cambia gli shard elasticsearch su 1, perché installiamo tutto su questo singolo server.
elasticsearch_shards = 1
elasticsearch_replicas = 0
Salva ed esci dal file.
Ora avvia il graylog-server eseguendo il file bin nella directory graylog:
cd /opt/graylog/bin/
./graylogctl start
Ora puoi vedere il file di log del server graylog nella directory dei log, guardalo con il comando tail:
tail -f /opt/graylog/log/
Se dovrebbe vederlo nel file di registro:
Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.
Significa che il graylog-server è stato avviato correttamente.
Passaggio 5 - Installa Graylog-Web
Scarica l'interfaccia web di graylog con il comando wget nella /opt/directory:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz
Estrarre l'interfaccia web graylog e rinominarla in "graylog-web".
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/
Quindi genera un nuovo codice segreto dell'applicazione per graylog-web con pwgen:
pwgen -N 1 -s 96
Questo è il mio segreto:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
Vai alla directory graylog-web e modifica il file di configurazione:
cd graylog-web/
vim graylog
Nella riga graylog2-server.uris, aggiungi l'indirizzo graylog2-server:
graylog2-server.uris="http://127.0.0.1:12900/"
Nella riga application.secret, incolla il codice segreto generato prima di:
application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"
Salva il file ed esci.
Ora avvia graylog-web:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080
Graylog-web verrà eseguito sulla porta 8080.
Visita il tuo server - http://myipaddress:8080/
Ora accedi con l'utente "admin" e la tua password sha256.
È stato installato il server Graylog2 con l'interfaccia Web Elasticsearch e Graylog.
Conclusione
Elasticsearch è un motore di ricerca per server distribuito con interfaccia HTTP e supporto JSON. Possiamo usarlo per cercare in tutti i file di registro di un server quando lo utilizziamo insieme a Graylog. Graylog è un software di gestione e analisi dei log basato su Elasticsearch e mongoDB. Possiamo utilizzare Elasticsearch, Graylog e MongoDB per creare un server di log distribuito.