Graylog: Pierwsze kroki
Jak rozpocząć pracę z Graylog
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Graylog cloud, które zapewnia wiele korzyści, w tym:
- Nieograniczony i dedykowany serwer e-mail SMTP w zestawie.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
- Dostosowywalna nazwa domeny zabezpieczona za pomocą HTTPS (na przykład, https://logs.twoja-firma.com).
- Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Graylog cloud hosting Stackhero!
Tworzenie pierwszego wejścia w Graylog
Wejście to punkt końcowy, w którym Graylog odbiera Twoje logi. Możesz wysyłać logi za pomocą TCP lub UDP. Dodatkowo, Graylog może zbierać wpisy logów z API, kolejki Kafka, serwera RabbitMQ i innych metod.
W tym przykładzie utworzymy surowe wejście UDP. Aby rozpocząć, otwórz interfejs Graylog i przejdź do "System", a następnie "Inputs". Wybierz "Raw/Plaintext UDP" i kliknij "Launch new input". Skonfiguruj swoje wejście z następującymi wartościami i zatwierdź formularz:
- Node: Wybierz swój węzeł
- Title: RAW UDP
- Port: 5555
Następnie otwórz terminal na swoim komputerze i wyślij wiadomość UDP do swojego serwera Graylog. Pamiętaj, aby zastąpić XXXXXX nazwą domeny swojej usługi:
- Na macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Na Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
Po wysłaniu wiadomości wróć do Graylog i kliknij "Search". Powinieneś zobaczyć swoją wiadomość 🎉
Gratulacje, właśnie wysłałeś swoją pierwszą wiadomość do Graylog! Zachęcamy do tworzenia dodatkowych wejść i pulpitów dostosowanych do Twoich potrzeb. W celu uzyskania dalszych wskazówek możesz skorzystać z oficjalnej dokumentacji Graylog.
Przykłady kodu Graylog
Kilka przykładów kodu jest dostępnych w naszym repozytorium Git. To repozytorium oferuje praktyczne implementacje i dodatkowe dostosowania, aby pomóc Ci w pełni wykorzystać Graylog.
Wysyłanie logów rsyslog do Graylog z użyciem szyfrowania TLS
Jeśli masz klienta rsyslog i chcesz bezpiecznie wysyłać logi do Graylog, postępuj zgodnie z tymi krokami:
Nie aktywuj żadnej opcji TLS na wejściu Graylog. TLS będzie zarządzany bezpośrednio przez reverse proxy na Twojej instancji, aby Graylog nie musiał się tym zajmować.
-
Przejdź do konfiguracji swojej usługi Graylog w panelu Stackhero i włącz "TLS encryption" dla portu Syslog TCP 514.
-
Zaktualizuj swoją konfigurację rsyslog zgodnie z poniższymi wskazówkami. Zastąp
<XXXXXX>.stackhero-network.comnazwą hosta swojej instancji:# Definiowanie certyfikatu CA TLS global( DefaultNetstreamDriver="gtls" DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt" ) # Wysyłanie wszystkich logów do zdalnego serwera # Tworzona jest kolejka na dysku dla tej akcji. Jeśli zdalny host jest # niedostępny, wiadomości są zapisywane na dysku i wysyłane, gdy stanie się dostępny ponownie # Zobacz https://www.rsyslog.com/doc/v8-stable/configuration/actions.html # oraz https://www.rsyslog.com/doc/v8-stable/configuration/modules/omfwd.html *.* action( type="omfwd" target="<XXXXXX>.stackhero-network.com" port="514" protocol="tcp" KeepAlive="on" KeepAlive.Interval="30" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" ResendLastMSGOnReconnect="on" queue.filename="fwdRule1" # unikalny prefiks nazwy dla plików kolejki queue.type="LinkedList" queue.maxDiskSpace="256m" queue.saveOnShutdown="on" action.resumeRetryCount="-1" action.resumeInterval="30" ) -
Zrestartuj swoją usługę rsyslog i zweryfikuj konfigurację, wysyłając log za pomocą polecenia:
logger This is a test
To kończy konfigurację. Teraz bezpiecznie wysyłasz logi do Graylog z użyciem szyfrowania TLS!
Obsługa błędu "failed to parse field [XXXX] of type [YYYY]"
Możesz napotkać błąd taki jak:
org.opensearch.index.mapper.MapperParsingException: failed to parse field [time] of type [long] in document with id 'xxxx'
Możesz zobaczyć ten błąd w logach dostępnych w panelu Stackhero lub w panelu administracyjnym Graylog w System > Overview > Indexer failures.
Ten błąd wskazuje, że log został wysłany z wartością dla pola time, która nie odpowiada oczekiwanemu typowi (w tym przypadku, wartość numeryczna typu "long"). Graylog wykorzystuje funkcję dynamicznego mapowania OpenSearch. Kiedy log jest wysyłany po raz pierwszy, OpenSearch próbuje odgadnąć typy pól. Na przykład, jeśli log zawiera pole time z wartością numeryczną 1234, OpenSearch definiuje je jako pole numeryczne. Jeśli inny log zostanie wysłany z polem time ustawionym jako "abcd", ciąg znaków, OpenSearch go odrzuci, ponieważ oczekuje wartości numerycznej.
Pamiętaj, że nazwa pola time jest używana tylko jako przykład. Może to być dowolna nazwa pola i typ.
Aby rozwiązać ten problem, musisz zdefiniować na nowo typ, którego oczekuje OpenSearch. Więcej informacji znajdziesz w oficjalnej dokumentacji Graylog.
Aktualizacja mapowania OpenSearch
Przed kontynuacją włącz dostęp do OpenSearch w panelu Stackhero. Przejdź do swojej usługi Graylog i kliknij przycisk "Configure", aby aktywować dostęp do OpenSearch.
Bądź ostrożny z tymi zmianami, ponieważ nieprawidłowe konfiguracje mogą zablokować Twój klaster OpenSearch i potencjalnie spowodować utratę danych. Jeśli nie jesteś pewien, nie kontynuuj.
-
Zdefiniuj swoje nowe mapowanie. W tym przykładzie redefiniujemy pole
time, aby było typu string. Dostępne typy znajdziesz w dokumentacji typów pól OpenSearch. -
Zapisz następującą zawartość do pliku o nazwie
graylog-custom-mapping.json:{ "template": "graylog_*", "mappings": { "message": { "properties": { "time": { "type": "string", "index": "not_analyzed" } } } } } -
Wyślij ten plik za pomocą następującego polecenia curl (zastąp
<XXXXXX>.stackhero-network.comnazwą domeny swojej instancji):curl -u 'admin' -X PUT -d @'graylog-custom-mapping.json' -H 'Content-Type: application/json' 'https://<XXXXXX>.stackhero-network.com/opensearch/_template/graylog-custom-mapping?pretty'Powinieneś otrzymać odpowiedź taką jak:
{ "acknowledged": true } -
Na koniec, zweryfikuj, że mapowanie zostało zaktualizowane za pomocą tego polecenia (zastąp domenę w razie potrzeby):
curl -u 'admin' -X GET 'https://<XXXXXX>.stackhero-network.com/opensearch/graylog_deflector/_mapping?pretty'
Obsługa błędu "Unable to write audit log entry"
Jeśli zobaczysz błąd taki jak:
Unable to write audit log entry because there is no valid license
lub
Not running cleanup for auditlog entries in MongoDB because there is no valid license
dzieje się tak, ponieważ Graylog Enterprise został aktywowany bez ważnej licencji. Jeśli masz licencję, możesz ją wprowadzić w interfejsie Graylog. Jeśli nie masz licencji, po prostu wyłącz Graylog Enterprise w panelu Stackhero.