GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Elastic Stack na CentOS 7

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ů 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 CentOS 7 pro monitorování protokolů serveru. Poté vám ukážu, jak nainstalovat 'Elastic beats' na CentOS 7 a klientský operační systém Ubuntu 16.04.

Předpoklady

  • CentOS 7 64bit se 4 GB RAM – elk-master
  • CentOS 7 64bit s 1 GB RAM – klient1
  • Ubuntu 16.04 64bit s 1 GB RAM – klient2

Krok 1 – Příprava operačního systému

V tomto tutoriálu deaktivujeme SELinux na serveru CentOS 7. Upravte konfigurační soubor SELinux.

vim /etc/sysconfig/selinux

Změňte hodnotu SELinux z vynucování na vypnuto.

SELINUX=zakázáno

Poté restartujte server.

restartovat

Znovu se přihlaste k serveru a zkontrolujte stav SELinux.

getenforce

Ujistěte se, že je výsledek deaktivován.

Krok 2 – Instalace Java

Java je vyžadována pro nasazení elastického stacku. Elasticsearch vyžaduje Java 8, doporučuje se použít Oracle JDK 1.8. Nainstaluji Java 8 z oficiálního balíčku Oracle rpm.

Stáhněte si Java 8 JDK pomocí příkazu wget.

wget --no-cookies --no-check-certificate --header "Cookie:gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http:// download.oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u77-linux-x64.rpm"

Poté jej nainstalujte pomocí tohoto příkazu rpm;

rpm -ivh jdk-8u77-linux-x64.rpm

Nakonec zkontrolujte verzi Java JDK, abyste se ujistili, že funguje správně.

verze Java

Zobrazí se Java verze serveru.

Krok 3 – Instalace a konfigurace Elasticsearch

V tomto kroku nainstalujeme a nakonfigurujeme Elasticsearch. Nainstaluji Elasticsearch z rpm balíčku poskytnutého elastic.co a nakonfiguruji jej tak, aby běžel na localhost (aby bylo nastavení bezpečné a zajistilo se, že nebude dosažitelný z venčí).

Před instalací Elasticsearch přidejte na server klíč elastic.co.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Dále si stáhněte Elasticsearch 5.1 s wget a poté jej nainstalujte.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm
rpm -ivh elasticsearch-5.1.1.rpm

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 40. Tím zakážete odkládání paměti pro Elasticsearch.

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 editor.

Nyní upravte soubor elasticsearch.service pro konfiguraci zámku paměti.

vim /usr/lib/systemd/system/elasticsearch.service

Odkomentujte řádek LimitMEMLOCK.

LimitMEMLOCK=nekonečno

Uložte a ukončete.

Upravte konfigurační soubor sysconfig pro Elasticsearch.

vim /etc/sysconfig/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ěží na IP adrese localhost na portu 9200, zakázali jsme pro něj swapování paměti povolením mlockall na serveru CentOS.

Znovu načtěte systemd, povolte spuštění Elasticsearch při spouštění a poté spusťte službu.

sudo systemctl daemon-reload
sudo systemctl povolit elasticsearch
sudo systemctl spustit elasticsearch

Počkejte sekundu, než se Eelasticsearch spustí, poté zkontrolujte otevřené porty na serveru a ujistěte se, že 'stav' pro port 9200 je 'LISTEN'.

netstat -plntu

Poté zkontrolujte zámek paměti, abyste se ujistili, že mlockall je povoleno, a zkontrolujte, zda je spuštěn Elasticsearch pomocí příkazů níže.

curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'

Níže uvidíte výsledky.

Krok 4 – Instalace a konfigurace Kibana pomocí Nginx

V tomto kroku nainstalujeme a nakonfigurujeme Kibana s webovým serverem Nginx. Kibana bude naslouchat na IP adrese localhost a Nginx funguje jako reverzní proxy pro aplikaci Kibana.

Stáhněte si Kibana 5.1 pomocí wget a poté ji nainstalujte pomocí příkazu rpm:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm
rpm -ivh kibana-5.1.1-x86_64.rpm

Nyní upravte konfigurační soubor Kibana.

vim /etc/kibana/kibana.yml

Odkomentujte konfigurační řádky pro server.port, server.host a elasticsearch.url.

server.port:5601
server.host:"localhost"
elasticsearch.url:"http://localhost:9200"

Uložte a ukončete.

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 dokončena. Nyní musíme nainstalovat Nginx a nakonfigurovat jej jako reverzní proxy, abychom mohli přistupovat ke Kibaně z veřejné IP adresy.

Nginx je k dispozici v úložišti Epel, nainstalujte epel-release pomocí yum.

yum -y install epel-release

Dále nainstalujte balíček Nginx a httpd-tools.

yum -y nainstalujte nginx httpd-tools

Balíček httpd-tools obsahuje nástroje pro webový server, pro Kibana použijeme základní autentizaci htpasswd.

Upravte konfigurační soubor Nginx a odeberte 'server { } ', abychom mohli přidat novou konfiguraci virtuálního hostitele.

cd /etc/nginx/
vim nginx.conf

Odstraňte blok serveru { }.

Uložte soubor a ukončete vim.

Nyní musíme vytvořit nový konfigurační soubor virtuálního hostitele v adresáři conf.d. Vytvořte nový soubor 'kibana.conf' pomocí vim.

vim /etc/nginx/conf.d/kibana.conf

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 a ukončete.

Poté vytvořte nový základní ověřovací soubor pomocí příkazu htpasswd.

sudo htpasswd -c /etc/nginx/.kibana-user admin
ZADEJTE HESLO

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 spusťte Nginx.

nginx -t
systemctl povolit nginx
systemctl spustit nginx

Krok 5 – Instalace a konfigurace Logstash

V tomto kroku nainstalujeme Logsatash a nakonfigurujeme jej tak, aby centralizoval serverové protokoly od klientů pomocí filebeat, poté filtrujeme a transformujeme data Syslog a přesuneme je do úložiště (Elasticsearch).

Stáhněte si Logstash a nainstalujte jej pomocí rpm.

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm
rpm -ivh logstash-5.1.1.rpm

Vygenerujte nový soubor certifikátu SSL, aby klient mohl identifikovat elastický server.

Přejděte do adresáře tls a upravte soubor openssl.cnf.

cd /etc/pki/tls
vim openssl.cnf

Přidejte nový řádek do sekce '[ v3_ca ]' pro identifikaci serveru.

[ v3_ca ]

# IP adresa serveru
subjectAltName =IP:10.0.15.10

Uložte a ukončete.

Vygenerujte soubor certifikátu pomocí příkazu openssl.

openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out / etc/pki/tls/certs/logstash-forwarder.crt

Soubory certifikátů lze nalézt v adresářích '/etc/pki/tls/certs/' a '/etc/pki/tls/private/'.

Dále vytvoříme nové konfigurační soubory pro Logstash. Vytvoříme nový soubor „filebeat-input.conf“ pro konfiguraci zdrojů protokolu pro filebeat, poté soubor „syslog-filter.conf“ pro zpracování syslog a 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 podadresáři 'conf.d'.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Konfigurace vstupu:vložte konfiguraci níže.

