Elasticsearch je open source vyhledávač založený na Lucene, vyvinutý v Javě. Poskytuje distribuovaný a multitenantský fulltextový vyhledávač s webovým rozhraním HTTP Dashboard (Kibana) a schématem dokumentů JSON. Elasticsearch je škálovatelný vyhledávač, který lze použít k vyhledávání všech typů dokumentů, včetně souboru protokolu. Elasticsearch je srdcem „Elastic Stack“ neboli ELK Stack.
Logstash je open source nástroj pro správu systémových událostí a protokolů. Poskytuje propojení v reálném čase pro sběr dat. Logstash shromáždí protokol nebo data, převede všechna data na dokumenty JSON a uloží je do Elasticsearch.
Kibana je rozhraní pro vizualizaci dat pro Elasticsearch. Kibana poskytuje pěkný dashboard (webová rozhraní), umožňuje vám spravovat a vizualizovat všechna data z Elasticsearch na vlastní pěst. Není to jen krásné, ale také mocné.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat Elastic Stack na jediném serveru Ubuntu 16.04 pro monitorování protokolů serveru a jak nainstalovat „Elastic beats“ na klientské počítače s operačním systémem Ubuntu 16.04 a CentOS 7.
Předpoklad
- Ubuntu 16.04 64bitový server se 4 GB paměti RAM, název hostitele - elk-master
- Ubuntu 16.04 64bitový klient s 1 GB RAM, název hostitele - elk-client1
- 64bitový klient CentOS 7 s 1 GB paměti RAM, název hostitele - elk-client2
Krok 1 – Instalace Java
Java je vyžadována pro nasazení elastického stacku. Elasticsearch vyžaduje Java 8. Doporučuje se používat Oracle JDK 1.8. Java 8 nainstalujeme z úložiště PPA.
Nainstalujte nový balíček 'python-software-properties' takže můžeme snadno přidat nové úložiště pomocí příkazu apt.
aktualizace sudo apt-get
instalace sudo apt-get -y python-software-properties software-properties-common apt-transport-https
Přidejte nové úložiště Java 8 PPA pomocí příkazu 'add-apt-repository' a poté úložiště aktualizujte.
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
Nainstalujte Java 8 z úložiště PPA webpub8.
sudo apt-get install -y oracle-java8-installer
Po dokončení instalace zkontrolujte verzi Java a ujistěte se, že je Java v systému správně nainstalována.
verze Java
Krok 2 – Instalace a konfigurace Elasticsearch
V tomto kroku nainstalujeme a nakonfigurujeme Elasticsearch. Nainstalujte Elasticsearch z elastického úložiště a nakonfigurujte jej tak, aby běžel na adrese IP localhost.
Před instalací Elasticsearch přidejte na server klíč elastického úložiště.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Přidejte elastické úložiště 5.x do adresáře 'sources.list.d'.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Aktualizujte úložiště a nainstalujte Elasticsearch 5.1 pomocí příkazu apt níže.
aktualizace sudo apt-get
instalace sudo apt-get -y elasticsearch
Elasticsearch je nainstalován. Nyní přejděte do konfiguračního adresáře a upravte konfigurační soubor elasticsaerch.yml.
cd /etc/elasticsearch/
vim elasticsearch.yml
Povolte zámek paměti pro Elasticsearch odstraněním komentáře na řádku 43. Děláme to, abychom zakázali odkládání paměti pro Elasticsearch, aby nedošlo k přetížení serveru.
bootstrap.memory_lock:true
V bloku 'Network' odkomentujte řádky network.host a http.port.
network.host:localhost
http.port:9200
Uložte soubor a ukončete vim.
Nyní upravte soubor služby elasticsearch pro konfiguraci zámku paměti mlockall.
vim /usr/lib/systemd/system/elasticsearch.service
Odkomentujte řádek LimitMEMLOCK.
LimitMEMLOCK=nekonečno
Uložte soubor a ukončete.
Upravte výchozí konfiguraci pro Elasticsearch v adresáři /etc/default.
vim /etc/default/elasticsearch
Odkomentujte řádek 60 a ujistěte se, že hodnota je 'neomezeno'.
MAX_LOCKED_MEMORY=neomezeno
Uložte a ukončete.
Konfigurace Elasticsearch je dokončena. Elasticsearch poběží pod IP adresou localhost s portem 9200 a deaktivovali jsme odkládací paměť povolením mlockall na serveru Ubuntu.
Znovu načtěte soubor služby Elasticsearch a povolte jeho spuštění při spouštění, poté spusťte službu.
sudo systemctl daemon-reload
sudo systemctl povolit elasticsearch
sudo systemctl spustit elasticsearch
Počkejte sekundu, než se Elasticsearch spustí, poté zkontrolujte otevřený port na serveru a ujistěte se, že 'stav' portu 9200 je 'LISTEN'.
netstat -plntu
Poté zkontrolujte zámek paměti, abyste se ujistili, že je povoleno mlockall. Pomocí níže uvedených příkazů také zkontrolujte, zda je spuštěn Elasticsearch.
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'
Níže uvidíte výsledky.
Krok 3 – Instalace a konfigurace Kibana pomocí Nginx
V tomto kroku nainstalujeme a nakonfigurujeme Kibana za webový server Nginx. Kibana bude naslouchat pouze na IP adrese localhost a Nginx funguje jako reverzní proxy pro aplikaci Kibana.
Nainstalujte Kibana pomocí tohoto příkazu apt:
sudo apt-get install -y kibana
Nyní upravte konfigurační soubor kibana.yml.
vim /etc/kibana/kibana.yml
Odkomentujte řádky server.port, server.hos a elasticsearch.url.
server.port:5601
server.host:"localhost"
elasticsearch.url:"http://localhost:9200"
Uložte soubor a ukončete vim.
Přidejte Kibana ke spuštění při startu a spusťte jej.
sudo systemctl povolit kibana
sudo systemctl spustit kibanu
Kibana poběží na portu 5601 jako aplikace uzlu.
netstat -plntu
Instalace Kibana je hotová, nyní musíme nainstalovat Nginx a nakonfigurovat jej jako reverzní proxy, aby bylo možné přistupovat ke Kibaně z veřejné IP adresy.
Dále nainstalujte balíčky Nginx a apache2-utils.
sudo apt-get install -y nginx apache2-utils
Apache2-utils je balíček, který obsahuje nástroje pro webový server, které fungují i s Nginx, pro Kibana použijeme základní ověřování htpasswd.
Nginx byl nainstalován. Nyní musíme vytvořit nový konfigurační soubor virtuálního hostitele v adresáři Nginx sites-available. Vytvořte nový soubor 'kibana' pomocí vim.
cd /etc/nginx/
vim sites-available/kibana
Vložte konfiguraci níže.
server {
listen 80;
název_serveru elk-stack.co;
auth_basic "Omezený přístup";
auth_basic_user_file /etc/nginx /.kibana-user;
umístění / {
proxy_pass http://localhost:5601;
proxy_http_verze 1.1;
Upgrade proxy_set_header $http />upgrade;proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Uložte soubor a ukončete vim
Vytvořte nový základní ověřovací soubor pomocí příkazu htpasswd.
sudo htpasswd -c /etc/nginx/.kibana-user admin
ZADEJTE HESLO
Aktivujte virtuálního hostitele kibana vytvořením symbolického odkazu ze souboru kibana v adresáři 'sites-available' do adresáře 'sites-enabled'.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
Otestujte konfiguraci nginx a ujistěte se, že nedochází k chybě, poté přidejte nginx, aby se spustil při spouštění, a restartujte nginx.
nginx -t
systemctl povolit nginx
systemctl restartovat nginx
Krok 4 – Instalace a konfigurace Logstash
V tomto kroku nainstalujeme a nakonfigurujeme Logsatash pro centralizaci serverových protokolů z klientských zdrojů pomocí filebeat, poté filtrujeme a transformujeme všechna data (Syslog) a přeneseme je do skrýše (Elasticsearch).
Nainstalujte Logstash 5 pomocí příkazu apt níže.
sudo apt-get install -y logstash
Upravte soubor hosts pomocí vim.
vim /etc/hosts
Přidejte IP adresu serveru a název hostitele.
10.0.15.10 elk-master
Uložte soubor hosts a ukončete editor.
Nyní vygenerujte nový soubor certifikátu SSL pomocí OpenSSL, aby klientské zdroje mohly identifikovat elastický server.
cd /etc/logstash/
openssl req -subj /CN=elk-master -x509 -days 3650 -batch -nodes -newkey rsa:4096 -keyout logstash.key -out logstash.crt
Změňte '/CN ' k názvu hostitele elastického serveru.
Soubory certifikátů budou vytvořeny v adresáři '/etc/logstash/'.
Dále vytvoříme konfigurační soubory pro logstash. Vytvoříme konfigurační soubor 'filebeat-input.conf' jako vstupní soubor z filebeat, 'syslog-filter.conf' pro zpracování syslogu a poté soubor 'output-elasticsearch.conf' pro definování výstupu Elasticsearch.
Přejděte do konfiguračního adresáře logstash a vytvořte nové konfigurační soubory v adresáři 'conf.d'.
cd /etc/logstash/
vim conf.d/filebeat-input.conf
Vstupní konfigurace, vložte konfiguraci níže.
vstup {
bije {
port => 5443
type => syslog
ssl => true
ssl_certificate => "/etc/logstash/logstash. crt"
ssl_key => "/etc/logstash/logstash.key"
}
}
Uložte a ukončete.
Vytvořte soubor syslog-filter.conf.
vim conf.d/syslog-filter.conf
Vložte konfiguraci níže.
filtr {
if [type] =="syslog" {
grok {
shoda => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname } %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?:%{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
datum {
shoda => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
Používáme filtrovací plugin s názvem 'grok ' pro analýzu souborů syslog.
Uložte a ukončete.
Vytvořte výstupní konfigurační soubor 'output-elasticsearch.conf'.
vim conf.d/output-elasticsearch.conf
Vložte konfiguraci níže.
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "% {[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}Uložte a ukončete.
Až to uděláte, přidejte logstash, aby se spustil při bootování a spusťte službu.
sudo systemctl povolit logstash
sudo systemctl spustit logstash
Krok 5 – Instalace a konfigurace Filebeat na klientovi Ubuntu
Připojte se k serveru jako root pomocí ssh účtu.
ssh [e-mail chráněný]Zkopírujte soubor certifikátu do klienta pomocí příkazu scp.
scp [e-mail chráněný]:/etc/logstash/logstash.crt .Upravte soubor hosts a přidejte IP adresu elk-master.
vim /etc/hostsPřidejte konfiguraci níže na konec souboru.
10.0.15.10 elk-masterUložte a ukončete.
Nyní musíme přidat elastický klíč na server elk-client1.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -Budeme používat elastické úložiště s přenosem stahování https, takže musíme na server nainstalovat balíček 'apt-transport-https'.
sudo apt-get install -y apt-transport-httpsPřidejte elastické úložiště a aktualizujte všechna úložiště Ubuntu.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
aktualizace sudo apt-getNyní nainstalujte 'filebeat' pomocí příkazu apt.
sudo apt-get install -y filebeatDále přejděte do konfiguračního adresáře filebeat a upravte soubor 'filebeat.yml' pomocí vim.
cd /etc/filebeat/
vim filebeat.ymlPřidejte nové soubory protokolu do konfigurace cest.
cesty:
- /var/log/auth.log
- /var/log/syslogNastavte typ dokumentu na 'syslog'.
typ dokumentu:syslogZakažte výstup elasticsearch přidáním komentářů k řádkům.
#-------------------------- Výstup elastického vyhledávání ------------------- ------------
#output.elasticsearch:
# Pole hostitelů k připojení.
# hostitelů:["localhost:9200"]Povolte výstup logstash, odkomentujte konfiguraci a změňte hodnotu, jak je uvedeno níže.
output.logstash:
# Hostitelé Logstash
hostitelé:["elk-master:5443"]
bulk_max_size:2048
ssl.certificate_authorities:["/etc/ filebeat/logstash.crt"]
template.name:"filebeat"
template.path:"filebeat.template.json"
template.overwrite:falseUložte a ukončete.
Přesuňte soubor certifikátu do adresáře filebeat.
mv ~/logstash.crt /etc/filebeat/Spusťte filebeat a přidejte jej ke spuštění při startu.
sudo systemctl spustit filebeat
sudo systemctl povolit filebeatZkontrolujte stav služby.
sudo systemctl status filebeat
Krok 6 – Instalace a konfigurace Filebeat na klientovi CentOS
Beats jsou odesílatelé dat, lehcí agenti, které lze nainstalovat na klientské uzly a odesílat obrovské množství dat z klientského počítače na server Logstash nebo Elasticsearch. K dispozici jsou 4 doby, 'Filebeat' pro 'Log Files', 'Metricbeat' pro 'Metrics', 'Packetbeat' pro 'Network Data' a 'Winlogbeat' pro klienta Windows 'Event Log'.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat 'Filebeat' k odesílání dat protokolu na server logstash přes zabezpečené připojení SSL.
Zkopírujte soubor certifikátu z elastického serveru na server klient1. Přihlaste se k serveru client1.
ssh [e-mail chráněný]Zkopírujte soubor certifikátu pomocí příkazu scp.
scp [e-mail chráněný]:/etc/logstash/logstash.crt .
TYP ELK-server hesloUpravte soubor hostitelů a přidejte adresu serveru elk-master.
vim /etc/hostsPřidejte adresu serveru elk-master.
10.0.15.10 elk-masterUložte a ukončete.
Dále importujte elastický klíč na server elk-client2.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchPřidejte elastické úložiště na server.
cd /etc/yum.repos.d/
vim elastic.repoVložte konfiguraci níže.
[elastic-5.x]
name=Elastické úložiště pro balíčky 5.x
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdUložte a ukončete.
Nainstalujte filebeat pomocí tohoto příkazu yum.
sudo yum -y install filebeatFilebeat byl nainstalován, nyní přejděte do konfiguračního adresáře a upravte soubor 'filebeat.yml'.
cd /etc/filebeat/
vim filebeat.ymlV sekci cesty na řádku 21 přidejte nějaké nové soubory protokolu, přidáme sem dva soubory:'/var/log/secure' pro aktivitu ssh a '/var/log/messages' pro protokol serveru.
cesty:
- /var/log/secure
- /var/log/messagesPřidejte novou konfiguraci na řádek 26, abyste definovali typ souboru 'syslog'.
typ dokumentu:syslogVe výchozím nastavení filebeat používá elasticsearch jako výstup. V tomto tutoriálu jej změníme na logshtash. Zakažte výstup elasticsearch přidáním komentářů k řádkům 83 a 85.
Zakázat výstup elasticsearch.
#-------------------------- Výstup elastického vyhledávání ------------------- ------------
#output.elasticsearch:
# Pole hostitelů k připojení.
# hostitelů:["localhost:9200"]Nyní přidejte novou konfiguraci výstupu logstash, odkomentujte konfiguraci výstupu logstash a změňte všechny hodnoty na hodnoty, které jsou uvedeny v konfiguraci níže.
output.logstash:
# Hostitelé Logstash
hostitelé:["elk-master:5443"]
bulk_max_size:2048
ssl.certificate_authorities:["/etc/ filebeat/logstash.crt"]
template.name:"filebeat"
template.path:"filebeat.template.json"
template.overwrite:falseUložte a ukončete.
Přidejte filebeat, aby se spustil při spouštění, a spusťte jej.
sudo systemctl povolit filebeat
sudo systemctl spustit filebeatNyní můžete zkontrolovat a sledovat soubor protokolu filebeat, abyste se ujistili, že běží správně.
tail -f /var/log/filebeat/filebeat
Krok 8 – Testování
Otevřete webový prohlížeč a navštivte doménu elastického zásobníku, kterou jste nakonfigurovali v konfiguraci nginx, moje je 'elk-stack.co', zadejte uživatelské jméno správce se svým heslem a stisknutím klávesy Enter se přihlaste do řídicího panelu Kibana.
Vytvořte nový výchozí index 'filebeat-* “ a klikněte na „Vytvořit '.
Výchozí index byl vytvořen. Pokud máte na elastickém zásobníku více taktů, můžete nakonfigurovat výchozí takt pouhým kliknutím na 'hvězdu '.
Přejděte na „Objevit “ a uvidíte všechny soubory protokolu ze serverů elk-client1 a elk-client2.
Příklad výstupu JSON z protokolu serveru elk-client1 pro neplatné přihlášení ssh.
A s řídicím panelem Kibana můžete dělat mnohem víc, jen to vyzkoušejte!
Elastic Stack byl nainstalován na server Ubuntu 16.04, filebeat byl nainstalován na klientské servery Ubuntu a CentOS.
Dockerizace Wordpressu pomocí Nginx a PHP-FPM na Ubuntu 16.04 Jak nainstalovat Invoice Ninja na Ubuntu 16.04Ubuntu