V tomto příspěvku se podíváme na to, jak nainstalovat Elasticsearch, Logstash a Kibana 4 na CentOS 7 / RHEL 7. Tento zásobník ELK nám pomáhá ukládat a spravovat protokoly na centralizovaném místě. Zásobník ELK se skládá ze čtyř životně důležitých součástí, které tvoří skvělý zásobník pro analýzu problémů korelací událostí v konkrétním čase.
Centralizace protokolů usnadní život správcům systému při analýze problémů a problémů, aniž by museli procházet protokoly na každém počítači, a vizualizovat tyto protokoly vedení pro obchodní požadavky.
Součásti:
Logstash – Zpracovává (shromažďuje, analyzuje a odesílá je do Elasticsearch) příchozích protokolů.
Elasticsearch – Ukládá protokoly pocházející z Logstash.
Kibana 4 – Webové rozhraní pro vizualizaci protokolů (má vlastní rozhraní).
Výše uvedené tři jsou nainstalovány na serveru.
Logstash-forwarder – instalovaný na klientských počítačích, odesílá protokol do Logstash prostřednictvím protokolu dřevorubců.
Verze aplikace:
Tento článek používá níže uvedené verze softwaru pro ELK stack.
Elastisearch 1.5.0
logstash-1.4.2
Kibana 4
logstash-forwarder-0.4.0
Předpoklady:
1. Požadovali bychom nainstalovat buď openJDK nebo Oracle JDK. Doporučuje se nainstalovat Oracle JDK. Ověřte verzi Java pomocí následujícího příkazu.
# java -versionjava verze "1.8.0_11" Java(TM) SE Runtime Environment (sestavení 1.8.0_11-b12)Java HotSpot(TM) 64bitový server VM (sestavení 25.11-b03, smíšený režim)
2. Nakonfigurujte úložiště EPEL na CentOS 7 / RHEL 7.
3. Nainstalujte wget.
# yum -y install wget
Instalovat Elasticsearch:
Elasticsearch je open source vyhledávací server, který nabízí distribuované vyhledávání a analýzy v reálném čase s webovým rozhraním RESTful. Elasticsearch ukládá všechny protokoly odeslané serverem logstash a zobrazuje zprávy, když kibana4 požaduje úplné vyplnění uživatelského požadavku přes webové rozhraní. Toto téma pokrývá konfigurační nastavení, která jsou vyžadována pro ELK, můžete se také podívat na Instalace Elasticsearch na CentOS 7 / Ubuntu 14.10 / Linux Mint 17.1, kde najdete podrobné pokyny.
Pojďme nainstalovat Elasticsearch, lze jej stáhnout z oficiálních stránek. Ke stažení přes terminál a jeho instalaci můžete použít následující příkaz.
# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.0.noarch.rpm# rpm -Uvh elasticsearch-1.5.0.noarch.rpm
Nakonfigurujte Elasticsearch tak, aby se spouštěl během spouštění systému.
# systemctl daemon-reload# systemctl enable elasticsearch.service# systemctl start elasticsearch.service
Počkejte alespoň minutu, než se Elasticsearch plně restartuje, jinak se testování nezdaří. Elastisearch by nyní měl naslouchat na 9200 pro zpracování HTTP požadavku, pro získání odpovědi můžeme použít CURL.
# curl -X GET http://localhost:9200{"stav" :200,"name" :"Delphi","cluster_name" :"elasticsearch","version" :{"číslo" :"1.5. "0","build_hash" :"544816042d40151d3ce4ba4f95399d7860dc2e92","build_timestamp" :"2015-03-23T14:30:58Z","build_snapshotlu":4}"build_snapshotlu":4}""build_snapshotlu":4}""build_snapshotlu":4} Know, for Search"}
Instalovat Logstash:
Logstash je nástroj s otevřeným zdrojovým kódem, který se používá ke shromažďování protokolů, analýze a ukládání při vyhledávání. Ano, logstash je dodáván s webovým rozhraním (kibana3 je vestavěný) pro vizualizaci protokolů, které zde nebudeme diskutovat, místo toho používáme kibana4. Zpracování různých typů událostí lze rozšířit přidáním pluginů, k dnešnímu dni je k dispozici přes 160 pluginů. Pojďme přímo k instalaci.
# wget https://download.elasticsearch.org/logstash/logstash/packages/centos/logstash-1.4.2-1_2c0f5a1.noarch.rpm# rpm -Uvh logstash-1.4.2-1_2c0f5a1.noarch.rpmJakmile je server logstash nainstalován, přejdeme k další sekci
Vytvořit certifikát SSL:
Logstash-forwarder, který bude nainstalován na klient-server za účelem odeslání protokolů, vyžaduje certifikát SSL k ověření identity serveru logstash. Máme dvě možnosti, jak vytvořit SSL certifikát a záleží na konfiguraci logstash-forwarder; pokud je použit název hostitele („servers“:[ „itzgeek:5050“ ]), název předmětu SSL by měl odpovídat „itzgeek“. Pokud používáte ( “servers”:[ “10.0.0.26:5050” ]) IP adresu, musíte vytvořit certifikát SSL s IP SAN s hodnotou 10.0.0.26.
Chcete-li vytvořit certifikát SSL, postupujte podle jedné z metod.
Možnost 1:(Název hostitele FQDN)
Před vytvořením certifikátu se ujistěte, že máte záznam A pro server logstash; ujistěte se, že klientské servery jsou schopny přeložit název hostitele serveru logstash. Pokud nemáte DNS, přidejte prosím položku hostitele pro server logstash; kde 10.0.0.26 je IP adresa serveru logstash a itzgeek je název hostitele vašeho serveru logstash.
# vi /etc/hosts10.0.0.26 itzgeekPojďme vytvořit certifikát SSl.
Přejděte do adresáře OpenSSL.
# cd /etc/pki/tlsProvedením následujícího příkazu vytvořte certifikát SSL, nahraďte „červený“ svým skutečným serverem logstash.
# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=itzgeekMožnost 2:(IP adresa)
Před vytvořením certifikátu SSL bychom požadovali přidání IP adresy serveru logstash do SubjectAltName v konfiguračním souboru OpenSSL.
# vi /etc/pki/tls/openssl.cnfPřejděte do sekce „[ v3_ca ]“ a nahraďte „červenou“ IP vaší logstash serveru.
subjectAltName =IP:10.0.0.26Přejděte do adresáře OpenSSL.
# cd /etc/pki/tlsSpuštěním následujícího příkazu vytvořte certifikát SSL.
# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crtTento soubor logstash-forwarder.crt by měl být zkopírován na všechny klientské servery, které odesílají protokoly na server logstash.
Konfigurace Logstash:
Konfigurační soubory Logstash lze nalézt v /etc/logstash/conf.d/, pouze prázdná složka. Potřebovali bychom vytvořit soubor, konfigurační soubory logstash se skládají ze tří sekcí vstup, filtr a výstup; všechny tři sekce lze nalézt buď v jediném souboru, nebo každá sekce bude mít samostatné soubory zakončené .conf.
Zde použijeme jeden soubor k umístění vstupní, filtrační a výstupní sekce.
# vi /etc/logstash/conf.d/logstash_syslogs.confV první sekci vložíme položku pro konfiguraci vstupu. Následující konfigurace nastaví lumberjack tak, aby na portu 5050 naslouchal příchozím protokolům z logstash-forwarderu, který je umístěn na klientských serverech, a také bude používat certifikát SSL, který jsme vytvořili dříve.
vstup { dřevorubec {port => 5050type => "logs"ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"ssl_key => "/etc/pki/tls/private/logstash- forwarder.key"}}Ve druhé části vložíme položku pro konfiguraci filtru. Grok je filtr v logstash, který provádí analýzu protokolů před jejich odesláním do Elasticsearch k uložení. Následující filtr grok vyhledá protokoly, které jsou označeny jako „syslog“ a pokusí se je analyzovat, aby vytvořil strukturovaný index.
filtr {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } datum {shoda => [ "timestamp", "MMM d HH:mm :ss", "MMM dd HH:mm:ss" ]} }}Zvažte návštěvu grokdebuggeru, kde najdete vzory filtrů.
Do třetí části vložíme záznam výstupní konfigurace. Tato sekce definuje umístění, kam se protokoly ukládají; samozřejmě by to mělo být Elasticsearch.
output {elasticsearch { host => localhost index => "logstash-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}Nyní spusťte službu logstash.
# systemctl start logstash.serviceProtokoly serveru Logstash jsou uloženy v následujícím souboru, což nám pomůže při odstraňování problémů.
# cat /var/log/logstash/logstash.logDále nakonfigurujeme logstash-forwarder pro odesílání protokolů na server logstash.
Nakonfigurujte Logstash-forwarder.
Logstash-forwarder je klientský software, který odesílá protokoly na server logstash, měl by být nainstalován na všech klientských serverech. Logstash-forwarder lze stáhnout z oficiálních webových stránek nebo jej můžete stáhnout pomocí následujícího příkazu do terminálu a nainstalovat.
# wget https://download.elasticsearch.org/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm# rpm -Uvh logstash-forwarder-0.4.0-1.x86_64. ot/minLogstash-forwader používá certifikát SSL pro ověření identity serveru logstash, takže zkopírujte soubor logstash-forwarder.crt, který jsme vytvořili dříve, ze serveru logstash do klienta. Otevřete konfigurační soubor.
# vi /etc/logstash-forwarder.confV části „síť“ uveďte server logstash s číslem portu a cestou k certifikátu logstash-forwarder, který jste zkopírovali ze serveru logstash. Tato sekce definuje logstash-forwarder pro odesílání protokolů na logstash server „itzgeek“ na portu 5050 a klient ověřuje identitu serveru pomocí SSL certifikátu.
Poznámka:Pokud používáte IP SAN, nahraďte „itzgeek“ incase IP adresy.
"servers":[ "itzgeek:5050" ],"ssl ca":"/etc/pki/tls/certs/logstash-forwarder.crt","timeout":15V části „soubory“ konfiguruje, co všechno jsou soubory k odeslání. V tomto článku nakonfigurujeme logstash-forwarder pro odesílání logů (/var/log/messages) na logstash server s typem „syslog“.
{"paths":["/var/log/messages"],"fields":{ "type":"syslog" }}Restartujte službu.
# systemctl start logstash-forwarder.serviceV případě jakéhokoli problému se můžete podívat na soubor protokolu.
# cat /var/log/logstash-forwarder/logstash-forwarder.errKonfigurace Kibana 4:
Kidbana poskytuje vizualizaci protokolů, stáhněte si ji z oficiálních stránek. Ke stažení do terminálu použijte následující příkaz.
wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.2-linux-x64.tar.gzRozbalte a přesuňte jej do /opt/
tar -zxvf kibana-4.0.2-linux-x64.tar.gzmv kibana-4.0.2-linux-x64 /opt/kibana4Povolte soubor PID pro Kibana, je to nutné k vytvoření inicializačního souboru systemd.
# sed -i 's/#pid_file/pid_file/g' /opt/kibana4/config/kibana.ymlKibana lze spustit spuštěním /opt/kibana4/bin/kibana, pro spuštění kibana jako serveru vytvoříme soubor systemd.
# vi /etc/systemd/system/kibana4.service[Unit]Description=Kibana 4 Web InterfaceAfter=elasticsearch.serviceAfter=logstash.service[Service]ExecStartPre=rm -rf /var/run/kibana.pidExecStart=/ opt/kibana4/bin/kibana/ExecReload=kill -9 $(cat /var/run/kibana.pid) &&rm -rf /var/run/kibana.pid &&/opt/kibana4/bin/kibana/ExecStop=kill -9 $(cat /var/run/kibana.pid)[Install]WantedBy=multi-user.targetSpusťte a povolte automatické spouštění kibana při spuštění systému.
# systemctl spustit kibana4.servicesystemctl povolit kibana4.serviceVstupte na svůj portál kibana kliknutím na následující odkaz
http://vaše-ip-adresa:5601/Získáte následující stránku, kde musíte zmapovat logstash index pro použití kibany. Přejděte dolů na Název časového pole a vyberte
@timestampJakmile vyberete, přesměruje vás na hlavní stránku kibana.
Kibana nepřichází s žádným přístupem k portálu chráněným heslem. S Nginx můžeme nakonfigurovat tak, aby uživatel před vstupem na portál splnil autentizační mechanismus.
To je vše, úspěšně jste nakonfigurovali zásobník ELK pro centralizovanou správu protokolů.
Tento návod je pro starou verzi ELK Stack, některé odkazy jsou nefunkční a nemusí fungovat. Nová verze je k dispozici zde:Jak nainstalovat ELK Stack na CentOS 7 / RHEL 7.
Konfigurace Kibana 4 pomocí Nginx | Zabezpečení Kibana 4 – CentOS 7 Jak nainstalovat Graylog2 na CentOS 7 / RHEL 7Cent OS