Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
project:elk [2018/02/23 10:10]
cyberian [Konfigurace Logstash]
project:elk [2018/03/06 15:19]
cyberian [poznámky]
Line 1: Line 1:
 ====== ELK stack v 6.2.1 ====== ====== ELK stack v 6.2.1 ======
 +| Project owner:| [[user: cyberian|Cyberian]]|
 {{:​project:​16x16warning-icon.png?​nolink |}} Tento projekt není prozatím celý hotový. ​ {{:​project:​16x16warning-icon.png?​nolink |}} Tento projekt není prozatím celý hotový. ​
  
-Cíl využití je sběr syslogů vyhledávání v nich a jejich vizualizace na OS Debian 9.3.0 +Cíl využití je sběr syslogůvyhledávání v nich a jejich vizualizace na OS Debian 9.3.0 
-Objem logů se v mé projektu odhaduje asi 30GB za 1 měsíční časové okno+Objem logů se v mém projektu odhaduje ​na asi 30GB za 1 měsíční časové okno
  
 {{:​project:​elk-infrastructure.png?​nolink|}} {{:​project:​elk-infrastructure.png?​nolink|}}
Line 32: Line 33:
  
 ===== ElasticSearch ===== ===== ElasticSearch =====
-Pozor na verzi, neinstalovat zbrkle :). Měl jsem v apt prehistorickou verzi 1.6.2. Přidáme tedy repozitář no novou verzi. Což je v době tohoto návodu 6.2.1. Udržujte vždy stejné ​verze všech 3 služeb stejné, jinak vás čekají ošklivé komplikace. Nejprve si přidáme apt-key:+Pozor na verzi, neinstalovat zbrkle :). Měl jsem v apt prehistorickou verzi 1.6.2. Přidáme tedy repozitář no novou verzi. Což je v době tohoto návodu 6.2.1. Udržujte vždy verze všech 3 služeb stejné, jinak vás čekají ošklivé komplikace. 
 + Nejprve si přidáme apt-key:
  
 <​code>​wget -qO - https://​artifacts.elastic.co/​GPG-KEY-elasticsearch | apt-key add - <​code>​wget -qO - https://​artifacts.elastic.co/​GPG-KEY-elasticsearch | apt-key add -
Line 45: Line 47:
 Nastavit si network host na IP daného PC, případně pokud hodláte mít všechny služby na jednom PC, pak na localhost, aby se nikdo nemohl přihlásit z venku. Warn: Přes http API je totiž možné server klidně i vypnout :) Nastavit si network host na IP daného PC, případně pokud hodláte mít všechny služby na jednom PC, pak na localhost, aby se nikdo nemohl přihlásit z venku. Warn: Přes http API je totiž možné server klidně i vypnout :)
  
-Po uložení provést restart služby a její přidání do příslušného runlevelu. Na Debianu 9 je však systemd.+Po uložení provést restart služby a její přidání do příslušného runlevelu. Na Debianu 9 je systemd.
 <​code>​service elasticsearch restart <​code>​service elasticsearch restart
 update-rc.d elasticsearch defaults 95 10 update-rc.d elasticsearch defaults 95 10
Line 52: Line 54:
 Ke kontrole: Ke kontrole:
  
-*Zkontrolovat zda po startu systému startuje elasticsearch ​(doporučuji použít můj oblíbený htop na přehled spuštěných procesů) nebo ps -aux+*Zkontrolovat zda po startu systému startuje elasticsearch 
 +<​code>​systemctl status elasticsearch</​code>​
 *Zkontrolovat zda se zobrazí při http přístupu na port 9200 něco podobného: *Zkontrolovat zda se zobrazí při http přístupu na port 9200 něco podobného:
  
Line 66: Line 69:
   *server.name dle libosti   *server.name dle libosti
   *elasticsearch.url:​ "​http://​192.168.10.2:​9200"​   *elasticsearch.url:​ "​http://​192.168.10.2:​9200"​