vstup {
  beats {
    port => 5443
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.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 {
      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 {
       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.

Nakonec přidejte logstash, aby se spustil při spouštění a spusťte službu.

sudo systemctl povolit logstash
sudo systemctl spustit logstash

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' pro přenos souborů protokolu dat na server Logstash přes připojení SSL.

Přihlaste se k serveru client1. Poté zkopírujte soubor certifikátu z elastického serveru na server klient1.

ssh [e-mail chráněný]

Zkopírujte soubor certifikátu pomocí příkazu scp.

scp [e-mail chráněný]:~/logstash-forwarder.crt .
TYP hesla k serveru elk

Vytvořte nový adresář a přesuňte soubor certifikátu do tohoto adresáře.

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

Dále importujte elastický klíč na server client1.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Stáhněte si Filebeat a nainstalujte jej pomocí rpm.

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm
rpm -ivh filebeat-5.1.1-x86_64.rpm

Filebeat byl nainstalován, přejděte do konfiguračního adresáře a upravte soubor 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

V části cesty na řádku 21 přidejte nové soubory protokolu. Přidáme dva soubory '/var/log/secure' pro aktivitu ssh a '/var/log/messages' pro protokol serveru.

  cesty:
    - /var/log/secure
    - /var/log/messages

Přidejte novou konfiguraci na řádek 26 pro definování souborů typu syslog.

  typ dokumentu:syslog

Filebeat ve výchozím nastavení používá jako výstupní cíl Elasticsearch. V tomto tutoriálu jej změníme na Logshtash. Zakažte výstup Elasticsearch přidáním komentářů na řádky 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 konfiguraci, která je zobrazena níže.

output.logstash:
  # Hostitelé Logstash
  hostitelé:["10.0.15.10:5443"]
  bulk_max_size:1024
  ssl.certificate_authorities:["/etc/ pki/tls/certs/logstash-forwarder.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Uložte soubor a ukončete vim.

Přidejte Filebeat ke spuštění při spouštění a spusťte jej.

sudo systemctl povolit filebeat
sudo systemctl spustit filebeat

Krok 7 – Instalace a konfigurace Filebeat na klientovi Ubuntu

Připojte se k serveru pomocí ssh.

ssh [e-mail chráněný]

Zkopírujte soubor certifikátu do klienta pomocí příkazu scp.

scp [e-mail chráněný]:~/logstash-forwarder.crt .

Vytvořte nový adresář pro soubor certifikátu a přesuňte soubor do tohoto adresáře.

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

Přidejte elastický klíč na server.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Stáhněte si balíček Filebeat .deb a nainstalujte jej pomocí příkazu dpkg.

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
dpkg -i filebeat-5.1.1-amd64.deb

Přejděte do konfiguračního adresáře filebeat a upravte soubor 'filebeat.yml' pomocí vim.

cd /etc/filebeat/
vim filebeat.yml

Přidejte nové cesty k souboru protokolu v sekci konfigurace cest.

  cesty:
    - /var/log/auth.log
    - /var/log/syslog

Nastavte typ dokumentu na syslog.

  typ dokumentu:syslog

Zakažte výstup elasticsearch přidáním komentářů k řádkům zobrazeným níže.

#-------------------------- 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 hodnoty, jak je uvedeno níže.

output.logstash:
  # Hostitelé Logstash
  hostitelé:["10.0.15.10:5443"]
  bulk_max_size:1024
  ssl.certificate_authorities:["/etc/ pki/tls/certs/logstash-forwarder.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Uložte soubor a ukončete vim.

Přidejte Filebeat ke spuštění při spouštění a spusťte jej.

sudo systemctl povolit filebeat
sudo systemctl spustit filebeat

Zkontrolujte stav služby.

systemctl status filebeat

Krok 8 – Testování elastického stohu

Otevřete webový prohlížeč a navštivte doménu elastického zásobníku, kterou jste použili v konfiguraci Nginx, moje je 'elk-stack.co'. Přihlaste se jako uživatel správce pomocí svého hesla 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 tlačítko '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 jediným kliknutím na tlačítko 'hvězda'.

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 toho můžete dělat mnohem víc, jen si pohrajte s dostupnými možnostmi.

Elastic Stack byl nainstalován na server CentOS 7. Filebeat byl nainstalován na CentOS 7 a klienta Ubuntu.


Cent OS
  1. Jak nainstalovat Graylog2 na CentOS 7 / RHEL 7

  2. Jak nainstalovat Ntopng na CentOS 6

  3. Jak nainstalovat ELK Stack na CentOS 7

  1. Jak nainstalovat balíčky RPM na CentOS

  2. Jak nainstalovat Elasticsearch na CentOS 7

  3. Jak nainstalovat Elasticsearch na CentOS 8

  1. Jak nainstalovat Graylog s Elasticsearch na CentOS 8

  2. Jak nainstalovat LAMP Stack na CentOS 7

  3. Jak nainstalovat Elastic Stack (Elasticsearch, Logstash a Kibana) na CentOS 8