Jak zainstalować Elasticsearch, Logstash i Kibana (Elk Stack) na Centos/Rhel 7
- 3642
- 44
- Juliusz Janicki
Jeśli jesteś osobą, która jest lub była w przeszłości, odpowiedzialna za kontrolę i analizę dzienników systemu w Linux, wiesz, jakim koszmarem może stać się, jeśli wiele usług jest monitorowanych jednocześnie.
W przeszłości zadanie to musiało być wykonane głównie ręcznie, przy czym każdy typ dziennika jest obsługiwany osobno. Na szczęście połączenie ElasticSearch, Logstash, I Kibana po stronie serwera, wraz z FileBeat Po stronie klienta sprawia, że to trudne zadanie wygląda jak spacer po parku.
Pierwsze trzy komponenty tworzą tak zwane JELEŃ KANADYJSKI Stack, którego głównym celem jest zbieranie dzienników z wielu serwerów jednocześnie (znane również jako scentralizowane rejestrowanie).
Sugerowane przeczytanie: 4 dobre narzędzia do monitorowania i zarządzania dziennikiem typu open source dla Linux
Wbudowany interfejs internetowy oparty na Javie umożliwia szybkie sprawdzanie dzienników w celu uzyskania łatwiejszego porównania i rozwiązywania problemów. Te dzienniki klientów są wysyłane do centralnego serwera przez FileBeat, które można opisać jako agent wysyłki dziennika.
Zobaczmy, jak wszystkie te elementy pasują do siebie. Nasze środowisko testowe będzie składać się z następujących maszyn:
Centralny serwer: Centos 7 (Adres IP: 192.168.0.29). 2 GB Ram. Klient #1: Centos 7 (Adres IP: 192.168.0.100). 1 GB Ram. Klient #2: Debian 8 (Adres IP: 192.168.0.101). 1 GB Ram.
Pamiętaj, że Baran Dane tutaj wartości nie są ścisłymi warunkami wstępnymi, ale zalecane wartości dla pomyślnego wdrożenia JELEŃ KANADYJSKI Ustaw na centralnym serwerze. Mniej Baran w sprawie klientów w ogóle nie zrobią dużej różnicy.
Instalowanie stosu łosi na serwerze
Zacznijmy od zainstalowania JELEŃ KANADYJSKI Ułóż na serwerze, wraz z krótkim wyjaśnieniem tego, co robi każdy komponent:
- ElasticSearch przechowuje dzienniki wysyłane przez klientów.
- Logstash przetwarza te dzienniki.
- Kibana Zapewnia interfejs internetowy, który pomoże nam sprawdzić i analizować dzienniki.
Zainstaluj następujące pakiety na serwerze centralnym. Po pierwsze, zainstalujemy Java Jdk wersja 8 (aktualizacja 102, najnowszy w momencie tego pisania), który jest zależnością JELEŃ KANADYJSKI składniki.
Możesz najpierw sprawdzić na stronie pobierania Java tutaj, aby sprawdzić, czy dostępna jest nowsza aktualizacja.
# Yum Update # cd /opt # wget-no-Cookies-no-check-certyfikat-header ".wyrocznia.com%2f; oraclelicense = Accept-SecureBackup-Cookie "" http: // pobierz.wyrocznia.COM/OTN-PUB/JAVA/JDK/8U102-B14/JRE-8U102-LINUX-X64.RPM " # RPM -uvh JRE-8U102-Linux-X64.RPM
Czas sprawdzić, czy instalacja została pomyślnie zakończona:
# java -versionSprawdź wersję Java z Commandline
Aby zainstalować najnowsze wersje ElasticSearch, Logstash, I Kibana, Będziemy musieli stworzyć repozytoria dla mniam ręcznie w następujący sposób:
Włącz repozytorium ElasticSearch
1. Zaimportuj klucz publiczny GPG Elasticsearch do menedżera pakietu RPM:
# RPM -Import http: // pakiety.elastyczny.CO/GPG-KEY-ELASTICSEARK
2. Włóż następujące wiersze do pliku konfiguracji repozytorium ElasticSearch.Repo
:
[ElasticSearch] Nazwa = ElasticSearch Repository BaseUrl = http: // pakiety.elastyczny.co/elasticsearch/2.X/Centos GPGCheck = 1 gpgkey = http: // pakiety.elastyczny.CO/GPG-KLEY-ELASTICESARH Włączone = 1
3. Zainstaluj pakiet ElasticSearch.
# Yum Instal ElasticSearch
Po zakończeniu instalacji zostaniesz poproszony o uruchomienie i włączenie ElasticSearch:
Zainstaluj ElasticSearch w Linux4. Rozpocznij i włącz usługę.
# Systemctl Demon-Reload # Systemctl Włącz ElasticSearch # Systemctl Start ElasticSearch
5. Pozwól ruchowi za pośrednictwem portu TCP 9200 W twojej zaporze:
# Firewall-Cmd --add-Port = 9200/TCP # Firewall-CMD --add-Port = 9200/TCP --Permanent
6. Sprawdź, czy ElasticSearch odpowiada na proste prośby Http:
# curl -x get http: // localhost: 9200
Wyjście powyższego polecenia powinno być podobne do:
Sprawdź instalację ElasticSearchUpewnij się, że wykonałeś powyższe kroki, a następnie kontynuuj Logstash. Od kiedy oboje Logstash I Kibana Udostępnij Elasticsearch GPG Klucz, nie ma potrzeby ponownej importowania go przed zainstalowaniem pakietów.
Sugerowane przeczytanie: Zarządzaj dziennikami systemowymi (konfiguruj, obracaj i importuj do bazy danych) w Centos 7
Włącz repozytorium Logstash
7. Włóż następujące wiersze do pliku konfiguracji repozytorium logstash.Repo
:
[logstash] name = logstash baseurl = http: // pakiety.ElasticSearch.org/logstash/2.2/centos gpgcheck = 1 gpgkey = http: // pakiety.ElasticSearch.Org/GPG-Key-ElasticSearch Włączone = 1
8. Zainstaluj Logstash pakiet:
# mniam instalacja logstash
9. Dodać SSL certyfikat oparty na adresie IP serwera ELK w kolejnym wierszu poniżej [v3_ca]
Sekcja w /etc/pki/tls/openSsl.CNF
:
[V3_CA] UTATETALTName = ip: 192.168.0.29Dodaj adres IP serwera Elasticsearch serwer
10. Wygeneruj autoryzowany certyfikat ważny dla 365 dni:
# cd/etc/pki/tls # openssl req -config/etc/pki/tls/openSsl.CNF -x509 -Days 3650 -Batch -nodes -Newkey RSA: 2048 -Keyout Private/Logstash -forwarder.Key -out certs/logstash -forwarder.crt
11. Skonfiguruj Logstash Pliki wejściowe, wyjściowe i filtrujące:
Wejście: Tworzyć /etc/logstash/conf.D/Wejście.conf
i wstaw do niego następujące linie. Jest to konieczne, aby logstash mógł „uczyć się„Jak przetwarzać bity pochodzące od klientów. Upewnij się, że ścieżka do certyfikatu i klucza pasują do właściwych ścieżek, jak opisano w poprzednim kroku:
input beats port => 5044 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt "ssl_key =>"/etc/pki/tls/private/logstash-forwarder.klucz"
Wyjście (/etc/logstash/conf.D/wyjście.conf
) plik:
wyjście elasticsearch hosts => ["localHost: 9200"] snicfing => true manage_template => false index => "%[@metadata] [beat]-%+yyyy.Mm.dd "dokument_type =>"%[@metadata] [typ] "
Filtr (/etc/logstash/conf.D/Filter.conf
) plik. Zrejestrujemy komunikaty Syslog dla prostoty:
Filter if [typ] == "syslog" grok match => "message" => "%syslogline" data match => ["mimestamp", "mmm d hh: mm: ss" , „Mmm dd hh: mm: ss”]
12. Sprawdź Logstash pliki konfiguracyjne.
# serwis logstash ConfigTestSprawdź konfigurację logstash
13. Rozpocznij i włącz logstash:
# Systemctl Demon-Reload # Systemctl Start Logstash # Systemctl Włącz logstash
14. Skonfiguruj zaporę, aby umożliwić LogStash na pobieranie dzienników od klientów (port TCP 5044):
# Firewall-CMD --add-port = 5044/tcp # Firewall-CMD --add-port = 5044/tcp --Permanent
Włącz repozytorium Kibana
14. Włóż następujące wiersze do pliku konfiguracji repozytorium Kibana.Repo
:
[kibana] nazwa = Kibana Repository baseurl = http: // pakiety.elastyczny.co/kibana/4.4/Centos gpgcheck = 1 gpgkey = http: // pakiety.elastyczny.CO/GPG-KLEY-ELASTICESARH Włączone = 1
15. Zainstaluj Kibana pakiet:
# mniam instaluj kibana
16. Rozpocznij i włącz Kibana.
# Systemctl Daon-Reload # Systemctl Start Kibana # Systemctl Włącz Kibana
17. Upewnij się, że możesz uzyskać dostęp do interfejsu internetowego Kibana z innego komputera (zezwól na ruch w porcie TCP 5601):
# Firewall-CMD --add-port = 5601/tcp # Firewall-CMD --add-port = 5601/tcp --Permanent
18. Początek Kibana (http: // 192.168.0.29: 5601
) Aby sprawdzić, czy możesz uzyskać dostęp do interfejsu internetowego:
Wrócimy tutaj po zainstalowaniu i skonfigurowaniu FileBeat na klientach.
Sugerowane przeczytanie: Monitoruj dzienniki serwera w czasie rzeczywistym za pomocą „Log.Narzędzie IO ”w Linux
Zainstaluj FileBeat na serwerach klienta
Pokażemy ci, jak to zrobić Klient #1 (Powtórz dla Klient #2 Następnie zmieniający się ścieżki, jeśli dotyczy Twojej dystrybucji).
1. Skopiuj certyfikat SSL z serwera do klientów:
# scp/etc/pki/tls/certs/logstash-forwarder.CRT [e -mail chroniony]:/etc/pki/tls/certs/
2. Importować ElasticSearch Klucz publicznego GPG do menedżera pakietu RPM:
# RPM -Import http: // pakiety.elastyczny.CO/GPG-KEY-ELASTICSEARK
3. Utwórz repozytorium dla FileBeat (/etc/mniam.repozytorium.D/FileBeat.Repo
) W Centos Rozkłady oparte:
[FileBeat] name = FileBeat dla klientów łosia baseurl = https: // pakiety.elastyczny.co/beats/yum/el/$ basearch enabled = 1 gpgkey = https: // pakiety.elastyczny.co/gpg-key-elasticsearch gpgcheck = 1
4. Skonfiguruj źródło do instalacji FileBeat Debian i jego pochodne:
# Aptitude Zainstaluj apt-transport-https # echo "deb https: // pakiety.elastyczny.CO/Beats/Apt Stable Main ">/etc/apt/źródła.lista.D/FileBeat.Lista # aktualizacja APTIDE
5. Zainstaluj FileBeat pakiet:
# Yum Instal FileBeat [ON Centos i dystrybucje oparte na # aptitude instaluj plik FileBeat [on Debian i jego pochodne]
6. Uruchom i włącz FileBeat:
# systemCtl start fileBeat # Systemctl Włącz FileBeat
Skonfiguruj FileBeat
Słowo ostrożności tutaj. FileBeat Konfiguracja jest przechowywana w Yaml Plik, który wymaga ścisłego wcięcia. Uważaj na to podczas edycji /etc/fileBeat/fileBeat.yml
następująco:
- Pod ścieżki, Wskaż, które pliki dziennika powinny być „wysłane” na serwer Elk.
- Pod poszukiwacze:
Input_Type: log dokument_type: syslog
- Pod wyjście:
- Odkształcić linię, która zaczyna się od logstash.
- Wskaż adres IP swojego serwera ELK i portu, w którym Logstash słucha zastępy niebieskie.
- Upewnij się, że ścieżka do certyfikatu wskazuje na rzeczywisty plik utworzony w Krok I (Logstash sekcja) powyżej.
Powyższe kroki są zilustrowane na poniższym obrazku:
Skonfiguruj FileBeat w serwerach klientówZapisz zmiany, a następnie uruchom ponownie FileBeat na temat klientów:
# systemCtl restartuj plik FileBeat
Po ukończeniu powyższych kroków na klientach możesz kontynuować.
Testowanie FileBeat
Aby sprawdzić, czy dzienniki od klientów mogą zostać wysłane i odbierane pomyślnie, uruchom następujące polecenie na JELEŃ KANADYJSKI serwer:
# curl -xget 'http: // localhost: 9200/fileBeat -*/_ Wyszukaj?ładny'
Wyjście powinno być podobne do (zauważ, jak komunikaty z /var/log/wiadomości I /var/log/bezpiecznie są odbierane od Klient1 I klient2):
Testowanie FileBeatW przeciwnym razie sprawdź FileBeat plik konfiguracyjny dla błędów.
# Journalctl -xe
Po próbie ponownego uruchomienia FileBeat skieruje Cię na linię obraźliwego.
Testowanie kibany
Po zweryfikowaniu, że dzienniki są wysyłane przez klientów i odbierane z powodzeniem na serwerze. Pierwsza rzecz, którą będziemy musieli zrobić Kibana konfiguruje wzór indeksu i ustawia go jako domyślnie.
Możesz opisać indeks jako pełną bazę danych w kontekście relacyjnej bazy danych. Pójdziemy z FileBeat-*
(lub możesz użyć bardziej precyzyjnych kryteriów wyszukiwania, jak wyjaśniono w oficjalnej dokumentacji).
Wchodzić FileBeat-*
w Nazwa indeksu Lub Pole wzoru a następnie kliknij Tworzyć:
Należy pamiętać, że będziesz mógł później wprowadzić bardziej drobnoziarniste kryteria wyszukiwania. Następnie kliknij gwiazdę wewnątrz zielonego prostokąta, aby skonfigurować ją jako domyślny wzór indeksu:
Skonfiguruj domyślny wzór indeksu kibanaWreszcie w Odkryć Menu znajdziesz kilka pól, które można dodać do raportu wizualizacji dziennika. Po prostu unosić się nad nimi i kliknij Dodać:
Dodaj raport wizualizacji dziennikaWyniki zostaną pokazane w centralnym obszarze ekranu, jak pokazano powyżej. Zapraszam do zabawy (dodaj i usuń pola z raportu dziennika), aby zapoznać się z Kibana.
Domyślnie, Kibana wyświetli rekordy przetwarzane podczas ostatniego 15 Minuty (patrz prawy górny róg), ale możesz zmienić to zachowanie, wybierając inną ramkę czasową:
Raporty dziennika KibanaStreszczenie
W tym artykule wyjaśniliśmy, jak skonfigurować stos łosia, aby zebrać dzienniki systemowe wysyłane przez dwóch klientów, Centos 7 i maszyny Debian 8.
Teraz możesz odwołać się do oficjalnej dokumentacji ElasticSearch i znaleźć więcej szczegółów na temat tego, jak korzystać z tej konfiguracji do bardziej wydajnej kontroli i analizy dzienników.
Jeśli masz jakieś pytania, nie wahaj się zadać. Oczekujemy na kontakt zwrotny.
- « Prawda Pythona i Perla - omówione cechy, zalety i wady
- Jak tworzyć i uruchamiać nowe jednostki serwisowe w Systemd za pomocą skryptu powłoki »