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 pomocí 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ů protokolu. 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ážeme krok za krokem instalaci a konfiguraci „Elastic Stack“ na serveru CentOS 8. Nainstalujeme a nastavíme Elasticsearch, Logstash a Kibana. A pak nastavte Beats 'filebeat' na klientech systému Ubuntu a CentOS.
Předpoklady
- CentOS 8 64bit se 4 GB RAM – elk-master
- CentOS 8 64bit s 1 GB RAM – klient01
- Ubuntu 18.04 64bit s 1 GB RAM – klient02
Co uděláme:
- Přidat Elastic Repository na CentOS 8 Server
- Nainstalujte a nakonfigurujte Elasticsearch
- Nainstalujte a nakonfigurujte řídicí panel Kibana
- Nastavit Nginx jako reverzní proxy pro Kibana
- Nainstalujte a nakonfigurujte Logstash
- Nainstalujte a nakonfigurujte Filebeat
- Testování
Krok 1 – Přidání elastického úložiště
Nejprve přidáme klíč a úložiště Elasticsearc na server CentOS 8. S úložištěm elasticsearch, které poskytuje elastic.co, jsme schopni instalovat elastické produkty včetně Elasticsearch, Logstash, Kibana a Beats.
Přidejte elastický klíč do systému pomocí následujícího příkazu.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Poté přejděte do adresáře '/etc/yum.repos.d' a vytvořte nový soubor úložiště 'elasticsearch.repo'.
cd /etc/yum.repos.d/
vim elasticsearch.repo
Níže vložte úložiště elasticsearch.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Uložit a zavřít.
Nyní zkontrolujte všechna dostupná úložiště v systému pomocí příkazu dnf níže.
dnf repolist
A získáte úložiště elasticsearch, které bylo přidáno na server CentOS 8.
V důsledku toho můžete nainstalovat produkty Elastic, jako jsou Elasticsearch, Logstash a Kibana atd.
Krok 2 – Instalace a konfigurace Elasticsearch
V tomto kroku nainstalujeme a nakonfigurujeme Elasticsearch.
Nainstalujte balíček Elasticsearch pomocí příkazu dnf níže.
sudo dnf install elasticsearch -y
Po dokončení instalace přejděte do adresáře '/etc/elasticsearch' a upravte konfigurační soubor 'elasticsearch.yml' pomocí editoru vim.
cd /etc/elasticsearch/
vim elasticsearch.yml
Odkomentujte následující řádky a změňte hodnotu pro každý řádek, jak je uvedeno níže.
network.host: 127.0.0.1
http.port: 9200
Uložit a zavřít.
Volitelně:
Elastiksearch můžete vyladit úpravou konfiguračního souboru JVM 'jvm.options' a nastavením velikosti haldy podle toho, kolik máte paměti.
Upravte konfiguraci JVM 'jvm.options' pomocí editoru vim.
vim jvm.options
Změňte minimální/maximální velikost haldy pomocí konfigurace Xms a Xmx, jak je uvedeno níže.
-Xms512m
-Xmx512m
Uložit a zavřít.
Dále znovu načtěte konfiguraci správce systemd a přidejte službu elasticsearch do doby spouštění.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
Poté spusťte službu elasticsearch.
sudo systemctl start elasticsearch
Výsledkem je, že elasticsearch běží za místní IP adresou '127.0.0.1' s výchozím portem '9200' na serveru CentOS 8.
Elastické vyhledávání můžete zkontrolovat pomocí příkazu curl níže.
curl -XGET 'http://127.0.0.1:9200/?pretty'
A níže je výsledek, který dostanete.
Krok 3 – Instalace a konfigurace řídicího panelu Kibana
Po instalaci elasticsearch nainstalujeme a nakonfigurujeme Kibana Dashboard na serveru CentOS 8.
Nainstalujte řídicí panel Kibana pomocí příkazu dnf níže.
sudo dnf install kibana
Po dokončení instalace přejděte do adresáře '/etc/kibana' a upravte konfigurační soubor 'kibana.yml'.
cd /etc/kibana/
vim kibana.yml
Odkomentujte a změňte konfiguraci některých linek, jak je uvedeno níže.
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
Uložit a zavřít.
Dále přidejte službu kibana do spouštění systému a spusťte službu kibana.
sudo systemctl enable kibana
sudo systemctl start kibana
Služba Kibana je spuštěna a spuštěna na serveru CentOS 8, zkontrolujte ji pomocí následujících příkazů.
systemctl status kibana
netstat -plntu
A dostanete výsledek, jak je uvedeno níže.
V důsledku toho je služba Kibana spuštěna a běží na výchozím portu TCP '5601'.
Krok 4 – Nastavení Nginx jako reverzního proxy pro Kibana
V tomto kroku nainstalujeme webový server Nginx a nastavíme jej jako reverzní proxy pro Kibana Dashboard.
Nainstalujte Nginx a httpd-tools pomocí příkazu dnf níže.
sudo dnf install nginx httpd-tools
Po dokončení instalace přejděte do adresáře '/etc/nginx/conf.d' a vytvořte nový konfigurační soubor 'kibana.conf'.
cd /etc/nginx/conf.d/
vim kibana.conf
Vložte následující konfiguraci.
server {
listen 80;
server_name elk.hakase-labs.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://127.0.0.1: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žit a zavřít.
Dále musíme vytvořit základní autentizaci pro zabezpečení přístupu Kibana. Změňte uživatele 'hakase' za svého a spusťte příkaz htpasspwd, jak je uvedeno níže.
sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD
Zadejte své heslo a otestujte konfiguraci nginx.
nginx -t
Ujistěte se, že nedošlo k chybě.
Nyní přidejte službu nginx do spouštění systému a spusťte službu nginx.
systemctl enable nginx
systemctl start nginx
V důsledku toho byla dokončena instalace a konfigurace Nginx jako reverzní proxy pro Kibana Dashboard.
Krok 5 – Instalace a konfigurace Logstash
V tomto kroku nainstalujeme a nakonfigurujeme logstash odesílatele protokolů. Nainstalujeme logstash, nastavíme vstupní doby, nastavíme filtrování syslog pomocí pluginu logstash s názvem 'grok' a poté nastavíme výstup na elasticsearch.
Nainstalujte logstash pomocí příkazu dnf níže.
sudo dnf install logstash
Po dokončení instalace přejděte do adresáře '/etc/logstash' a upravte konfigurační soubor JVM 'jvm.options' pomocí editoru vim.
cd /etc/logstash/
vim jvm.options
Změňte minimální/maximální velikost haldy pomocí konfigurace Xms a Xmx, jak je uvedeno níže.
-Xms512m
-Xmx512m
Uložit a zavřít.
Dále přejděte do adresáře '/etc/logstash/conf.d' a vytvořte konfigurační soubor pro vstup beatů s názvem 'input-beat.conf'.
cd /etc/logstash/conf.d/
vim input-beat.conf
Vložte následující konfiguraci.
input {
beats {
port => 5044
}
}
Uložit a zavřít.
Nyní vytvořte konfigurační soubor 'syslog-filter.conf'.
vim syslog-filter.conf
Vložte následující konfiguraci.
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žit a zavřít.
A pak vytvořte výstupní konfiguraci pro elasticsearch 'output-elasticsearch.conf'.
vim output-elasticsearch.conf
Vložte následující konfiguraci.
output {
elasticsearch { hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
Uložit a zavřít.
Dále přidejte službu logstash do spouštění systému a spusťte službu logstash.
systemctl enable logstash
systemctl start logstash
Služba logstash je v provozu, zkontrolujte pomocí následujících příkazů.
systemctl status logstash
netstat -plntu
A dostanete výsledek, jak je uvedeno níže.
Výsledkem je, že odesílatel protokolu logstash je spuštěn a spuštěn na serveru CentOS 8 s výchozím portem TCP „5044“. A základní instalace Elastic Stack byla dokončena a jsme připraveni odeslat a monitorovat naše protokoly na server Elastic (ELK Stack).
Krok 6 – Instalace Filebeat na klienta
V tomto kroku vám ukážeme, jak nastavit filebeat v systému Ubuntu a CentOS. Nainstalujeme filebeat a nakonfigurujeme pro odesílání protokolů z obou serverů do Logstashe na elastickém serveru.
- Instalace Filebeat na CentOS 8
Přidejte klíč elasticsearch do systému CentOS 8 pomocí následujícího příkazu.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Nyní přejděte do adresáře '/etc/yum.repos.d' a vytvořte soubor 'elasticsearch.repo' pomocí editoru vim.
cd /etc/yum.repos.d/
vim elasticsearch.repo
Vložte následující konfiguraci.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Uložit a zavřít.
Nyní nainstalujte filebeat pomocí příkazu dnf níže.
sudo dnf install filebeat
Počkejte na dokončení instalace filebeat.
- Instalace Filebeat na Ubuntu 18.04
Nejprve nainstalujte balíčky apt-transport-https.
sudo apt install apt-transport-https
Poté přidejte klíč elasticsearch a úložiště pomocí následujících příkazů.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Nyní aktualizujte všechna úložiště a nainstalujte filebeat do systému ubuntu pomocí příkazu apt níže.
sudo apt update
sudo apt install filebeat
Počkejte na dokončení instalace filebeat.
- Konfigurace Filebeat
Konfigurace filebeat se nachází v adresáři '/etc/filebeat'. Přejděte do adresáře filebeat a upravte konfigurační soubor 'filebeat.yml'.
cd /etc/filebeat/
vim filebeat.yml
Nyní deaktivujte výchozí výstup elasticsearch, jak je uvedeno níže.
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["127.0.0.1:9200"]
Poté povolte výstup logstash a zadejte IP adresu hostitele logstash.
output.logstash:
# The Logstash hosts
hosts: ["10.5.5.25:5044"]
Uložit a zavřít.
Dále musíme povolit moduly filebeat. Spuštěním příkazu filebeat níže získáte seznam modulů filebeat.
filebeat modules list
Povolte modul 'system' pomocí následujícího příkazu.
filebeat modules enable system
Systémový modul filebeat byl aktivován pomocí konfiguračního souboru 'modules.d/system.yml'.
Upravte konfiguraci systémového modulu pomocí editoru vim.
cd /etc/filebeat/
vim modules.d/system.yml
Odkomentujte cestu k souboru syslog a autorizačnímu souboru ssh.
Pro systém CentOS:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/secure"]
Pro systém Ubuntu:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/syslog"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/auth.log"]
Uložit a zavřít.
Nyní přidejte službu filebeat do spouštění systému a spusťte službu.
systemctl enable filebeat
systemctl start filebeat
Služba filebeat je v provozu, můžete to zkontrolovat pomocí následujícího příkazu.
systemctl status filebeat
A zobrazí se vám výsledek, jak je uvedeno níže.
Níže je uveden výsledek ze serveru CentOS 8.
A níže je ze serveru Ubuntu 18.04.
V důsledku toho bylo navázáno spojení mezi filebeat a službou logstash na IP adrese serveru elastického zásobníku '10.5.5.12'.
Krok 7 – Testování
Otevřete webový prohlížeč a do adresního řádku zadejte název instalační domény Elastic Stack.
http://elk.hakase-labs.io/
Nyní se přihlaste do Kibana Dashboard pomocí základního ověřovacího účtu, který jste vytvořili.
A získáte Kibana Dashboard, jak je uvedeno níže.
Nyní se připojte k datům indexu elasticsearch, která se automaticky vytvořila po připojení filebeat k logstash. Klikněte na 'Připojit k indexu Elasticsearch odkaz.
Vytvořte 'filebeat-* ' a klikněte na 'Další krok '.
Jako název filtru vyberte '@timestamp a klikněte na možnost Vytvořit vzor indexu '.
A 'filebeat-* Vzor indexu byl vytvořen, klikněte na tlačítko 'Objevit ' na levé straně.
A získáte data protokolu z klientů filebeat, jak je uvedeno níže.
Protokoly pro systém CentOS 8.
Přihlaste se k systému Ubuntu.
V důsledku toho byla data protokolu definovaná v systémovém modulu filebeat odeslána na server elastického zásobníku.
A instalace a konfigurace Elastic Stack na CentOS 8 byla úspěšně dokončena.