GNU/Linux >> Znalost Linux >  >> Ubuntu

Instalace Filebeat, Logstash, ElasticSearch a Kibana v Ubuntu 14.04

PŘÍPRAVY

#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Nejprve nainstalujte Java 8 v Ubuntu 14.04

# Ref:https://www.liquidweb.com/kb/how-to-install-oracle-java-8-on-ubuntu-14-04-lts/
apt-get install python-software-properties software-properties-common
apt-add-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
java -version

Výsledek:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Usnadněte aktualizaci všech balíčků prostřednictvím repozitářů APT

apt-get install apt-transport-https
Uložte definici úložiště do /etc/apt/sources.list.d/elastic-5.x.list:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get update

FILEBEAT

Instalace filebeat

Filebeat čte řádky z definovaných protokolů, správně je naformátuje a přeposílá je do logstash, přičemž udržuje proud potrubí bez ucpání
Ref:https://github.com/elastic/beats/tree/master/filebeat
Ref:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-getting-started.html
Ref:https://www.elastic.co/products/beats/filebeat

apt-get install filebeat
mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
touch /etc/filebeat/filebeat.yml
mcedit /etc/filebeat/filebeat.yml

(obsah)
————————

filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]

————————
service filebeat restart

LOGSTASH

Stáhněte si instalační balíček logstash debian a nakonfigurujte jej

# Ref:https://www.elastic.co/downloads/logstash
apt-get install logstash

# Výsledek:
.......
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash

Příprava Logstash

mcedit /etc/logstash/startup.options
(na začátek přidejte následující řádek)
LS_CONFIGS_DIR=/etc/logstash/conf.d/

(Pak upravte následující řádek následovně)
from:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
to:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"

Start/Stop/Restart logstash
service logstash {start|stop|restart}

Testování logstash

cd /etc/logstash/ ; /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

Napište:hello world
a stiskněte CTRL-D

(Logstash přidá do zprávy časové razítko a informace o IP adrese. Logstash ukončíte zadáním příkazu CTRL-D v prostředí, kde je spuštěn Logstash.)

Výsledky:

ERROR StatusLogger Nebyl nalezen žádný konfigurační soubor log4j2. Použití výchozí konfigurace:protokolování pouze chyb do konzoly.
VAROVÁNÍ:Nelze najít soubor logstash.yml, který se obvykle nachází v $LS_HOME/config nebo /etc/logstash. Cestu můžete zadat pomocí –path.settings. Pokračování v používání výchozích hodnot
Nelze najít konfiguraci log4j2 na cestě //usr/share/logstash/config/log4j2.properties. Použití výchozí konfigurace, která se přihlásí do konzoly
11:22:59.822 [[main]-pipeline-manager] INFO logstash.pipeline – Spouštění kanálu {“id”=>”main”, “pipeline.workers”=>2 , “pipeline.batch.size”=>125, “pipeline.batch.delay”=>5, “pipeline.max_inflight”=>250}
11:22:59.847 [[main]-pipeline-manager] INFO logstash.pipeline – Pipeline main spuštěn
Plugin stdin nyní čeká na vstup:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
11:22:59.946 [Api Webserver] INFO logstash.agent – ​​Koncový bod Logstash API byl úspěšně spuštěn {:port=>9601}
11:23:02.861 [LogStash::Runner] WARN logstash.agent – ​​zastavování kanálu {:id=>” hlavní“}

Chyby a varování jsou zatím v pořádku. Hlavní výsledný řádek výše, který je významný, je:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
který přidá časové razítko a název serveru do vstupního řetězce (test 1)

Konfigurace logstash
# Poznámka:tato testovací konfigurace získá vstup z filebeat a výstup do souboru protokolu, který lze sledovat pomocí tail -f …..
mcedit /etc/logstash/conf.d/apache2.conf
(obsah)
input {
beats {
port => 5044
type => "apache"
}
}
filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
}
output {
file {
path => "/var/log/logstash_output.log"
}
}

Chcete-li odeslat správný výstup do elasticsearch, použijte místo toho tuto konfiguraci výstupu:
———————————-
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Zabezpečení Filebeat => Logstash pomocí SSL

Ref:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
Poznámka:Psaní rukou níže je zobrazeno tučně.

Připravte adresáře certifikátů:

mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
Vytvoření klientských certifikátů pro FileBeat:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Enter instance name: Beats
Enter name for directories and files : Beats
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Beats/certificate-bundle_Beats.zip

Vytvoření klientských certifikátů pro Logstash:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
Enter instance name: Logstash
Enter name for directories and files : Logstash
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip

Tento soubor by měl být řádně zabezpečen, protože obsahuje soukromé klíče pro všechny
instance a certifikační autoritu.

Po rozbalení souboru bude existovat adresář pro každou instanci obsahující
certifikát a soukromý klíč. Zkopírujte certifikát, klíč a certifikát CA
do konfiguračního adresáře produktu Elastic, pro který budou použity
a postupujte podle pokynů pro konfiguraci SSL v průvodci produktu.

U klientských aplikací může být potřeba pouze zkopírovat certifikát CA a
nakonfigurovat klienta tak, aby tomuto certifikátu důvěřoval.

Extrahovat certifikáty:
unzip /etc/logstash/certs/Beats/certificate-bundle_Beats.zip -d /etc/logstash/certs/Beats/
unzip /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip -d /etc/logstash/certs/Logstash/

Převeďte klíč Logstash Logstash.key z formátu PKCS#1 na formát PKCS#8:
Důvod:Při použití formátu PKCS1 se v logstash.log vyskytla následující chybová zpráva:
[ERROR][logstash.inputs.beats ] Zdá se, že buď máte neplatný klíč, nebo váš soukromý klíč nebyl ve formátu PKCS8. {:exception=>java.lang.IllegalArgumentException:Soubor neobsahuje platný soukromý klíč:/etc/logstash/certs/Logstash/Logstash/Logstash.key}

Viz:https://github.com/spujadas/elk-docker/issues/112

Příkaz:
openssl pkcs8 -in /etc/logstash/certs/Logstash/Logstash/Logstash.key -topk8 -nocrypt -out /etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8

Konfigurace Beats pro SSL

Obsah /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
ssl.certificate_authorities: ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl.certificate: "/etc/logstash/certs/Beats/Beats/Beats.crt"
ssl.key: "/etc/logstash/certs/Beats/Beats/Beats.key"

Obsah /etc/logstash/conf.d/apache.conf
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl_certificate => "/etc/logstash/certs/Logstash/Logstash/Logstash.crt"
ssl_key => "/etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8"
ssl_verify_mode => "force_peer"
}
}

Restartujte Logstash i Filebeat
service logstash restart
service filebeat restart

POZNÁMKA: Stále mám problémy s SSL připojením Filebeat k Logstash, kde Filebeat hází tuto chybu do (/var/log/logstash/logstash-plain.log):
Interní chyba TLS.
Následující URL Zdá se, že jsem našel nějaké podobné problémy, ale kvůli nedostatku času jsem na to ještě nepřišel.
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- with-remote-error-tls-internal-error/85271/3

X-Pack pro Logstash

NAINSTALUJTE X-Pack pro logstash

X-Pack je rozšíření Elastic Stack, které spojuje funkce zabezpečení, upozornění, monitorování, hlášení, strojového učení a grafů do jednoho snadno instalovatelného balíčku.
X-Pack také poskytuje monitorovací uživatelské rozhraní pro Logstash.

/usr/share/logstash/bin/logstash-plugin nainstalovat x-pack

Výsledek:

Stahování souboru:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
Stahování [===============================================================] 100%
Instalace souboru:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300/x-pack-5.5.2.zip úspěšná

Konfigurace X-Pack v Logstash:

Výchozí nastavení vytvořená během instalace funguje ve většině případů nejlépe. Další informace najdete na:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html

Chcete-li zabránit generování chybových zpráv monitorování v logstash.log, upravte /etc/logstash/logstash.yml a na konec přidejte následující řádek:
(Ref:https://discuss.elastic.co/t/logstash- breaks-when-disabling-certain-x-pack-features/89511)

xpack.monitoring.enabled: false

ElasticSearch

Instalace:
apt-get install elasticsearch

Start/Stop/Restart Elastické vyhledávání:
/etc/init.d/elasticsearch {start|stop|restart}

Chcete-li zkontrolovat, zda bylo spuštěno elasticsearch:
ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)

Příklad výsledku (zkrácený):
elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........

Zkontrolujte soubor protokolu Elasticsearch:
tail -f /var/log/elasticsearch/elasticsearch.log

POZNÁMKA 1:
Pokud vidíte řádek:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] maximální počet oblastí virtuální paměti vm.max_map_count [65530] je příliš nízký, zvyšte jej alespoň na [262144]
a výsledek následujícího příkazu je prázdný,

grep vm.max_map_count /etc/sysctl.conf

Řešení:
Zvyšte maximální počet oblastí virtuální paměti vm.max_map_count na 262144 následovně:
Přidejte následující řádek do souboru /etc/sysctl.conf

vm.max_map_count=262144

A spusťte příkaz:
sysctl -w vm.max_map_count=262144
NEBO
echo 262144 > /proc/sys/vm/max_map_count

TAKÉ se ujistěte, že konfigurační soubor elasticsearch (/etc/elasticsearch/jvm.options ) má následující položky:
-Xms2g
-Xmx2g

DŮLEŽITÉ:
Pokud následující příkazy selžou, může to být způsobeno tím, že některé virtuální servery neumožňují takové změny v jádře:
např.
sysctl -w vm.max_map_count=262144
sysctl:oprávnění odepřeno pro klíč ‚vm.max_map_count‘
echo 262144 > /proc/sys/vm/max_map_count
-bash:/proc/sys/vm/max_map_count:Povolení odepřeno

Elastické vyhledávání by mělo být možné běžet tak jako tak, ale může mít omezený výkon a může mít další problémy kvůli těmto omezením.
Pro servery Strato VM neexistují žádné známé prostředky k nápravě.

POZNÁMKA 2:
Pokud vidíte řádek:
[WARN ][i.n.u.i.MacAddressUtil ] Nepodařilo se najít použitelnou hardwarovou adresu ze síťových rozhraní; pomocí náhodných bajtů:……..

Řešení:
Není třeba se obávat, přesnost MAC adresy není v této instalaci tak důležitá.

POZNÁMKA 3:
Pokud vidíte řádek:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] filtry systémových volání se nepodařilo nainstalovat; zkontrolujte protokoly a opravte konfiguraci nebo deaktivujte filtry systémových volání na vlastní nebezpečí
Pokud k tomuto problému dojde, elasticsearch se spustí, ale nebude správně inicializován a pravděpodobně nebude správně fungovat.

Řešení:
Pokud je elasticsearch přístupný pouze v chráněném prostředí, nemělo by být zakázání této instalace filtrů systémových volání žádný problém
upravením souboru /etc/elasticsearch/elasticsearch.yml a přidáním následujícího řádku:
bootstrap.system_call_filter: false
Restart elasticsearch:
service elasticsearch restart

—————————————————————————

X-Pack pro elasticsearch

X-Pack je rozšíření Elastic Stack, které spojuje zabezpečení, upozornění, monitorování, hlášení, strojové učení a grafy do jednoho snadno instalovatelného balíčku.

Instalace:
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

Výsledky:
-> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.

Continue with installation? [y/N]y
-> Installed x-pack

KIBANA

Nainstalujte balíček kibana
apt install kibana
Nainstalujte X-Pack pro logstash
X-Pack je rozšíření Elastic Stack, které spojuje zabezpečení, upozornění, monitorování, vytváření sestav, strojové učení a grafy do jednoho snadno instalovatelného balíčku.
/usr/share/kibana/bin/kibana-plugin install x-pack
Změna hesla vestavěného uživatele
Viz:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in- uživatelská hesla
změnit hesla

curl -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "elasticpassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "kibanapassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "logstashpassword"
}
'

Aktualizujte server Kibana novým heslem /etc/kibana/kibana.yml
elasticsearch.password: kibanapassword
Aktualizujte konfiguraci Logstash pomocí nového hesla /etc/logstash/logstash.yml
xpack.monitoring.elasticsearch.password: logstashpassword
Zakázat funkci výchozího hesla /etc/elasticsearch/elasticsearch.yml
xpack.security.authc.accept_default_password: false

Start/Stop/Restart kibana
service kibana {start|stop|restart}


Ubuntu
  1. Instalace zásobníku ELK na Ubuntu 14.04

  2. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na CentOS 7 / RHEL 7

  3. Jak nainstalovat Elasticsearch, Logstash a Kibana 4 na Ubuntu 14.04 / 15.04

  1. Instalace a nastavení PHP a Nginx na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Elasticsearch na Ubuntu 20.04

  3. Vytváření a instalace Ibus-typing-booster na Ubuntu?

  1. Co dělat po instalaci Ubuntu 18.04 a 19.10

  2. Jak nainstalovat ELK Stack (Elasticsearch, Logstash a Kibana) na Ubuntu 18.04 / 20.04

  3. Nainstalujte Elasticsearch, Logstash a Kibana na Ubuntu 20.04