Monitorowanie plików dziennika za pomocą Prometheus

Monitorowanie plików dziennika za pomocą Prometheus
Możesz użyć eksportera zewnętrznego Prometeusa Grok_Exporter do analizowania plików dziennika i eksportu wskaźników do Prometheus.

Grok_Exporter używa wyrażeń regularnych do analizowania różnych danych z plików dziennika. Pliki dziennika są dopasowane do linii według linii za pomocą wyrażenia regularnego, a dopasowane dane są przechowywane w różnych zmiennych. Następnie dane tych zmiennych są eksportowane przez Grok_Exporter.

Po dodaniu Grok_Exporter serwer do Prometeusz jako cel, Prometeusz może monitorować pożądane pliki dziennika przez Grok_Exporter.

W tym artykule pokażę, jak zainstalować Grok_Exporter w Linux (Ubuntu 20.04 LTS w moim przypadku), generuj pliki dziennika manekina, skonfiguruj Grok_Exporter do monitorowania pliku dziennika manekina i monitoruj manekin plik dziennika za pomocą Prometheus. Więc zacznijmy.

Spis treści:

  1. Rzeczy, których będziesz potrzebować
  2. Pobieranie i instalowanie Grok_Exporter
  3. Generowanie manekina plik dziennika z Fakedata
  4. Konfigurowanie Grok_Exporter
  5. Dodawanie Grok_Exporter do Prometeusza
  6. Wskaźniki skrobania z Grok_Exportera z Prometheus
  7. Gdzie dalej?
  8. Wniosek
  9. Bibliografia

Rzeczy, których będziesz potrzebować:

Na komputerze musisz zainstalować Prometheus, aby móc monitorować pliki dziennika za pomocą Prometeusza.

Jeśli potrzebujesz pomocy w instalacji Prometheusa na komputerze, przeczytaj artykuł, jak zainstalować Prometeusz na Ubuntu 20.04 LTS.

Pobieranie i instalowanie Grok_Exporter:

W tej sekcji pokażę, jak pobrać i zainstalować Grok_Exporter na komputerze.

Najpierw przejdź do ~/Pobieranie katalog w następujący sposób:

$ cd ~/pobieranie

Pobierz najnowszą wersję Grok_Exporter Archiwum z następującym poleceniem:

$ wget https: // github.com/fstab/grok_exporter/remises/Download/v1.0.0.RC5/GROK_EXPORTER-1.0.0.RC5.Linux-AMD64.zamek błyskawiczny

Grok_Exporter Archiwum jest pobierane. Ukończenie może potrwać trochę czasu.

W tym momencie Grok_Exporter Archiwum należy pobrać.

Kiedyś Grok_Exporter Archiwum jest pobierane, należy znaleźć nowy plik Grok_Exporter-1.0.0.RC5.Linux-AMD64.zamek błyskawiczny w ~/Pobieranie katalog oznaczony na zrzucie ekranu poniżej.

$ ls -lh

Wyodrębnij archiwum Grok_Exporter Grok_Exporter-1.0.0.RC5.Linux-AMD64.zamek błyskawiczny Z następującym poleceniem:

$ Unzip Grok_Exporter-1.0.0.RC5.Linux-AMD64.zamek błyskawiczny

Należy wyodrębnić archiwum Grok_Exporter.

Nowy katalog Grok_Exporter-1.0.0.RC5.Linux-AMD64/ powinien być utworzony w ~/Pobieranie informator.

$ ls -lh

Teraz zmień nazwę Grok_Exporter-1.0.0.RC5.Linux-AMD64/ katalog do Grok-exporter/ i przenieś go w /optować katalog w następujący sposób:

$ sudo mv -v grok_exporter -1.0.0.RC5.Linux-AMD64 /Opt /Grok-Exporter

Teraz utwórz plik serwisowy SystemD Grok-exporter.praca w /Opt/Grok-Exporter katalog w następujący sposób:

$ sudo nano/opt/grok-exporter/grok-exporter.praca

Wpisz w następujących wierszach w Grok-exporter.praca plik.

[Jednostka]
Opis = serwer prometheus Grok_Exporter
[Praca]
Restart = zawsze
WorkingDirectory =/opt/grok-exporter
ExecStart =/opt/grok-exporter/grok_exporter--config =/opt/grok-exporter/config.yml
Execreload =/bin/kill -hup $ mainpid
TimeoutStopsec = 20s
SendSigkill = nie
[Zainstalować]
Wantby = Multi-User.cel

Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować Grok-exporter.praca plik.

Aby zainstalować Grok-exporter.praca plik usługi systemu na komputerze, utwórz symboliczny link /Opt/Grok-Exporter/Grok-Exporter.praca plik w /etc/systemd/system katalog w następujący sposób:

$ sudo ln -s/opt/grok-exporter/grok-exporter.serwis/etc/systemd/system/grok-exporter.praca

Skopiuj konfigurator.yml plik z /Opt/Grok-Exporter/przykład katalog do /Opt/Grok-Exporter katalog w następujący sposób:

$ sudo cp -v/opt/grok -exporter/example/config.YML/Opt/Grok-Exporter/

NOTATKA: konfigurator.yml Plik służy do konfiguracji Grok_Exporter. Przykład (domyślnie) konfigurator.yml Plik jest dobry do testowania, jeśli Grok_Exporter działa. Pokażę, jak skonfigurować Grok_Exporter W późniejszej sekcji tego artykułu.

Aby zmienia się systemd, uruchom następujące polecenie:

$ sudo systemctl demon-powód

Teraz zacznij Grok-exporter Usługa systemu z następującym poleceniem:

$ sudo systemctl start grok-exporter.praca

Grok-exporter Usługa systemu powinna być Aktywne/biegowe, Jak widać na zrzucie ekranu poniżej. To znaczy Grok_Exporter działa dobrze.

$ sudo systemCtl status Grok-Exporter.praca

Generowanie manekina pliku dziennika z Fakedata:

Aby wygenerować fałszywe pliki dziennika, w tym artykule użyję Lucapette/Fakedata. Istnieje wiele innych narzędzi, których można użyć do generowania fałszywych plików dziennika. Możesz użyć dowolnego z nich, jeśli chcesz.

Najpierw przejdź do ~/Pobieranie katalog w następujący sposób:

$ cd ~/pobieranie

Pobrać Fakedata, Uruchom następujące polecenie:

$ wget https: // github.com/Lucapette/Fakedata/wydania/pobieranie/v1.1.2/Fakedata_1.1.2_linux_amd64.smoła.GZ

Należy pobrać archiwum Fakedata.

Po pobraniu archiwum Fakedata powinieneś zobaczyć nowy Fakedata_1.1.2_linux_amd64.smoła.GZ w ~/Pobieranie informator.

$ ls -lh

Wyciągnij archiwum Fakedata Fakedata_1.1.2_linux_amd64.smoła.GZ Z następującym poleceniem:

$ tar xvzf fakedata_1.1.2_linux_amd64.smoła.GZ

Powinieneś znaleźć nowy element wykonywalny Fakedata w ~/Pobieranie katalog oznaczony na zrzucie ekranu poniżej.

$ ls -lh

Przesuń Fakedata binarny do /usr/lokalny/bin katalog w następujący sposób:

$ sudo mv -v fakedata/usr/local/bin/

Teraz powinieneś mieć dostęp Fakedata z wiersza poleceń.

$ fakedata --version

Utwórz nowy skrypt powłoki Hello-Http w /usr/lokalny/bin katalog w następujący sposób:

$ sudo nano/usr/local/bin/hello-http

Wpisz w następujących wierszach kodów w Hello-Http scenariusz.

#!/bin/bash
Logfile =/tmp/hello-http.dziennik
choć prawda
Do
Nazwa użytkownika Fakedata Http.Metoda enum:/,/login,/logout,/wiadomości IPv4 - -limit 1 >> $ logfile
sen 1
zrobione
Wyjście 0

Po zakończeniu naciśnij + X śledzony przez Y I Aby zapisać skrypt hello-http.

Dodaj zgodę Wykonaj do skryptu powłoki /usr/local/bin/hello-http następująco:

$ sudo chmod +x/usr/local/bin/hello-http

Aby przetestować Hello-Http skrypt, uruchom go w następujący sposób:

$ hello-http

Plik dziennika /tmp/hello-http.dziennik należy wygenerować. Nowy wpis powinien być dodawany do pliku dziennika co sekundę.

$ til -f /tmp /hello -http.dziennik

Każda linia /tmp/hello-http.dziennik Plik powinien znajdować się w następującym formacie,

Konfigurowanie Grok_Exporter:

W tej sekcji pokażę, jak skonfigurować Grok_Exporter do monitorowania wygenerowanego pliku dziennika /tmp/hello-http.dziennik.

Otworzyć Grok_Exporter plik konfiguracyjny /opt/grok-exporter/config.yml z edytorem tekstu Nano w następujący sposób:

$ sudo nano/opt/grok-exporter/config.yml

Domyślny plik konfiguracyjny powinien wyglądać w następujący sposób.

w wejście sekcja, określasz ścieżka pliku dziennika, który chcesz monitorować.

W takim przypadku chcę monitorować plik dziennika /tmp/hello-http.dziennik.

Czytaj wszystko Powinien być PRAWDA Jeśli chcesz monitorować cały plik dziennika i nowo dodane wiersze z pliku dziennika.

Czytaj wszystko Powinien być FAŁSZ Jeśli chcesz monitorować tylko nowo dodane wiersze z pliku dziennika.

Aby wyodrębnić dane z pliku dziennika /tmp/hello-http.dziennik, zmodyfikuj sekcję wskaźników konfigurator.yml Plik w następujący sposób:

Tutaj typ metryki jest kontratakiem. Grok_Exporter obsługuje również inne typy metryczne Prometheus. Jeśli chcesz użyć innego typu metrycznego Prometheusa, sprawdź oficjalną dokumentację Grok_Exporter. Linki podano poniżej.

GROK_EXPORTER - typ metryki przeciw

GROK_EXPORTER - Miernik miernika

GROK_EXPORTER - Rodzaj metryki histogramu

GROK_EXPORTER - Podsumowanie typu metrycznego

nazwa metryki będzie hello_http_total.

pomoc właściwość to krótki opis tego, co robi metryka.

mecz Właściwość służy do dopasowania różnych danych z każdej linii plików dziennika i przechowywania ich w odpowiednich zmiennych.

Pierwsza kolumna /tmp/hello-http.dziennik Plik jest . ; jest słowa typu wzorca, a dane wyodrębnione z tym typem będą przechowywane w zmiennej użytkownika.

W ten sam sposób druga kolumna to i jest również typu wzoru SŁOWO, a wyodrębnione dane będą przechowywane w http_method zmienny.

Trzecia kolumna pliku dziennika to ścieżka URL. Jest to typ wzoru Uripathparam, i będzie przechowywany w http_path zmienny.

Czwarta kolumna pliku dziennika to adres IP. Jest to typ wzoru Ip, i będzie przechowywany w zmiennej ip_addr.

Istnieje wiele innych typów wzorców, których można użyć do wyodrębnienia danych z pliku dziennika. Możesz znaleźć wszystkie obsługiwane typy wzorów w /Opt/Grok-Exporter/Wzory/wzorce Grok plik.

$ sudo cat/opt/grok-exporter/wzory/grok-wzorce

Po wyodrębnianiu danych i przechowywaniu w różnych zmiennych, możesz wybrać zmienne, które chcesz wyeksportować Grok_Exporter.

Zmienne, które chcesz wyeksportować Grok_Exporter musi być wymienione w etykiety sekcja oznaczona na zrzucie ekranu poniżej.

Możesz także tworzyć nowe typy wzorców i dopasować dane z każdej linii plików dziennika za pomocą nowo utworzonych typów wzorów.

Aby utworzyć nowe typy wzorców, dodajesz typy wzorów w grok_patterns sekcja konfigurator.yml plik.

Domyślnie niestandardowy typ wzorca Exim_message jest zdefiniowane i można je używać do dopasowania danych z plików dziennika za pomocą wyrażenia regularnego [a-za-z]*.

Aby dopasować status HTTP (i.mi., Zdobądź, opublikuj, umieść), możesz zdefiniować nowy typ wzoru Http_status [a-z] 3,4 i użyj go do dopasowania danych z pliku dziennika w następujący sposób. Mam nadzieję, że wpadniesz na pomysł.

Ostateczna wersja konfigurator.yml Plik jest podany na zrzucie ekranu poniżej.

Po zakończeniu wprowadzania zmian w konfigurator.yml Plik, naciśnij + X śledzony przez Y I Aby to uratować.

Aby zmiany zaczęły się uruchomić Grok-exporter Usługa systemu w następujący sposób:

$ sudo systemCtl restart grok-exporter.praca

Jeśli wszystko jest w porządku (nie popełniłeś żadnych błędów w pliku konfiguracyjnym konfigurator.yml), Grok-exporter Usługa systemu powinna być Aktywne/biegowe.

$ sudo systemCtl status Grok-Exporter.praca

Dodanie Grok_Exporter do Prometeusza:

Teraz musisz dodać Grok_Exporter do Prometeusza jako cel.

Najpierw musisz znać adres IP komputera, w którym zainstalowałeś Grok_Exporter.

W moim przypadku adres IP to 192.168.3.149. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.

$ hostName -i

Następnie otwórz plik konfiguracyjny Prometeusza Prometeusz.yml z edytorem tekstu Nano w następujący sposób:

$ sudo nano/opt/prometheus/prometheus.yml

w scrape_configs sekcja Prometeusz.yml plik, dodaj linie oznaczone na zrzucie ekranu poniżej.

NOTATKA: Nie zapomnij zastąpić docelowego adresu IP Grok-exporter zadanie z adresem IP komputera, na którym masz Grok_Exporter zainstalowane.

Aby zmiany zaczęły się uruchomić Prometeusz Usługa systemu w następujący sposób:

$ sudo systemctl restart prometheus.praca

NOTATKA: Zainstalowałem Prometeusz na tym samym komputerze co Grok_Exporter. Tak więc adres IP komputera, w którym zainstalowałem Prometheus, jest taki sam jak Grok_Exporter. W moim przypadku jest to 192.168.3.149. Pamiętaj, aby odtąd zastąpić go swoim.

Teraz odwiedź stronę Cels of Prometeusz na URL http: // 192.168.3.149: 9090/cele i powinieneś zobaczyć, że Grok-exporter cel jest w W GÓRĘ państwo.

Scrapowanie wskaźników z Grok_Exporter z Prometheus:

Zanim zaczniesz zeskrobać wskaźniki z Grok_Exporter Z Prometheusem uruchom generator manekina plików dziennika Hello-Http Z następującym poleceniem:

$ hello-http

Teraz odwiedź stronę wykresu Prometeusa pod adresem http: // 192.168.3.149: 9090/wykres i wykonaj wyrażenie hello_http_total.

Jak widać, dane są wyodrębnione z pliku dziennika /tmp/hello-http.dziennik. Każda wiersz pliku dziennika jest osobnym wpisem w Prometheus.

Możesz również filtrować dane. Załóżmy na przykład, że chcesz wymienić tylko wpisy, w których http_method jest. Aby to zrobić, uruchom wyrażenie hello_http_total http_method = ”get”.

Możesz także policzyć liczbę wpisów zgodnych z określonymi kryteriami. Na przykład, aby policzyć liczbę żądań HTTP, możesz uruchomić wyrażenie count (hello_http_total http_method = ”get”.

Jak widać, liczba żądań GET HTTP wynosi 30.

Jeśli wykonasz to samo wyrażenie po kilku sekundach, liczba żądań GET HTTP powinna wzrosnąć.

Gdzie dalej?

Aby dowiedzieć się więcej o konfiguracji Grok_Exporter, Przeczytaj oficjalną stronę dokumentacji konfiguracji Grok_Exporter.

Wniosek:

W tym artykule pokazałem, jak zainstalować Grok_Exporter na Ubuntu 20.04 LTS. Pokazałem również, jak generować fikcje logarów z Fakedata i skonfigurować Grok_Exporter do monitorowania wygenerowanego pliku dziennika. Pokazałem ci, jak dodać Grok_Exporter jako cel w Prometheus i monitorować pliki dziennika również z Prometheusem.

Bibliografia:

  1. FSTAB/GROK_EXPORTER: Eksportuj Metryki Prometheus z dowolnych nieustrukturyzowanych danych dziennika.
  2. Lucapette/Fakedata: CLI narzędzie do fałszywego generowania danych
  3. Wtyczka filtra Grok | Odniesienie logstash [7.15] | Elastyczny
  4. logstash-w-fatterns/grok-wzdborks w master · hpcugent/logstash-w-tempatterns
  5. https: // github.com/logstash-plugins/logstash-patterns-Core/Tree/Master/Wzory/ECS-V1
  6. Logstash: Zbieraj, analizę, dzienniki transformacji | Elastyczny
  7. Grok_exporter/config.MD w Master · fstAB/Grok_Exporter