Elasticsearch je distribuovaný vyhledávací server založený na Lucene, který je dostupný jako software OpenSource. Jedná se o fulltextový vyhledávač napsaný v Javě, s webovým rozhraním HTTP a nativně podporuje dokumenty JSON. Elasticsearch lze použít k prohledávání všech druhů dokumentů a poskytuje škálovatelné vyhledávání a řešení pro vyhledávání v reálném čase. Elasticsearch používá mnoho velkých organizací Mozilla, Netflix, Stack Exchange atd.
Graylog2 je centralizovaný rámec pro správu protokolů a analýzu protokolů založený na Elasticsearch a MongoDB. Je schopen analyzovat a akumulovat zprávy protokolu z různých zdrojů.
V tomto tutoriálu vás provedu instalací Graylog2, Elasticsearch a MongoDB. Pro tuto instalaci použiji Ubuntu 15.10.
Předpoklad
- Ubuntu 15.10 – 64bit
- 4 GB RAM
- Kořenová oprávnění
Krok 1 – Instalace MongoDB
MongoDB je NoSQL databáze orientovaná na dokumenty. Schéma dokumentu MongoDB je podobné JSON, nazývá se BSON. Nainstalujeme MongoDB 3 z repozitářů MongoDB Debian.
Přidejte úložiště, aktualizujte a nainstalujte jej:
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
Nainstalujte MongoDB pomocí následujícího příkazu apt:
apt-get install mongodb-org
Dále spusťte mongodb a povolte jeho spuštění při bootování:
systemctl start mongod
systemctl enable mongod
Krok 2 – Instalace Java
Všechny aplikace, které v tomto návodu použijeme, jsou založeny na Javě, takže si ji musíme nainstalovat hned :). Pro instalaci Graylog potřebujeme Java 7 nebo vyšší. Java 7 je k dispozici v úložišti ubuntu, takže ji nainstalujme pomocí tohoto příkazu apt:
apt-get install openjdk-7-jre
Nyní zkontrolujte verzi Java:
java -version
A měli byste získat verzi 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)
Krok 3 – Instalace Elasticsearch
V tomto tutoriálu nainstalujeme elasticsearch verze 1.7.
Stáhněte a přidejte klíč GPG do systému:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Nyní přidejte úložiště elasticsearch do adresáře sources.list.d a spusťte 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
Nyní nainstalujte elasticsearch:
sudo apt-get install elasticsearch
A po dokončení instalace spusťte démona Elastcisearch a povolte jeho spuštění při spouštění:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Instalace Elastisearch je dokončena a démon byl spuštěn. Nyní je čas jej nakonfigurovat.
Upravte konfigurační soubor v adresáři "/etc/elasticsearch/" pomocí vim:
vim /etc/elasticsearch/elasticsearch.yml
Odkomentujte řádek "cluster.name" a změňte hodnotu na "graylog2".
cluster.name = graylog2
Přidejte konfiguraci níže pro produkční servery, abyste zakázali dynamické skripty a zabránili vzdálenému spouštění:
script.disable_dynamic: true
Uložte soubor a ukončete.
Poté restartujte Elasticsearch a otestujte jej pomocí příkazu curl:
systemctl restart elasticsearch
Testuji Elasticsearch s připojením curl na port 9200:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Krok 4 – Instalace serveru Graylog2
Dalším krokem je instalace serveru Graylog2. Pro tuto instalaci použiji Graylog 1.3.2. Stáhněte si graylog2 pomocí příkazu wget, rozbalte jej a poté nakonfigurujte.
Než začneme s instalací pwgen, potřebujeme, aby pwgen vygeneroval náhodné heslo.
Nainstalujte pwgen:
apt-get install pwgen
Nyní vygenerujte nové heslo příkazem:
pwgen -N 1 -s 96
Můj tajný kód:
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
a vygenerujte nový hash sha256 pomocí příkazu níže:
echo -n mypassword | sha256sum
Toto je moje heslo:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Dále přejděte do adresáře /opt/ a stáhněte si graylog-server pomocí příkazu wget:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz
Rozbalte graylog-server a přejmenujte adresář na graylog2:
tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/
Graylog-server je stažen a pro jeho instalaci používáme adresář /opt/.
Chcete-li nakonfigurovat server graylog, vytvořte nový adresář graylog a zkopírujte vzorový konfigurační soubor serveru graylog do "server.conf".
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
Upravte konfiguraci:
vim /etc/graylog/server/server.conf
Vložte heslo vygenerované pomocí pwgen na řádek password_secret:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
Vložte své vygenerované heslo sha256, toto heslo se používá pro přihlášení k administračnímu panelu graylog:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
Zakažte vyhledávání vícesměrového vysílání elasticsearch a přidejte hostitele unicast.
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
Změňte fragmenty elasticsearch na 1, protože vše instalujeme na tento jediný server.
elasticsearch_shards = 1
elasticsearch_replicas = 0
Uložte a ukončete soubor.
Nyní spusťte graylog-server spuštěním souboru bin v adresáři graylog:
cd /opt/graylog/bin/
./graylogctl start
Nyní můžete vidět soubor protokolu greylog-serveru v adresáři protokolu, sledujte jej pomocí příkazu tail:
tail -f /opt/graylog/log/
Pokud by se toto mělo zobrazit v souboru protokolu:
Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.
Znamená to, že graylog-server byl správně spuštěn.
Krok 5 – Instalace Graylog-Web
Stáhněte si webové rozhraní graylog pomocí příkazu wget do adresáře /opt/:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz
Rozbalte webové rozhraní graylog a přejmenujte jej na „graylog-web“.
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/
Poté vygenerujte nový tajný kód aplikace pro graylog-web pomocí pwgen:
pwgen -N 1 -s 96
Toto je moje tajemství:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
Přejděte do adresáře graylog-web a upravte konfigurační soubor:
cd graylog-web/
vim graylog
Na řádek graylog2-server.uris přidejte adresu graylog2-server:
graylog2-server.uris="http://127.0.0.1:12900/"
Do řádku application.secret vložte tajný kód vygenerovaný před:
application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"
Uložte soubor a ukončete.
Nyní spusťte graylog-web:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080
Graylog-web poběží na portu 8080.
Navštivte svůj server - http://myipaddress:8080/
Nyní se přihlaste pomocí uživatele "admin" a svého hesla sha256.
Byl nainstalován server Graylog2 s webovým rozhraním Elasticsearch a Graylog.
Závěr
Elasticsearch je distribuovaný serverový vyhledávač s HTTP rozhraním a podporou JSON. Můžeme jej použít k vyhledávání ve všech log souborech serveru, když jej používáme společně s Graylogem. Graylog je software pro správu a analýzu protokolů založený na Elasticsearch a mongoDB. Můžeme použít Elasticsearch, Graylog a MongoDB k vytvoření distribuovaného log serveru.