Zbieranie źródeł danych dziennika systemowego za pomocą agenta usługi Log Analytics
Uwaga
W tym artykule odwołuje się do systemu CentOS — dystrybucji systemu Linux, która jest stanem End Of Life (EOL). Rozważ odpowiednie użycie i planowanie. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.
Syslog to protokół rejestrowania zdarzeń, który jest wspólny dla systemu Linux. Aplikacje wysyłają komunikaty, które mogą być przechowywane na komputerze lokalnym lub dostarczane do modułu zbierającego syslog. Po zainstalowaniu agenta usługi Log Analytics dla systemu Linux program konfiguruje lokalnego demona dziennika systemowego w celu przekazywania komunikatów do agenta. Następnie agent wysyła komunikaty do usługi Azure Monitor, w której jest tworzony odpowiedni rekord.
Ważne
Starszy agent usługi Log Analytics jest przestarzały od 31 sierpnia 2024 r. Firma Microsoft nie będzie już zapewniać żadnej pomocy technicznej dla agenta usługi Log Analytics. Jeśli używasz agenta usługi Log Analytics do pozyskiwania danych do usługi Azure Monitor, przeprowadź migrację teraz do agenta usługi Azure Monitor.
Uwaga
Usługa Azure Monitor obsługuje zbieranie komunikatów wysyłanych przez rsyslog lub syslog-ng, gdzie rsyslog jest domyślnym demonem. Domyślny demon dziennika systemowego w wersji 5 systemu Red Hat Enterprise Linux, CentOS i Oracle Linux (sysklog) nie jest obsługiwany w przypadku zbierania zdarzeń syslog. Aby zebrać dane dziennika systemowego z tej wersji tych dystrybucji, demon rsyslog powinien zostać zainstalowany i skonfigurowany do zastąpienia dziennika sysklog.
Następujące obiekty są obsługiwane przez moduł zbierający Syslog:
- Kern
- Użytkownik
- poczta
- Daemon
- auth
- syslog
- Lpr
- wiadomości
- Uucp
- cron
- authpriv
- ftp
- local0-local7
W przypadku każdej innej funkcji skonfiguruj źródło danych dzienników niestandardowych w usłudze Azure Monitor.
Konfigurowanie dziennika systemowego
Agent usługi Log Analytics dla systemu Linux będzie zbierał tylko zdarzenia z obiektami i ważnościami określonymi w konfiguracji. Dziennik systemu można skonfigurować za pośrednictwem witryny Azure Portal lub zarządzać plikami konfiguracji na agentach systemu Linux.
Konfigurowanie dziennika systemowego w witrynie Azure Portal
Skonfiguruj dziennik syslog z menu Konfiguracja agenta dla obszaru roboczego usługi Log Analytics. Ta konfiguracja jest dostarczana do pliku konfiguracji na każdym agencie systemu Linux.
Możesz dodać nowy obiekt, wybierając pozycję Dodaj obiekt. Dla każdego obiektu będą zbierane tylko komunikaty o wybranych ważnościach. Wybierz ważność dla określonego obiektu, który chcesz zebrać. Nie można podać żadnych innych kryteriów filtrowania komunikatów.
Domyślnie wszystkie zmiany konfiguracji są automatycznie wypychane do wszystkich agentów. Jeśli chcesz ręcznie skonfigurować dziennik syslog dla każdego agenta systemu Linux, wyczyść pole wyboru Zastosuj poniższą konfigurację do moich maszyn .
Konfigurowanie dziennika systemowego w agencie systemu Linux
Po zainstalowaniu agenta usługi Log Analytics na kliencie systemu Linux jest instalowany domyślny plik konfiguracji usługi Syslog, który definiuje obiekt i ważność zbieranych komunikatów. Możesz zmodyfikować ten plik, aby zmienić konfigurację. Plik konfiguracji różni się w zależności od demona dziennika systemowego zainstalowanego przez klienta.
Uwaga
Jeśli edytujesz konfigurację dziennika systemowego, musisz ponownie uruchomić demona dziennika systemowego, aby zmiany zaczęły obowiązywać.
rsyslog
Plik konfiguracji programu rsyslog znajduje się w lokalizacji /etc/rsyslog.d/95-omsagent.conf
. Jego domyślna zawartość jest wyświetlana w poniższym przykładzie. W tym przykładzie zbierane są komunikaty dziennika systemowego wysyłane z agenta lokalnego dla wszystkich obiektów z poziomem ostrzeżenia lub wyższym.
kern.warning @127.0.0.1:25224
user.warning @127.0.0.1:25224
daemon.warning @127.0.0.1:25224
auth.warning @127.0.0.1:25224
syslog.warning @127.0.0.1:25224
uucp.warning @127.0.0.1:25224
authpriv.warning @127.0.0.1:25224
ftp.warning @127.0.0.1:25224
cron.warning @127.0.0.1:25224
local0.warning @127.0.0.1:25224
local1.warning @127.0.0.1:25224
local2.warning @127.0.0.1:25224
local3.warning @127.0.0.1:25224
local4.warning @127.0.0.1:25224
local5.warning @127.0.0.1:25224
local6.warning @127.0.0.1:25224
local7.warning @127.0.0.1:25224
Obiekt można usunąć, usuwając jego sekcję pliku konfiguracji. Można ograniczyć ważność, które są zbierane dla określonego obiektu, modyfikując wpis tego obiektu. Aby na przykład ograniczyć obsługę użytkowników do komunikatów o ważności błędu lub wyższym, należy zmodyfikować ten wiersz pliku konfiguracji na następujący przykład:
user.error @127.0.0.1:25224
syslog-ng
Plik konfiguracji syslog-ng znajduje się w lokalizacji /etc/syslog-ng/syslog-ng.conf
. Jego domyślna zawartość jest wyświetlana w tym przykładzie. W tym przykładzie zbierane są komunikaty dziennika systemowego wysyłane z agenta lokalnego dla wszystkich obiektów i wszystkich ważności.
#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };
#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };
#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };
#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };
#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };
#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };
#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };
#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };
#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };
#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };
#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Obiekt można usunąć, usuwając jego sekcję pliku konfiguracji. Można ograniczyć ważność zbieraną dla określonego obiektu, usuwając je z listy. Aby na przykład ograniczyć funkcję użytkownika do ostrzegania tylko o krytycznych komunikatach, należy zmodyfikować sekcję tego pliku konfiguracji, jak pokazano w poniższym przykładzie:
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Zbieranie danych z innych portów dziennika systemowego
Agent usługi Log Analytics nasłuchuje komunikatów dziennika systemowego na lokalnym kliencie na porcie 25224. Po zainstalowaniu agenta jest stosowana domyślna konfiguracja dziennika systemowego i znajduje się w następującej lokalizacji:
- Rsyslog:
/etc/rsyslog.d/95-omsagent.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Numer portu można zmienić, tworząc dwa pliki konfiguracji: plik konfiguracji FluentD i plik rsyslog-or-syslog-ng w zależności od zainstalowanego demona dziennika systemowego.
Plik konfiguracji FluentD powinien być nowym plikiem znajdującym się w
/etc/opt/microsoft/omsagent/conf/omsagent.d
pliku i zastąpić wartość we wpisieport
numerem portu niestandardowego.<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog
W przypadku programu rsyslog należy utworzyć nowy plik konfiguracji znajdujący się w
/etc/rsyslog.d/
pliku i zastąpić wartość%SYSLOG_PORT%
numerem portu niestandardowego.Uwaga
Jeśli zmodyfikujesz tę wartość w pliku
95-omsagent.conf
konfiguracji , zostanie ona zastąpiona, gdy agent zastosuje konfigurację domyślną.# OMS Syslog collection for workspace %WORKSPACE_ID% kern.warning @127.0.0.1:%SYSLOG_PORT% user.warning @127.0.0.1:%SYSLOG_PORT% daemon.warning @127.0.0.1:%SYSLOG_PORT% auth.warning @127.0.0.1:%SYSLOG_PORT%
Konfiguracja syslog-ng powinna zostać zmodyfikowana przez skopiowanie przykładowej konfiguracji pokazanej następnego i dodanie niestandardowych zmodyfikowanych ustawień na końcu pliku konfiguracji znajdującego
syslog-ng.conf
się w/etc/syslog-ng/
lokalizacji . Nie używaj etykiety%WORKSPACE_ID%_oms
domyślnej ani%WORKSPACE_ID_OMS
. Zdefiniuj etykietę niestandardową, aby ułatwić odróżnienie zmian.Uwaga
Jeśli zmodyfikujesz wartości domyślne w pliku konfiguracji, zostaną one zastąpione, gdy agent zastosuje konfigurację domyślną.
filter f_custom_filter { level(warning) and facility(auth; }; destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); }; log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
Po zakończeniu zmian uruchom ponownie dziennik syslog i usługę agenta usługi Log Analytics, aby upewnić się, że zmiany konfiguracji zostaną zastosowane.
Właściwości rekordu dziennika systemowego
Rekordy dziennika systemowego mają typ dziennika systemowego i mają właściwości pokazane w poniższej tabeli.
Właściwości | opis |
---|---|
Komputer | Komputer, z którego zostało zebrane zdarzenie. |
Pomieszczenie | Definiuje część systemu, która wygenerowała komunikat. |
HostIP | Adres IP systemu wysyłającego komunikat. |
HostName | Nazwa systemu wysyłającego komunikat. |
WażnośćLevel | Poziom istotności zdarzenia. |
SyslogMessage | Tekst wiadomości. |
ProcessId | Identyfikator procesu, który wygenerował komunikat. |
EventTime | Data i godzina wygenerowania zdarzenia. |
Zapytania dzienników z rekordami dziennika systemowego
W poniższej tabeli przedstawiono różne przykłady zapytań dziennika, które pobierają rekordy dziennika systemowego.
Query | opis |
---|---|
Dziennik systemu | Wszystkie dzienniki systemowe |
Dziennik systemowy | where SeverityLevel == "error" | Wszystkie rekordy dziennika systemowego o ważności błędu |
Dziennik systemowy | summarize AggregatedValue = count() by Computer | Liczba rekordów dziennika systemowego według komputera |
Dziennik systemowy | summarize AggregatedValue = count() by Facility | Liczba rekordów dziennika systemowego według obiektu |
Następne kroki
- Dowiedz się więcej o zapytaniach dzienników w celu analizowania danych zebranych ze źródeł danych i rozwiązań.
- Użyj pól niestandardowych do analizowania danych z rekordów syslog do poszczególnych pól.
- Konfigurowanie agentów systemu Linux w celu zbierania innych typów danych.