Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
project:elk [2018/02/23 14:08] cyberian [poznámky] |
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 | ||
| Line 212: | Line 243: | ||
| zjistit si info o FileBeat filtrech a indexech; Logstash, ElasticSearch | 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 | + | 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 | ||
| + | 5. https://stackoverflow.com/questions/34877563/subjectaltname-is-not-getting-added-in-the-csr | ||