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). Data jsou dotazována, načítána a ukládána ve schématu dokumentu JSON. Elasticsearch je škálovatelný vyhledávač, který lze použít k vyhledávání všech druhů textových dokumentů, včetně souborů protokolů. Elasticsearch je srdcem „Elastic Stack“ neboli ELK Stack.
Logstash je open source nástroj pro správu událostí a protokolů. Poskytuje sběr dat v reálném čase. Logstash shromáždí vaše data protokolu, převede je na dokumenty JSON a uloží je do Elasticsearch.
Kibana je open source nástroj pro vizualizaci dat pro Elasticsearch. Kibana poskytuje pěkné webové rozhraní řídicího panelu. Umožňuje vám spravovat a vizualizovat data z Elasticsearch. Není to jen krásné, ale také mocné.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat Elastic Stack na serveru Ubuntu 18.04 pro sledování protokolů serveru. Poté vám ukážu, jak nainstalovat a nakonfigurovat „Elastic beats“ na Ubuntu 18.04 a klientském serveru CentOS 7.
Předpoklady
- 3 servery
- Ubuntu 18.04 se 4 GB RAM/paměti jako „elk-master“ – 10.0.15.10
- Ubuntu 18.04 s 512 MB/1 GB RAM/paměti jako 'elk-client01' – 10.0.15.21
- CentOS 7.5 s 512 MB/1 GB RAM/paměti jako 'elk-client02' - 10.0.15.22
- Oprávnění uživatele root
Co uděláme?
- Nainstalujte elastickou sadu
- Nainstalujte Javu
- Nainstalujte a nakonfigurujte ElasticSearch
- Nainstalujte a nakonfigurujte Kibana
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro Kibana
- Nainstalujte a nakonfigurujte Logstash
- Nainstalujte a nakonfigurujte Filebeat na Ubuntu 18.04
- Nainstalujte a nakonfigurujte Filebeat na CentOS 7.5
- Testování
Krok 1 – Instalace elastického zásobníku
V tomto prvním kroku nainstalujeme a nakonfigurujeme 'Elastic Stack' na serveru 'elk-master', takže všechny příkazy a fáze pro tento krok spouštějte pouze na serveru 'elk-master'. Nainstalujeme a nakonfigurujeme každou komponentu elastického zásobníku, včetně Elasticsearch, Logstash shipper a Kibana Dashboard s webovým serverem Nginx.
Instalovat Javu
Java je vyžadována pro nasazení elastického stacku. Elasticsearch vyžaduje Java 8. Doporučujeme používat Oracle JDK 1.8 a Java 8 nainstalujeme z PPA úložiště.
Nainstalujte balíčky 'software-properties-common' a 'apt-transport-https' a poté přidejte úložiště Java PPA 'webupd8team'. Spusťte příkazy 'apt install' a 'add-apt-repository' níže.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y
Nyní nainstalujte java8-installer.
sudo apt install oracle-java8-installer -y
Po dokončení instalace zkontrolujte verzi Java.
verze Java
Java 1.8 nainstalovaná v systému.
Dále nakonfigurujeme prostředí Java. Zkontrolujte binární soubor java pomocí příkazu níže.
update-alternatives --config java
A získáte binární soubor java na '/usr/lib/jvm/java-8-oracle ' adresář.
Nyní vytvořte soubor profilu 'java.sh' v adresáři 'profile.d'.
vim /etc/profile.d/java.sh
Níže vložte konfiguraci prostředí Java.
#Set JAVA_HOMEJAVA_HOME="/usr/lib/jvm/java-8-oracle"export JAVA_HOMEPATH=$PATH:$JAVA_HOMEexportní CESTA
Uložte a ukončete.
Udělejte soubor spustitelným a načtěte konfigurační soubor.
chmod +x /etc/profile.d/java.sh
zdroj /etc/profile.d/java.sh
Nyní zkontrolujte prostředí Java pomocí příkazu níže.
echo $JAVA_HOME
A dostanete, že adresář java se nachází na adrese '/usr/lib/jvm/java-8-oracle ' adresář.
Instalovat Elasticsearch
Po instalaci Javy nainstalujeme první komponentu Elastic Stack, nainstalujeme elasticsearch.
Přidejte klíč elastického zásobníku a přidejte elastické úložiště do systému.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Nyní aktualizujte úložiště a nainstalujte balíček elasticsearch pomocí příkazu níže.
aktualizace sudo apt
sudo apt install elasticsearch -y
Po dokončení instalace přejděte do adresáře '/etc/elasticsearch' a upravte konfigurační soubor 'elasticsearch.yml'.
cd /etc/elasticsearch/
vim elasticsearch.yml
Odkomentujte řádek 'network.host' a změňte hodnotu na 'localhost' a zrušte odkomentování řádku 'http.port' pro konfiguraci portu elasticsearch.
network.host:localhosthttp.port:9200
Uložte a ukončete.
Nyní spusťte službu elasticsearch a povolte její spuštění při každém spuštění systému.
systemctl spustit elasticsearch
systemctl povolit elasticsearch
Elastické vyhledávání je nyní spuštěno, zkontrolujte jej pomocí příkazů netstat netstat a curl níže.
netstat -plntu
curl -XGET 'localhost:9200/?pretty'
Nyní získáte elasticsearch verze '6.2.4' běžící na výchozím portu '9200'.
Instalace elasticsearch byla dokončena.
Instalace a konfigurace řídicího panelu Kibana
Druhým komponentem je kibana Dashboard. Nainstalujeme řídicí panel Kibana z elastického úložiště a nakonfigurujeme službu kibana tak, aby běžela na adrese localhost.
Nainstalujte řídicí panel Kibana pomocí příkazu apt níže.
sudo apt install kibana -y
Nyní přejděte do adresáře '/etc/kibana' a upravte konfigurační soubor 'kibana.yml'.
cd /etc/kibana/
vim kibana.yml
Odkomentujte řádky 'server.port', 'server.host' a 'elasticsearch.url'.
server.port:5601server.host:"localhost"elasticsearch.url:"http://localhost:9200"
Uložte a ukončete.
Nyní spusťte službu kibana a povolte její spuštění při každém startu systému.
sudo systemctl povolit kibana
sudo systemctl spustit kibanu
Řídicí panel kibana je nyní spuštěn a spuštěn na adrese „localhost“ a výchozím portu „5601“. Zkontrolujte to pomocí příkazu netstat níže.
netstat -plntu
Instalace řídicího panelu Kibana byla dokončena.
Nainstalujte a nakonfigurujte Nginx jako Reverse-Proxy pro Kibana
V tomto tutoriálu budeme používat webový server Nginx jako reverzní proxy pro Kibana Dashboard.
Nainstalujte do systému Nginx a balíčky 'apache2-utils'.
sudo apt install nginx apache2-utils -y
Po dokončení instalace přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový soubor virtuálního hostitele s názvem 'kibana'.
cd /etc/nginx/
vim sites-available/kibana
Níže vložte konfiguraci virtuálního hostitele Nginx.
server { poslouchat 80; název_serveru elastic-stack.io; 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; proxy_set_header Upgrade $http_upgrade; proxy_set_header Připojení 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}
Uložte a ukončete.
Dále vytvoříme nový základní autentizační webový server pro přístup k dashboardu Kibana. Vytvoříme základní autentizaci pomocí příkazu htpasswd, jak je uvedeno níže.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Zadejte elastické uživatelské heslo
Aktivujte virtuálního hostitele kibana a otestujte veškerou konfiguraci nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Ujistěte se, že nedošlo k žádné chybě, nyní spusťte službu Nginx a povolte její spuštění při každém spuštění systému.
systemctl povolit nginx
systemctl restartovat nginx
Instalace a konfigurace Nginx jako Reverse-proxy pro řídicí panel Kibana byly dokončeny.
Instalace a konfigurace Logstash
Poslední komponentou pro elastický zásobník pro tuto příručku je „Logstash“. 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).
Před instalací logstash se ujistěte, že jste zkontrolovali verzi OpenSSL vašeho serveru.
verze openssl -a
V této příručce budeme používat OpenSSL '1.0.2o'. Pokud stále používáte OpenSSL verze 1.1.2, zobrazí se chyba u připojení logstash a filebeat SSL.
Nainstalujte logstash pomocí příkazu apt níže.
sudo apt install logstash -y
Po dokončení instalace vygenerujeme klíč certifikátu SSL pro zabezpečení přenosu dat protokolu z klientského filebeatu na server logstash.
Upravte soubor '/etc/hosts' pomocí vim.
vim /etc/hosts
Přidejte konfiguraci níže.
10.0.15.10 elk-master elk-master
Uložte a ukončete.
Nyní vytvořte nový adresář SSL v konfiguračním adresáři logstash '/etc/logstash' a přejděte do tohoto adresáře.
mkdir -p /etc/logstash/ssl
cd /etc/logstash/
Vygenerujte certifikát SSL pro Logstash pomocí příkazu openssl, jak je uvedeno níže.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crtSoubory certifikátu SSL pro Logstash byly vytvořeny v adresáři '/etc/logstash/ssl'.
Dále vytvoříme nové 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 'filebeat-input.conf' v adresáři 'conf.d'.
cd /etc/logstash/
vim conf.d/filebeat-input.confZde vložte následující konfiguraci.
vstup { beats { port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder .key" }}Uložte a ukončete.
Pro zpracování dat protokolu syslog používáme k analýze souborů syslog filtrovací plugin s názvem 'grok'.
Vytvořte novou konfiguraci 'syslog-filter.conf'.
vim conf.d/syslog-filter.confZde vložte následující konfiguraci.
filtr { if [type] =="syslog" { grok { match => { "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 { zápas => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } }}Uložte a ukončete.
A pro výstup elasticsearch vytvoříme konfigurační soubor s názvem 'output-elasticsearch.conf'.
vim conf.d/output-elasticsearch.confZde vložte následující konfiguraci.
output { elasticsearch { hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+RRRR.MM .dd}" document_type => "%{[@metadata][type]}" }}Uložte a ukončete.
Až to uděláte, spusťte službu logstash a povolte její spuštění při každém spuštění systému.
sudo systemctl povolit logstash
sudo systemctl spustit logstash
Zkontrolujte službu logstash pomocí příkazů netstat a systemctl níže.
netstat -plntu
systemctl status logstashA služba logstash je nyní v provozu. Běží na veřejné IP adrese s portem '5443'.
Instalace Elastic Stack byla dokončena.
Krok 2 – Instalace a konfigurace Filebeat na Ubuntu 18.04
V tomto kroku nakonfigurujeme klienta Ubuntu 18.04 'elk-client01' tak, že na něj nainstalujeme odesílatele dat Elastic Beats 'Filebeat'.
Před instalací filebeat do systému musíme upravit '/etc/hosts' a stáhnout soubor certifikátu logstash 'logstash-forwarder.crt' na server 'elk-client01'.
Upravte soubor '/etc/hosts' pomocí editoru vim.
vim /etc/hostsZde vložte následující konfiguraci.
10.0.15.10 elk-master elk-masterUložte a ukončete.
Zkopírujte soubor certifikátu logstash 'logstash-forwarder.crt' pomocí příkazu scp.
scp [e-mail chráněný]:/etc/logstash/ssl/logstash-forwarder.crt .
Dále nainstalujte Elastic Beats 'Filebeat' přidáním elastického klíče a přidáním elastického úložiště.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.listAktualizujte úložiště a nainstalujte balíček 'filebeat' pomocí příkazu apt níže.
aktualizace sudo apt
instalace sudo apt filebeat -yPo dokončení instalace přejděte do adresáře '/etc/filebeat' a upravte konfigurační soubor 'filebeat.yml'.
cd /etc/filebeat/
vim filebeat.ymlNyní povolte prospektory filebeat změnou hodnoty řádku 'enabled' na 'true'.
povoleno:trueDefinujte soubory protokolu systému, které se mají odesílat na server logstash. Pro tuto příručku přidáme soubor protokolu ssh 'auth.log' a soubor syslog.
cesty:- /var/log/auth.log - /var/log/syslogNastavte výstup na logstash zakomentováním výchozího výstupu 'elasticsearch' a odkomentujte výstupní řádek logstash, jak je uvedeno níže.
output.logstash:# Hostitelé serveru Logstash:["elk-master:5443"] ssl.certificate_authorities:["/etc/filebeat/logstash-forwarder.crt"]Uložte a ukončete.
Dále musíme upravit soubor 'filebeat.reference.yml', abychom povolili moduly filebeat, a povolíme modul 'syslog'.
vim filebeat.reference.ymlPovolte systémový modul syslog pro filebeat, jak je uvedeno níže.
- modul:system # Syslog syslog:enabled:trueUložte a ukončete.
Zkopírujte soubor certifikátu logstash 'logstash-forwarder.crt' do adresáře '/etc/filebeat'.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crtInstalace a konfigurace Filebeat byly dokončeny. Nyní spusťte službu filebeat a povolte její spuštění při každém startu systému.
systemctl spustit filebeat
systemctl povolit filebeat
Zkontrolujte službu filebeat pomocí příkazů níže.
systemctl status filebeat
tail -f /var/log/filebeat/filebeatOdesílatelé filebeat jsou v provozu a běží na serveru Ubuntu 18.04.
Krok 3 – Instalace a konfigurace Filebeat na CentOS 7.5
V tomto kroku nakonfigurujeme klienta CentOS 7.5 „elk-client02“ tím, že na něj nainstalujeme odesílatele dat Elastic Beats „Filebeat“.
Před instalací Filebeat do systému musíme upravit '/etc/hosts' a stáhnout soubor certifikátu logstash 'logstash-forwarder.crt' na server 'elk-client02'.
Upravte soubor '/etc/hosts' pomocí vim.
vim /etc/hostsVložte konfiguraci níže.
10.0.15.10 elk-master elk-masterUložte a ukončete.
Zkopírujte soubor certifikátu logstash 'logstash-forwarder.crt' pomocí příkazu scp.
scp [e-mail chráněný]:/etc/logstash/ssl/logstash-forwarder.crt .
Dále nainstalujte Elastic Beats 'Filebeat' přidáním elastického klíče a přidáním elastického úložiště.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
kat </etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch úložiště pro balíčky 6.x
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOFNainstalujte filebeat pomocí příkazu yum níže.
yum install filebeat -yPo dokončení instalace přejděte do adresáře '/etc/filebeat' a upravte konfigurační soubor 'filebeat.yml'.
cd /etc/filebeat/
vim filebeat.ymlNyní povolte prospektory filebeat změnou hodnoty řádku 'enabled' na 'true'.
povoleno:trueDefinujte soubory protokolu systému, které se mají odesílat na server logstash. Pro tuto příručku přidáme soubor protokolu ssh 'auth.log' a soubor syslog.
cesty:- /var/log/secure - /var/log/messagesNastavte výstup na logstash zakomentováním výchozího výstupu 'elasticsearch' a odkomentujte výstupní řádek logstash, jak je uvedeno níže.
output.logstash:# Hostitelé serveru Logstash:["elk-master:5443"] ssl.certificate_authorities:["/etc/filebeat/logstash-forwarder.crt"]Uložte a ukončete.
Dále musíme upravit soubor 'filebeat.reference.yml', abychom povolili moduly filebeat, a povolíme modul 'syslog'.
vim filebeat.reference.ymlPovolte systémový modul syslog pro filebeat, jak je uvedeno níže.
- modul:system # Syslog syslog:enabled:trueUložte a ukončete.
Zkopírujte soubor certifikátu logstash 'logstash-forwarder.crt' do adresáře '/etc/filebeat'.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crtInstalace a konfigurace Filebeat byly dokončeny. Nyní spusťte službu filebeat a přidejte ji do doby spouštění.
systemctl spustit filebeat
systemctl povolit filebeat
Zkontrolujte službu filebeat pomocí příkazů níže.
systemctl status filebeat
tail -f /var/log/filebeat/filebeatOdesílatelé filebeat jsou připraveni a běží pod serverem CentOS 7.5.
Krok 4 – Testování
Otevřete webový prohlížeč a zadejte název domény elastického zásobníku, můj je:'elastic-stack.io'.
Budete požádáni o uživatelské jméno a heslo ze základního ověření do Kibana Dashboard.
Zadejte uživatelské jméno 'elastic' se svým heslem.
Nyní získáte krásný řídicí panel kibana, klikněte na tlačítko 'Nastavit vzory indexů' vpravo.
Definujte vzor indexu 'filebeat-*' a klikněte na tlačítko 'Další krok'.
Pro „název pole časového filtru“ vyberte „@timestamp“ a klikněte na „Vytvořit vzor indexu“.
A vzor indexu filebeat byl vytvořen.
Dále se pokusíme získat informace protokolu pro neúspěšné přihlášení SSH na každém klientském serveru 'elk-client01' systém Ubuntu a 'elk-client02' systém CentOS.
Uvnitř Kibana Dashboard klikněte na nabídku 'Discover', abyste získali všechny protokoly serveru.
Nastavte 'beat.hostname' na server 'elk-client01', 'zdroj' je soubor '/var/log/auth.log' a dostanete výsledek, jak je ukázáno níže.
A dále jsou ukázkové podrobnosti protokolu pro neúspěšné heslo SSH ze souboru 'auth.log'.
Pro server 'elk-client02' CentOS nastavte 'beat.hostname' na server 'elk-client02', 'zdroj' je soubor '/var/log/secure' a výsledek získáte, jak je uvedeno níže.
A dále jsou ukázkové podrobnosti protokolu pro neúspěšné heslo SSH ze souboru 'secure'.
Instalace a konfigurace Elastic Stack a Elastic Beat 'Filebeat' byly úspěšně dokončeny.
Jak nainstalovat Airsonic Media Server na Ubuntu 18.04 LTS Jak vytvořit svůj vlastní videokonferenční server pomocí Jitsi Meet na Ubuntu 18.04 LTSUbuntu