Zbieranie zdarzeń dziennika systemowego za pomocą agenta usługi Azure Monitor
Zdarzenia dziennika systemowego to jedno ze źródeł danych używanych w regule zbierania danych (DCR). Szczegółowe informacje na temat tworzenia kontrolera domeny znajdują się w temacie Zbieranie danych za pomocą agenta usługi Azure Monitor. Ten artykuł zawiera dodatkowe szczegóły dotyczące typu źródła danych zdarzeń dziennika systemowego.
Syslog to protokół rejestrowania zdarzeń, który jest wspólny dla systemu Linux. Demona dziennika systemowego wbudowanego w urządzenia z systemem Linux i urządzeń można używać do zbierania lokalnych zdarzeń określonego typu. Aplikacje wysyłają komunikaty przechowywane na komputerze lokalnym lub dostarczane do modułu zbierającego syslog.
Napiwek
Aby zbierać dane z urządzeń, które nie zezwalają na lokalną instalację agenta usługi Azure Monitor, skonfiguruj dedykowany moduł przesyłania dalej dzienników oparty na systemie Linux.
Wymagania wstępne
- Obszar roboczy usługi Log Analytics, w którym masz co najmniej prawa współautora. Zdarzenia dziennika systemowego są wysyłane do tabeli Syslog .
- Nowy lub istniejący kontroler domeny opisany w temacie Zbieranie danych za pomocą agenta usługi Azure Monitor.
Konfigurowanie zbierania danych dziennika systemowego
W kroku Collect and deliver of the DCR (Zbieranie i dostarczanie) wybierz pozycję Linux Syslog (Dziennik systemu Linux) z listy rozwijanej Typ źródła danych.
Następujące obiekty są obsługiwane przez moduł zbierający Syslog:
Numer indeksu priorytetu | Nazwa priorytetu |
---|---|
{none} | Brak pri |
0 | Kern |
1 | Użytkownik |
2 | poczta |
3 | Daemon |
100 | auth |
5 | syslog |
6 | Lpr |
7 | wiadomości |
8 | Uucp |
9 | cron |
10 | authpriv |
11 | ftp |
12 | Ntp |
13 | inspekcje |
14 | alert |
15 | zegar |
16 | local0 |
17 | local1 |
18 | local2 |
19 | local3 |
20 | local4 |
21 | local5 |
22 | local6 |
23 | local7 |
Domyślnie agent będzie zbierał wszystkie zdarzenia wysyłane przez konfigurację dziennika systemowego. Zmień minimalny poziom dziennika dla każdego obiektu, aby ograniczyć zbieranie danych. Wybierz pozycję BRAK , aby zebrać żadne zdarzenia dla określonego obiektu.
Miejsca docelowe
Dane dziennika systemowego można wysyłać do następujących lokalizacji.
Element docelowy | Tabela/przestrzeń nazw |
---|---|
Obszar roboczy usługi Log Analytics | Syslog |
Uwaga
Agent systemu Linux usługi Azure Monitor w wersji 1.15.2 i nowszej obsługuje formaty RFC dziennika systemu, w tym Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee i Common Event Format (CEF).
Konfigurowanie dziennika systemowego na agencie systemu Linux
Gdy agent usługi Azure Monitor jest zainstalowany na maszynie z systemem Linux, instaluje domyślny plik konfiguracji syslog, który definiuje obiekt i ważność komunikatów, które są zbierane, jeśli usługa Syslog jest włączona w kontrolerze domeny. Plik konfiguracji różni się w zależności od demona dziennika systemowego zainstalowanego przez klienta.
Rsyslog
W wielu dystrybucjach systemu Linux demon rsyslogd jest odpowiedzialny za korzystanie, przechowywanie i routing komunikatów dziennika wysyłanych przy użyciu interfejsu API dziennika systemu Linux. Agent usługi Azure Monitor używa modułu wyjściowego przekazywania TCP (omfwd
) w programie rsyslog do przekazywania komunikatów dziennika.
Instalacja agenta usługi Azure Monitor obejmuje domyślne pliki konfiguracji znajdujące się w programie /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/
. Po dodaniu dziennika systemowego do kontrolera domeny ta konfiguracja jest instalowana w etc/rsyslog.d
katalogu systemowym, a program rsyslog zostanie automatycznie uruchomiony ponownie, aby zmiany zaczęły obowiązywać.
Uwaga
W systemach opartych na rsyslog agent systemu Linux usługi Azure Monitor dodaje reguły przekazywania do domyślnego zestawu reguł zdefiniowanego w konfiguracji rsyslog. Jeśli jest używanych wiele zestawów reguł, dane wejściowe powiązane z zestawami reguł innych niż domyślne nie są przekazywane do agenta usługi Azure Monitor. Aby uzyskać więcej informacji na temat wielu zestawów reguł w programie rsyslog, zobacz oficjalną dokumentację.
Poniżej znajduje się domyślna konfiguracja, która zbiera komunikaty dziennika systemowego wysyłane z lokalnego agenta dla wszystkich obiektów ze wszystkimi poziomami dziennika.
$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
queue.maxDiskSpace="1g"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")
Poniższa konfiguracja jest używana podczas korzystania z programu SELinux i decydujesz się na użycie gniazd systemu Unix.
$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock:
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module.
$ModLoad omuxsock
W niektórych starszych systemach mogą wystąpić problemy z formatowaniem dziennika rsyslog, gdy tradycyjny format przekazywania jest używany do wysyłania zdarzeń dziennika systemowego do agenta usługi Azure Monitor. W przypadku tych systemów agent usługi Azure Monitor automatycznie umieszcza starszy szablon usługi przesyłania dalej:
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")
Syslog-ng
Instalacja agenta usługi Azure Monitor obejmuje domyślne pliki konfiguracji znajdujące się w programie /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf
. Po dodaniu dziennika systemowego do kontrolera domeny ta konfiguracja jest instalowana w /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
katalogu systemowym, a systemlog-ng zostanie automatycznie uruchomiony ponownie, aby zmiany zaczęły obowiązywać.
Zawartość domyślna 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 i wszystkich ważności.
$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};
# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
network("127.0.0.1"
port(28330)
log-fifo-size(25000));
};
log {
source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
destination(d_azure_mdsd);
flags(flow-control);
};
Poniższa konfiguracja jest używana podczas korzystania z programu SELinux i decydujesz się na użycie gniazd systemu Unix.
$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {};
# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using unix domain socket
destination d_azure_mdsd {
unix-dgram("/run/azuremonitoragent/default_syslog.socket"
flags(no_multi_line) );
};
log {
source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
destination(d_azure_mdsd);
};
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 systemów Red Hat Enterprise Linux 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.
Jeśli edytujesz konfigurację dziennika systemowego, musisz ponownie uruchomić demona dziennika systemowego, aby zmiany zaczęły obowiązywać.
Obsługiwane obiekty
Następujące obiekty są obsługiwane przez moduł zbierający Syslog:
Indeks pri | Nazwa pri |
---|---|
0 | Brak |
1 | Kern |
2 | Użytkownik |
3 | poczta |
100 | Daemon |
100 | auth |
5 | syslog |
6 | Lpr |
7 | wiadomości |
8 | Uucp |
9 | ftp |
10 | Ntp |
11 | inspekcje |
12 | alert |
13 | znacznik |
14 | local0 |
15 | local1 |
16 | local2 |
17 | local3 |
18 | local4 |
19 | local5 |
20 | local6 |
21 | local7 |
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. |
Przykładowe zapytania dziennika syslogu
W poniższej tabeli przedstawiono różne przykłady zapytań dziennika, które pobierają rekordy dziennika systemowego.
Wszystkie dzienniki systemowe
Syslog
Wszystkie rekordy dziennika systemowego o ważności błędu
Syslog | where SeverityLevel == "error"
Wszystkie rekordy dziennika systemu z typem obiektu uwierzytelniania
Syslog | where facility == "auth"
Liczba rekordów dziennika systemowego według obiektu
Syslog | summarize AggregatedValue = count() by facility
Rozwiązywanie problemów
Wykonaj poniższe kroki, jeśli nie zbierasz danych z oczekiwanego dziennika JSON.
- Sprawdź, czy dane są zapisywane w usłudze Syslog.
- Zobacz Weryfikowanie operacji , aby sprawdzić, czy agent działa, a dane są odbierane.
Następne kroki
Dowiedz się więcej na następujące tematy: