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:
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 .
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: