V této příručce se naučíte nainstalovat Elastic stack na Ubuntu 18.04. Elastický stoh , dříve známý jako ELK stack je sbírka nebo zásobník bezplatného a opensource softwaru od společnosti Elastic Company navržený pro centralizované protokolování.
Umožňuje vyhledávání, analýzu a vizualizaci protokolů z různých zdrojů v nesčetných formátech. Centralizované protokolování pomáhá při identifikaci problémů se serverem nebo aplikací ze společného bodu.
Elastic Stack Components
Elastic Stack se skládá ze 4 hlavních komponent.
- Elasticsearch :Toto je RESTful vyhledávač, který ukládá nebo uchovává všechna shromážděná data
- Logstash :Toto je komponenta, která zpracovává data a analyzuje je na elastické vyhledávání
- Kibana :Toto je webové rozhraní, které vizualizuje protokoly
- Beaty :Jedná se o lehké odesílatele dat, kteří doručují protokoly ze stovek/tisíců serverů na centrální server, na kterém je nakonfigurován ELK.
Pojďme se nyní podívat, jak můžete nainstalovat elastický stack na Ubuntu 18.04.
Předpoklady
Před zahájením instalace se ujistěte, že byste měli mít následující infrastrukturu.
- Server Ubuntu 18.04 LTS s přístupem root a uživatelem bez oprávnění root plus ufw firewall. Následující by měly být minimální požadavky na server.
- Ubuntu 18.04 LTS
- 4 GB RAM
- 2 procesory
- Na vašem systému je nainstalována Java 8, kterou budou vyžadovat Elasticsearch a Logstash.
- NGINX nainstalovaný na vašem serveru, který bude později nakonfigurován pro zpracování Kibana. Doporučená četba:Nainstalujte Nginx na Ubuntu 18.04
S tím se pojďme ponořit a začít s instalací Elastic stacku na Ubuntu.
1. Nainstalujte Elasticsearch na Ubuntu
Nejprve se chystáme importovat veřejný GPG klíč Elasticsearch do APT. Balíčky elastického zásobníku jsou obvykle podepisovány podpisovým klíčem Elasticsearch, aby byl váš systém chráněn před falšováním balíků. Navíc jsou ověřené balíčky považovány správcem balíčků za důvěryhodné.
Chcete-li importovat klíč GPG, spusťte:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Dále přidejte Elastic repository do sources.list.d
adresář pomocí příkazu níže.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Výstup těchto dvou příkazů je následující:
Výstup
Nyní aktualizujte úložiště systému pomocí příkazu níže.
sudo apt update
Ukázkový výstup
Nyní nainstalujte Elasticsearch pomocí příkazu níže.
sudo apt install elasticsearch
Výstup
2. Nakonfigurujte Elasticsearch na Ubuntu
Elasticsearch naslouchá na portu 9200. Omezíme však přístup zvenčí, aby vnější strany nemohly přistupovat k datům a vypnout elastický cluster. To znamená, že provedeme několik úprav konfiguračního souboru Elasticsearch, jak je uvedeno níže
sudo nano /etc/elasticsearch/elasticsearch.yml
Najděte network.host
atribut a odkomentujte jej a přidejte localhost
jako jeho hodnotu. Odkomentujte také http.port
atribut.
Výstup
network.host: localhost
http.port: 9200
Dále spusťte a povolte službu Elasticsearch, jak je znázorněno.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Výstup
V tuto chvíli by měl být Elasticsearch spuštěn. Můžete to ověřit spuštěním příkazu níže.
systemctl status elasticsearch
Výstup
Můžete také použít netstat
příkaz, jak je znázorněno.
netstat -pnltu
Můžete také spustit curl
příkaz, jak je znázorněno.
curl -X GET "localhost:9200"
Výstup
Skvělý! Dokončili jsme instalaci a konfiguraci Elasticsearch. Dále nainstalujeme a nakonfigurujeme Logstash.
3. Instalace a konfigurace Logstash
Druhou součástí Elastic stacku, kterou se chystáme nainstalovat, je Logstash. Logstash bude zodpovědný za shromažďování a centralizaci protokolů z různých serverů pomocí filebeat data shipper. Poté bude filtrovat a předávat data syslog do Elasticsearch.
Nejprve si ověřte, že OpenSSL běží. Chcete-li to provést, spusťte.
openssl version -a
Výstup
Chcete-li nainstalovat Logstash, spusťte níže uvedený příkaz.
sudo apt install logstash -y
Výstup
Dále upravte /etc/hosts
soubor a připojte následující.
18.224.44.11 elk-master
Kde 18.224.44.11 je IP adresa serveru masterELk.
Poté vygenerujeme klíč certifikátu SSL pro zabezpečení přenosu dat protokolu z klientského filebeatu na server logstash.
Chcete-li to provést, nejprve 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/
Nyní můžete vygenerovat certifikát SSL, 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.crt
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 nakonec soubor 'output-elasticsearch.conf' pro definování výstupu Elasticsearch.
Přejděte do adresáře Logstash a vytvořte soubor „filebeat-input.conf“ v adresáři „conf.d“.
cd /etc/logstash/
vim conf.d/filebeat-input.conf
Vložte následující konfiguraci.
input {
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 textový editor.
Pro zpracování dat protokolu syslog používáme modul filtru s názvem „grok“ pro analýzu souborů syslog.
Vytvořte novou konfiguraci „syslog-filter.conf“.
vim conf.d/syslog-filter.conf
Vložte konfiguraci níže.
filter {
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}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
Uložte a ukončete textový editor.
Nakonec vytvořte konfigurační soubor s názvem ‚output-elasticsearch.conf‘ pro výstup elasticsearch.
vim conf.d/output-elasticsearch.conf
Vložte následující obsah.
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 textový editor.
Když je to řečeno a hotovo, povolte a spusťte službu Logstash.
sudo systemctl enable logstash
sudo systemctl start logstash
Chcete-li ověřit, že je spuštěn Logstash, spusťte příkaz.
sudo systemctl status logstash
Ukázkový výstup
Můžete také použít netstat
příkaz, jak je znázorněno.
netstat -pnltu
4. Nainstalujte a nakonfigurujte Kibana na Ubuntu
Dále nainstalujeme Kibanu pomocí příkazu níže.
sudo apt install kibana -y
Výstup
Dále provedeme několik úprav konfiguračního souboru kibana.
vim /etc/kibana/kibana.yml
Vyhledejte a odkomentujte následující atributy.
server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
Uložte a ukončete textový editor.
Poté povolte a spusťte službu Kibana:
sudo systemctl enable kibana
sudo systemctl start kibana
Výstup
Můžete potvrdit, že kibana běží na výchozím portu 5601 pomocí netstat
příkaz, jak je znázorněno.
netstat -pnltu
Výstup
5. Instalace a konfigurace NGINX jako reverzní proxy pro Kibana
NGINX používáme jako reverzní proxy k dashboardům kibana. Musíte nainstalovat Nginx a „Apache2-utils“, jak je uvedeno níže.
sudo apt install nginx apache2-utils -y
Výstup
Dále vytvořte nový soubor virtuálního hostitele s názvem kibana.
vim /etc/nginx/vim sites-available/kibana
Vložte následující obsah do souboru virtuálního hostitele
server {
listen 80;
server_name localhost;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass https://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Uložte a ukončete textový editor. Doporučené čtení:Direktiva pro umístění NGINX.
Dále vytvořte základní ověření pro řídicí panel kibana pomocí htpasswd
příkaz, jak je znázorněno.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password
Výstup
Ve výše uvedeném příkladu je uživatelské jméno elastické a heslo bude takové, jaké poskytnete.
Dále aktivujte konfiguraci virtuálního hostitele Kibana a otestujte konfiguraci Nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Výstup
Bez chyb povolte a restartujte server Nginx.
systemctl enable nginx
systemctl restart nginx
6. Instalace a konfigurace Filebeat
V tomto kroku se chystáme nakonfigurovat odesílatele dat filebeat na našem serveru elk-master. To přenese všechny zprávy syslog do logstash, který bude zpracován a vizualizován kibanou.
Chcete-li nainstalovat filebeat, spusťte:
sudo apt install filebeat
Dále otevřete konfigurační soubor filebeat.
sudo vim /etc/filebeat/filebeat.yml
Logstash použijeme k dalšímu zpracování dat shromážděných aplikací Filebeat. Filebeat nebude potřeba k odeslání žádných dat přímo do Elasticsearch. Proto vyhledejte a okomentujte sekci elasticsearch, jak je znázorněno.
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
Dále přejděte do sekce Logstash a zrušte komentář, jak je znázorněno.
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
Povolte prospektory filebeat změnou hodnoty řádku ‚enabled‘ na ‚true‘.
enabled: true
Zadejte systémové soubory protokolu, které se mají odeslat na server logstash. V tomto příkladu přidáme soubor protokolu ssh ‚auth.log‘ a soubor syslog.
paths:
- /var/log/auth.log
- /var/log/syslog
Uložit a ukončit.
Nakonec zkopírujte soubor certifikátu logstash – logstash-forwarder.crt – do /etc/filebeat
adresář.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
Nyní spusťte a povolte filebeat.
systemctl start filebeat
systemctl enable filebeat
Chcete-li zkontrolovat stav spuštění souboru:
systemctl status filebeat
Výstup
7. Testování zásobníku Elasticsearch
Chcete-li otestovat náš elastický stack, otevřete svůj prohlížeč a procházejte IP adresu svého serveru následovanou portem 5601, což je port, kterému kibana naslouchá.
ip-address:5601
Zadejte uživatelské jméno a heslo a později se zobrazí následující obrazovka.
Klikněte na kartu „objevit“ a klikněte na „Filebeat“. Zobrazí se následující rozhraní, které vám umožní živé vysílání vizualizovaných dat.
Gratulujeme! Úspěšně jste nainstalovali a nakonfigurovali The Elastic Stack a Elastic Beat ‘Filebeat’ na vašem systému Ubuntu 18.04.