-  *logging.dest:​ /​var/​log/​kibana/​kibana.log (zde opatrně. Pokud zvolíte vlastní cestu, musí mít user pod kterým spouštíte ​kibanbu ​přístup do adr. /​var/​log/​kibana pro zápis a čtení+  *logging.dest:​ /​var/​log/​kibana/​kibana.log (zde opatrně. Pokud zvolíte vlastní cestu, musí mít user pod kterým spouštíte ​kibanu ​přístup do adr. /​var/​log/​kibana pro zápis a čtení
  
 {{:​project:​16x16warning-icon.png?​nolink |}}**na začátku doporučuji měnit pouze server.host ať si nekomplikujete řešení případných chyb** {{:​project:​16x16warning-icon.png?​nolink |}}**na začátku doporučuji měnit pouze server.host ať si nekomplikujete řešení případných chyb**
Line 108: Line 111:
  
  
-> {{:​project:​16x16warning-icon.png?​nolink |}}kibana měla, možná ještě má bug v tom, že pokud jste příliš aktivním adminem a povolíte vlastní nastavení proměnné pid.file: v /​etc/​kibana.yml tak skončíte chybou na nemožnost vytvoření takového souboru. Musel by se pak upravit startovací skript pro démona kibanu v init.d, nicméně znalí budou vědět a začátečník se dotoho nepustí a promennou ​si v konfigu zakomentuje zpátky .)+> {{:​project:​16x16warning-icon.png?​nolink |}}kibana měla, možná ještě má bug v tom, že pokud jste příliš aktivním adminem a povolíte vlastní nastavení proměnné pid.file: v /​etc/​kibana.yml tak skončíte chybou na nemožnost vytvoření takového souboru. Musel by se pak upravit startovací skript pro démona kibanu v init.d, nicméně znalí budou vědět a začátečník se dotoho nepustí a proměnnou ​si v konfigu zakomentuje zpátky .)
  
 ===== Logstash ===== ===== Logstash =====
Line 116: Line 119:
 <​code>​apt-get update <​code>​apt-get update
 Apt-get –y install logstash</​code>​ Apt-get –y install logstash</​code>​
 +Dále nainstalujeme grok k parsování dat:
 +<​code>​apt-get –y install grok</​code>​
  
 ===== Generování SSL certifikátů ===== ===== Generování SSL certifikátů =====
Line 127: Line 132:
 Pod návěstí [ v3_ca] zapsat: Pod návěstí [ v3_ca] zapsat:
  
-subjectAltName = IP: 192.168.16.2+subjectAltName = IP: 192.168.10.2
  
 **Vytvoření certifikátů:​** **Vytvoření certifikátů:​**
Line 137: Line 142:
  
 ===== Konfigurace Logstash ===== ===== Konfigurace Logstash =====
-Konfigurační soubory jsou ve formátu json, takže pozor na mezery a odsazení+Konfigurační soubory jsou ve formátu json, takže pozor na mezery a odsazení.  
 +Vytvoříme konfigurační soubory pro vstup, filtraci a výstup do elasticsearch. 
 + 
 +==== Vstup ====
  
 Vytvoříme soubor 02-beats-input.conf:​ Vytvoříme soubor 02-beats-input.conf:​
Line 151: Line 159:
   }   }
 }</​code>​ }</​code>​
 +
 +==== Filtr ====
  
 Vytvoříme soubor 10-syslog-filter.conf:​ Vytvoříme soubor 10-syslog-filter.conf:​
Line 172: Line 182:
 Tento filter se dívá po logu typu „syslog“ skrze FileBeat a pokouší se použít grok k parsování příchozích syslog logů k tomu, aby je udělal strukturované a dotazovatelné. Tento filter se dívá po logu typu „syslog“ skrze FileBeat a pokouší se použít grok k parsování příchozích syslog logů k tomu, aby je udělal strukturované a dotazovatelné.
  
-Dále nainstalujeme grok k parsování dat: 
-<​code>​apt-get –y install grok</​code>​ 
 Nyní vytvoříme konfigurační soubor 30-elasticsearch-output.conf:​ Nyní vytvoříme konfigurační soubor 30-elasticsearch-output.conf:​
 +
 +==== Výstup ====
  
 <​code>​nano /​etc/​logstash/​conf.d/​30-elasticsearch-output.conf <​code>​nano /​etc/​logstash/​conf.d/​30-elasticsearch-output.conf
Line 197: Line 207:
 update-rc.d logstash defaults 96 9</​code>​ update-rc.d logstash defaults 96 9</​code>​
 {{:​project:​16x16warning-icon.png?​nolink |}}Pokud se při instalaci logstash nevytvořil skript pro démona logstash v /​etc/​init.d,​ pak je tu ještě jedna záchrana (iniciativě se meze nekladou, můžete si ho napsat i sami). V instalačním adresáři logstash pod /​usr/​share/​logstash/​bin se nachází **system-install** {{:​project:​16x16warning-icon.png?​nolink |}}Pokud se při instalaci logstash nevytvořil skript pro démona logstash v /​etc/​init.d,​ pak je tu ještě jedna záchrana (iniciativě se meze nekladou, můžete si ho napsat i sami). V instalačním adresáři logstash pod /​usr/​share/​logstash/​bin se nachází **system-install**
-<​code>​ /​usr/​share/​logstash/​bin/​system-install /​etc/​logstash/​startup.options</​code>​+<​code>​ /​usr/​share/​logstash/​bin/​system-install /​etc/​logstash/​startup.options 
 +systemctl enable logstash 
 +</​code>​ 
 +Po restartu se ujistíme o tom, že služba běží: 
 +<​code>​systemctl status logstash</​code>​ 
 +{{ :​project:​logstash01.jpg?​nolink |}}
  
 +===== Konfigurace FileBeat =====
 +Nastavíme sekci pro Filebeat prospectors pro sbírání logů o které máme zájem.
 +<​code>​nano /​etc/​filebeat/​filebeat.yml
 +-type: log
 +  enabled: true
 +  paths:
 +    - /​var/​log/​remote/​*/​*.log #pouze logy ze subadresaru remote
 +</​code>​
 +Dále nastavíme sekci Elasticsearch output:
 +<​code>​ hosts: ["​192.168.10.2:​9200"​]</​code>​
 +a jako další Logstash output:
 +<​code>​
 +  output.logstash:​
 +    # The Logstash hosts
 +    hosts: ["​192.168.10.3:​5044"​]</​code>​
 +    bulk_max_size:​ 1024 #tento řádek přidáme
  
 +{{:​project:​16x16sign-error-icon.png?​nolink |}} V případě, že služba nenastartuje,​ pak zkuste spustit službu přímo v konzoli s jejími parametry, které lze vidět ve výpisu systemctl status filebeat. V mé instalaci:
 +<​code>​
 +/​usr/​share/​filebeat/​bin/​filebeat -c /​etc/​filebeat/​filebeat.yml -path.home /​usr/​share/​filebeat -path.config /​etc/​filebeat -path.data /​var/​lib/​filebeat -path.logs /​var/​log/​filebeat
 +</​code>​
  
- +===== poznámky ​=====
-==== poznámky ====+
  
 kibana - vega.github.io - kibana custom graphs with vega kibana - vega.github.io - kibana custom graphs with vega
  
 zjistit si info o System D, System V, Upstart, init.d zjistit si info o System D, System V, Upstart, init.d
 +
 +zjistit si info o FileBeat filtrech a indexech; Logstash, ElasticSearch
 +
 +openssl.cnf x509_extensions = v3_ca, defaultně od komentované
 +
 +openssl.cnf # req_extensions = v3_req zjistit info kdy seco při čem rozšiřuje
 +
  
 ===== Zdroje ===== ===== Zdroje =====
-1. https://​www.digitalocean.com/​community/​tutorials/​how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04+1. How to install ELK on Ubuntu ​https://​www.digitalocean.com/​community/​tutorials/​how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04
  
-2. https://​logz.io/​learn/​complete-guide-elk-stack/#​An-Elasticsearch-Tutorial+2. Complete Guide to ELK https://​logz.io/​learn/​complete-guide-elk-stack/#​An-Elasticsearch-Tutorial
  
 +3. Set up Prospectors https://​www.elastic.co/​guide/​en/​beats/​filebeat/​master/​configuration-filebeat-options.html
  
 +4. Openssl.conf Walkthru https://​www.phildev.net/​ssl/​opensslconf.html
  
  
  • project/elk.txt
  • Last modified: 2018/03/08 15:39
  • by cyberian