Elastická vrstva široce známá jako ELK stack , je to skupina opensource produktů jako Elasticsearch , Logstash a Kibana . Elastic Stack je vyvinut a udržován společností Elastic. Pomocí elastického zásobníku lze přidávat systémové protokoly do Logstashe, je to nástroj pro shromažďování dat, který přijímá protokoly nebo data ze všech zdrojů a normalizuje protokoly a poté protokoly předává Elasticsearch k analýze , indexování , vyhledávání a ukládání a konečně pomocí Kibana můžeme reprezentovat vizualizovaná data, pomocí Kibana můžeme také vytvářet interaktivní grafy a diagramy na základě uživatelských dotazů.
V tomto článku si ukážeme, jak nastavit cluster víceuzlového elastického zásobníku (ELK Stack) na serverech RHEL 8 / CentOS 8. Níže jsou uvedeny podrobnosti o mém klastru elastických stohů:
Elastické vyhledávání:
- Tři servery s minimálním RHEL 8 / CentOS 8
- IPs &Hostname – 192.168.56.40 (elasticsearch1.linuxtechi. local), 192.168.56.50 (elasticsearch2.linuxtechi. local), 192.168.56.60 (elasticsearch3.linuxtechi. local)
Logstash:
- Dva servery s minimálním RHEL 8 / CentOS 8
- IPy a název hostitele – 192.168.56.20 (logstash1.linuxtechi. local) , 192.168.56.30 (logstash2.linuxtechi. local)
Kibana:
- Jeden server s minimálním RHEL 8 / CentOS 8
- Název hostitele – kibana.linuxtechi.local
- IP – 192.168.56.10
Filebeat:
- Jeden server s minimálním CentOS 7
- IP a název hostitele – 192.168.56.70 (webový server)
Začněme nastavením clusteru Elasticsearch
Nastavení 3 uzlu Elasticsearch clusteru
Jak jsem již uvedl, ponechal jsem si uzly pro cluster Elasticsearch, přihlaste se ke každému uzlu, nastavil název hostitele a nakonfiguroval úložiště yum/dnf.
Pomocí níže uvedeného příkazu hostnamectl nastavte název hostitele na příslušných uzlech
[[e-mail chráněný] ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# set hostnamectl set -hostname "elasticsearch2.linuxtechi. local"[[e-mail chráněný] ~]# exec bash[[e-mail chráněný] ~]#[[e-mail chráněný] ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[[email protected ] ~]# exec bash[[e-mail chráněn] ~]#
Pro systém CentOS 8 nepotřebujeme konfigurovat žádné úložiště balíčků OS a pro RHEL 8 Server, pokud máte platné předplatné a poté si ho předplatili u Red Hat pro získání úložiště balíčků. V případě, že chcete nakonfigurovat místní úložiště yum/dnf pro balíčky OS, přejděte na níže uvedenou adresu URL:
Jak nastavit místní úložiště Yum/DNF na serveru RHEL 8 pomocí DVD nebo ISO souboru
Nakonfigurujte úložiště balíčků Elasticsearch na všech uzlech, vytvořte soubor elastic.repo ve složce /etc/yum.repos.d/ s následujícím obsahem
~]# vi /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Elasticsearch úložiště pro 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
uložit a opustit soubor
Pomocí níže uvedeného příkazu rpm na všech třech uzlech importujte veřejný podpisový klíč Elastic
~]# ot./min --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Přidejte následující řádky do souboru /etc/hosts na všechny tři uzly,
192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.168.56.60 > elastici. 3 cal prexNainstalujte Javu na všechny tři uzly pomocí příkazu yum / dnf,
[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -yNainstalujte Elasticsearch pomocí příkazu beneath dnf na všechny tři uzly,
[[e-mail chráněný] ~]# instalace dnf elasticsearch -y[[e-mail chráněný] ~]# instalace dnf elasticsearch -y[[e-mail chráněný] ~]# instalace dnf elasticsearch -yPoznámka: V případě, že je v každém uzlu Elasticsearch povolen a spuštěn firewall operačního systému, povolte následující porty pomocí příkazu firewall-cmd,
~]# firewall-cmd --permanent --add-port=9300/tcp~]# firewall-cmd --permanent --add-port=9200/tcp~]# firewall-cmd --reloadNakonfigurujte Elasticsearch, upravte soubor “/etc/elasticsearch/elasticsearch.yml ” na všech třech uzlech a přidejte následující,
~]# vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name:opn-clusternode.name:elasticsearch1.linuxtechi.localnetwork.host:192.168 .56.40http.port:9200discovery.seed_hosts:["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]cluster.initial_master_nodes:["elasticsearch1.cal2elaxtechisearch" .linuxtechi.local", "elasticsearch3.linuxtechi.local"]……………………………………………………Poznámka: na každém uzlu přidejte správný název hostitele do parametru node.name a ip adresu do parametru network.host a ostatní parametry zůstanou stejné.
Nyní spusťte a povolte službu Elasticsearch na všech třech uzlech pomocí následujícího příkazu systemctl,
~]# systemctl daemon-reload~]# systemctl povolit elasticsearch.service~]# systemctl spustit elasticsearch.servicePomocí níže uvedeného příkazu „ss“ ověřte, zda uzel elasticsearch začíná naslouchat na portu 9200,
[[e-mail chráněný] ~]# ss -tunlp | grep 9200tcp POSLECHNUTÍ 0 128 [::ffff:192.168.56.40]:9200 *:* d uživatelů :(("java", d uživatelů :("java",pid = ]) [] předem [ [ > 2756Pomocí následujících příkazů curl ověřte stav clusteru Elasticsearch
[[chráněn e-mailem] ~]# curl http://elasticsearch1.linuxtechi.local:9200[[chráněn e-mailem] ~]# curl -X GET http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?pěknáVýstup nad příkazem by byl něco jako níže,
Výše uvedený výstup potvrzuje, že jsme úspěšně vytvořili 3 node Elasticsearch cluster a stav clusteru je také zelený.
Poznámka: Pokud chcete upravit velikost haldy JVM, pak jste upravili soubor „/etc/elasticsearch/jvm.options ” a změňte níže uvedené parametry tak, aby vyhovovaly vašemu prostředí,
- -Xms1g
- -Xmx1g
Nyní se přesuneme k uzlům Logstash
Nainstalujte a nakonfigurujte Logstash
Proveďte následující kroky na obou uzlech Logstash,
Přihlaste se do obou uzlů a nastavte název hostitele pomocí následujícího příkazu hostnamectl,
[[e-mail chráněný] ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# set hostnamectl set -hostname "logstash2.linuxtechi.local"[[e-mail chráněný] ~]# exec bash[[e-mail chráněný] ~]#
Přidejte následující položky do souboru /etc/hosts v obou uzlech logstash
~]# vi /etc/hosts192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.608.56 prextechi 36Uložte a ukončete soubor
Nakonfigurujte úložiště Logstash na obou uzlech, vytvořte soubor logstash.repo ve složce /ete/yum.repos.d/ s následujícím obsahem,
~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=Elasticsearch úložiště pro 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-mdUložte a ukončete soubor, spusťte následující příkaz rpm pro import podpisového klíče
~]# ot./min --import https://artifacts.elastic.co/GPG-KEY-elasticsearchNainstalujte Java OpenJDK na oba uzly pomocí následujícího příkazu dnf,
~]# instalace dnf java-openjdk -ySpuštěním následujícího příkazu dnf z obou uzlů nainstalujte logstash,
[[email protected] ~]# dnf install logstash -y[[email protected] ~]# dnf install logstash -yNyní nakonfigurujte logstash, proveďte níže uvedené kroky na obou logstash uzlech
Vytvořte soubor logstash conf, nejprve zkopírujeme vzorový soubor logstash pod ‘/etc/logstash/conf.d/’
# cd /etc/logstash/# cp logstash-sample.conf conf.d/logstash.confUpravte soubor conf a aktualizujte následující obsah,
# vi conf.d/logstash.confinput { beats { port => 5044 }}výstup { elasticsearch { hostitelé => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"] index => "%{[@metadata][beat]}-%{[@metadata][verze]}-%{+ RRRR.MM.dd}" #user => "elastický" #password => "změna" }}V sekci výstupu zadejte v parametru hosts FQDN všech tří uzlů Elasticsearch, ostatní parametry zůstanou tak, jak jsou.
Povolte port logstash „5044“ v bráně firewall OS pomocí následujícího příkazu firewall-cmd,
~ # firewall-cmd --permanent --add-port=5044/tcp~ # firewall-cmd –reloadNyní spusťte a povolte službu Logstash, spusťte následující příkazy systemctl na obou uzlech
~]# systemctl spustí logstash~]# systemctl povolí logstashPomocí níže uvedeného příkazu ss ověřte, zda služba logstash začne naslouchat na 5044,
[[e-mail chráněný] ~]# ss -tunlp | grep 5044tcp POSLECHNUTÍ 0 128 *:5044 *:* uživatelů: ("Java", předběžně chráněno) předem ) [d] 6 předem [d]Výše uvedený výstup potvrzuje, že logstash byl úspěšně nainstalován a nakonfigurován. Pojďme k instalaci Kibana.
Nainstalujte a nakonfigurujte Kibana
Přihlaste se do uzlu Kibana, nastavte název hostitele pomocí hostnamectl příkaz,
[[e-mail chráněný] ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[[e-mail chráněný] ~]# exec bash[[e-mail chráněný] ~]#Upravte soubor /etc/hosts a přidejte následující řádky
192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.168.56.60 > elastici. 3 cal prexNastavte úložiště Kibana pomocí následujícího,
[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Elasticsearch repository for 7.x packagesbaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md[[e-mail chráněný] ~]# ot./min --import https:// artifacts.elastic.co/GPG-KEY-elasticsearchSpusťte níže uvedený příkaz dnf a nainstalujte kibana,
[[email protected] ~]# yum install kibana -yNakonfigurujte Kibana úpravou souboru „/etc/kibana/kibana.yml “
[[email protected] ~]# vim /etc/kibana/kibana.yml…………server.host:"kibana.linuxtechi.local"server.name:"kibana.linuxtechi.local"elasticsearch.hosts:["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]…………Spusťte a povolte službu kibana
[[e-mail chráněný] ~]# systemctl start kibana[[email protected] ~]# systemctl povolení kibanaPovolte port Kibana „5601“ v bráně firewall OS
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[e-mail chráněný] ~]# firewall-cmd --reloadsuccess[[e-mail chráněný] ~]#Vstupte na portál / GUI Kibana pomocí následující adresy URL:
http://kibana.linuxtechi.local:5601
Z řídicího panelu můžeme také zkontrolovat stav našeho clusteru Elastic Stack
To potvrzuje, že jsme úspěšně nastavili víceuzlový cluster Elastic Stack na RHEL 8 / CentOS 8.
Nyní pošleme několik protokolů do logstash uzlů přes filebeat z jiných linuxových serverů. V mém případě mám jeden CentOS 7 Server, všechny důležité protokoly tohoto serveru přesunu do logstash přes filebeat.
Přihlaste se k serveru CentOS 7 a nainstalujte balíček filebeat pomocí následujícího příkazu rpm,
[[email protected] ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmNačítání https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmPříprava... ############################### [100%]Aktualizace / instalace... 1:filebeat-7.3.1-1 ############################## ## [100%][[e-mail chráněno] ~]#Upravte soubor /etc/hosts a přidejte následující položky,
192.168.56.20 logstash1.linuxtechi.local192.168.56.30 logstash2.linuxtechi.localNyní nakonfigurujte filebeat tak, aby mohl odesílat protokoly do logstash uzlů pomocí techniky vyrovnávání zátěže, upravte soubor “/etc/filebeat/filebeat.yml “ a přidejte následující parametry,
V části „filebeat.inputs: ' změna sekce 'povoleno:false ‘ na ‘povoleno:true “ a pod „cestami parametr ” specifikuje soubory protokolu umístění, které můžeme odeslat do logstash, ve výstupní sekci Elasticsearch uveďte komentář „output.elasticsearch “ a hostitel parametr. V sekci Výstup Logstash odstraňte komentáře pro „output.logstash: “ a „hostitelé: “ a přidejte oba uzly logstash do parametrů hostitelů a také „loadbalance:true “.
[[email protected] ~]# vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs:- type:log enabled:true cesty: - /var/log/messages - /var/log/dmesg - /var/log/maillog - /var/log/boot.log#output.elasticsearch: # hostitelé:["localhost:9200"]output.logstash: hostitelé:["logstash1.linuxtechi. local:5044", "logstash2.linuxtechi.local:5044"] vyvážení zatížení:true………………………………………Spusťte a povolte službu filebeat pomocí příkazů systemctl,
[[email protected] ~]# systemctl spustí filebeat[[email protected] ~]# systemctl aktivuje filebeatNyní přejděte do grafického uživatelského rozhraní Kibana a ověřte, zda jsou nové indexy viditelné nebo ne
Vyberte možnost Správa z levého postranního panelu a poté klikněte na Správa indexu v části Elasticsearch
Jak můžeme vidět výše, indexy jsou nyní viditelné, pojďme vytvořit vzor indexu,
Klikněte na „Vzory indexu“ v sekci Kibana, vyzve nás to k vytvoření nového vzoru, klikněte na „Vytvořit vzor indexu “ a zadejte název vzoru jako „filebeat “
Klikněte na Další krok
Vyberte „Časové razítko ” jako časový filtr pro vzor indexu a poté klikněte na „Vytvořit vzor indexu“
Nyní klikněte na Discover pro zobrazení vzoru indexu počtu souborů v reálném čase
To potvrzuje, že agent Filebeat byl úspěšně nakonfigurován a na řídicím panelu Kibana jsme schopni vidět protokoly v reálném čase.
To je z tohoto článku vše. Neváhejte se prosím podělit o svou zpětnou vazbu a komentáře pro případ, že vám tyto kroky pomohou nastavit víceuzlový Elastic Stack Cluster na systému RHEL 8 / CentOS 8.
Kroky instalace CentOS 8 se snímky obrazovky Jak nakonfigurovat statickou IP adresu v RHEL 8 / CentOS 8Cent OS