Graylog: Wybór formatu wejścia
Ta dokumentacja jest częścią przewodnika Wybór typów wejść. Pełny przewodnik znajdziesz tutaj: Jak wybrać odpowiedni typ wejścia 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!
Pierwszym krokiem jest wybór formatu wiadomości logów. Do dyspozycji są trzy główne opcje: RAW/Plaintext, Syslog lub GELF.
Format RAW/Plaintext
To najprostszy format. Działa z każdym systemem, ponieważ przesyła pełną wiadomość w postaci czystego tekstu. Jest bardzo łatwy w użyciu i idealnie nadaje się do wstępnych testów, na przykład do wysłania wiadomości za pomocą narzędzia netcat.
Aby przetestować, można utworzyć wejście "Raw/Plaintext UDP", a następnie wysłać testowy log za pomocą jednej z poniższych komend:
- Z macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - Z Linux:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
To bardzo proste, prawda? Jednak ze względu na podstawowy charakter tego formatu szybko napotkacie ograniczenia. Dlatego nie zalecamy używania go do niczego poza prostymi testami.
Format Syslog
To dobrze znany format, szeroko stosowany do przechowywania i przesyłania logów w środowiskach serwerowych. Występuje w systemach Linux, Windows, *BSD i innych systemach operacyjnych.
Jeśli korzystacie z Syslog, Rsyslog lub innej kompatybilnej usługi i chcecie przesyłać logi z serwera do Graylog, wejście syslog jest najprostszą opcją.
Jednak ponieważ GELF jest bardziej zaawansowany, jeśli możecie wysyłać wiadomości w formacie GELF, zalecamy właśnie to rozwiązanie, jak opisano poniżej.
Należy pamiętać, że format syslog jest ograniczony do 1024 znaków.
Format GELF (zalecany)
GELF to skrót od "Graylog Extended Log Format". Ten format został stworzony przez Graylog i jest obecnie szeroko stosowany w wielu produktach, stając się standardem.
Format GELF jest bardzo funkcjonalny, ponieważ umożliwia przesyłanie logów w sposób strukturalny. Logowanie strukturalne pozwala przekazywać wiele pól i wartości zamiast pojedynczej, niestrukturalnej wiadomości tekstowej. Dzięki temu Graylog może łatwiej analizować i wyszukiwać informacje.
Na przykład, jeśli chcecie przesłać log zawierający adres IP i typ żądania, możecie wysłać wiadomość z dwoma polami: ip oraz request_type. Po stronie Graylog będziecie mogli wyszukiwać bezpośrednio po tych polach, np. wszystkie żądania z zapytaniem: request_type: POST.
GELF opiera się na formacie JSON i musi zawierać co najmniej pola: version, host oraz short_message. Można dodać dodatkowe pola, które muszą być poprzedzone podkreśleniem (_).
Przykładowa prosta wiadomość z dodatkowym polem device_id wygląda następująco:
{
"version": "1.1",
"host": "myIotDevice",
"short_message": "Something is happening",
"_device_id": "abcd"
}
Następnie można wyszukać wszystkie wiadomości pochodzące z urządzenia "abcd" w Graylog, używając zapytania: device_id: abcd.
Więcej szczegółów na temat GELF znajdziecie w oficjalnej specyfikacji: https://docs.graylog.org/en/4.0/pages/gelf.html.
Jeśli chcecie przesyłać logi z serwerów lub aplikacji, możecie skorzystać z jednej z wielu dostępnych bibliotek, które automatycznie tworzą i wysyłają wiadomości. Przykłady dostępne są dla Node.js, .NET oraz Python.