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
project:elk [2018/02/23 10:49]
cyberian [Konfigurace Logstash]
project:elk [2018/03/08 15:39] (current)
cyberian [Zdroje]
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 201: Line 211:
 </​code>​ </​code>​
 Po restartu se ujistíme o tom, že služba běží: 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. Complete Guide to ELK https://​logz.io/​learn/​complete-guide-elk-stack/#​An-Elasticsearch-Tutorial
  
-2. https://logz.io/learn/complete-guide-elk-stack/#An-Elasticsearch-Tutorial+3Set 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
  
 +5. https://​stackoverflow.com/​questions/​34877563/​subjectaltname-is-not-getting-added-in-the-csr
  
  
  • project/elk.1519379388.txt.gz
  • Last modified: 2018/02/23 10:49
  • by cyberian