Monitorowanie plików dziennika systemu Linux w programie System Center Operations Manager
Uwaga
Program System Center Operations Manager nie będzie obsługiwał płynnego monitorowania pliku dziennika opartego na protokole OMS po wycofaniu agenta pakietu OMS, który jest zaplanowany na sierpień 2024 r.
Program System Center Operations Manager ma teraz ulepszone funkcje monitorowania plików dziennika dla serwerów z systemem Linux przy użyciu najnowszej wersji agenta korzystającego z usługi Fluentd. Ta aktualizacja zapewnia następujące ulepszenia dotyczące poprzedniego monitorowania plików dziennika:
- Symbole wieloznaczne w nazwie i ścieżce pliku dziennika.
- Nowe wzorce dopasowania do dostosowywania wyszukiwania dzienników, takie jak proste dopasowanie, dopasowanie wyłączne, skorelowane dopasowanie, powtarzana korelacja i wyłączna korelacja.
- Obsługa ogólnych wtyczek Fluentd opublikowanych przez społeczność Fluentd.
Podstawowa operacja
Podstawowa operacja monitorowania plików dziennika w systemie Linux obejmuje następujące kroki:
- Rekord jest zapisywany w dzienniku agenta systemu Linux.
- Fluentd zbiera rekord i tworzy zdarzenie na dopasowaniu wzorca.
- Zdarzenie jest wysyłane do usługi OMED na serwerze zarządzania i rejestrowane w dzienniku zdarzeń usługi System Center OMED na serwerze zarządzania. (Dziennik zdarzeń usługi System Center OMED jest tworzony tylko wtedy, gdy zdarzenie zostało pomyślnie wysłane z agenta Fluentd)
- Reguły i monitory w niestandardowym pakiecie administracyjnym zbierają zdarzenia i tworzą alerty w programie Operations Manager.
Omówienie konfiguracji
Monitorowanie plików dziennika wymaga wykonania następujących kroków. Szczegółowe informacje można znaleźć w następujących sekcjach:
- Zaimportuj najnowszy pakiet administracyjny systemu Linux programu System Center Operations Manager 2019.
- Zainstaluj najnowszą wersję agenta systemu Linux na każdym komputerze z systemem Linux, który ma być monitorowany.
- Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który ma być monitorowany.
- Utwórz plik konfiguracji fluentd w celu zbierania dzienników.
- Skopiuj plik konfiguracji do agentów systemu Linux.
- Tworzenie reguł i monitorów przy użyciu przykładowego pakietu administracyjnego w celu zbierania zdarzeń z dziennika i tworzenia alertów.
- Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2022 Linux.
- Zainstaluj najnowszą wersję agenta systemu Linux na każdym komputerze z systemem Linux, który ma być monitorowany.
- Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który ma być monitorowany.
- Utwórz plik konfiguracji fluentd w celu zbierania dzienników.
- Skopiuj plik konfiguracji do agentów systemu Linux.
- Tworzenie reguł i monitorów przy użyciu przykładowego pakietu administracyjnego w celu zbierania zdarzeń z dziennika i tworzenia alertów.
Instalowanie pakietu administracyjnego monitorowania dzienników
Zainstaluj pakiet administracyjny Microsoft.Linux.Log.Monitoring, aby włączyć monitorowanie plików dziennika systemu Linux.
Uwaga
Jeśli masz skonfigurowanego agenta pakietu OMS i spróbujesz odinstalować agenta systemów UNIX i LINUX z konsoli programu , składnik pakietu OMS nie zostanie odinstalowany z agenta.
Konfigurowanie monitorowania plików dziennika systemu Linux
Aby skonfigurować monitorowanie plików dziennika systemu Linux, wykonaj następujące kroki:
Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2019 Linux przy użyciu standardowego procesu instalowania pakietu administracyjnego.
Zainstaluj nowego agenta systemu Linux na serwerach z systemem Linux ręcznie lub za pomocą kreatora odnajdywania](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).
Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który chcesz monitorować. Użyj następujących poleceń:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
Wykonaj następujące kroki na agencie systemu Linux:
Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2022 Linux przy użyciu standardowego procesu instalowania pakietu administracyjnego.
Zainstaluj nowego agenta systemu Linux na serwerach z systemem Linux ręcznie lub za pomocą kreatora odnajdywania](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).
Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który chcesz monitorować. Użyj następujących poleceń:
# Download latest OMS Agent from GitHub wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh # Run onboarding script sh onboard_agent.sh
Wykonaj następujące kroki na agencie systemu Linux:
Utwórz foldery w następujących ścieżkach za pomocą poniższych poleceń:
# Create omsagent.d folder mkdir -p /etc/opt/microsoft/omsagent/scom/conf/omsagent.d # Create certs folder mkdir /etc/opt/microsoft/omsagent/scom/certs # Create log folder mkdir -p /var/opt/microsoft/omsagent/scom/log # Create run folder mkdir /var/opt/microsoft/omsagent/scom/run # Create state folder mkdir /var/opt/microsoft/omsagent/scom/state # Create tmp folder mkdir /var/opt/microsoft/omsagent/scom/tmp # Create fluent-logging folder (used for log file position file, this location is flexible) mkdir -p /home/omsagent/fluent-logging
Ustaw własność dla każdego z powyższych folderów na :
omsagent:omiusers
# Change owner of System Center Operations Manager folder chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom # Change owner of log folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/log # Change owner of run folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/run # Change owner of state folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/state # Change owner of tmp folder chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/tmp # Change owner of fluent-logging folder (used for log file position file, this location is flexible) chown omsagent:omiusers /home/omsagent/fluent-logging
Utwórz pliki omsagent i omsconfig:
# Create omsadmin.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Create omsagent.conf file touch /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
Ustaw własność na każdy z powyższych plików na wartość
omsagent:omiusers
:# Change owner of omsadmin.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf # Change owner of omsagent.conf file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
Edytuj plik
/etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf
i dodaj następujące informacje po zmianie wyróżnionych informacji.WORKSPACE_ID=scom System Center Operations Manager_ENDPOINT=https://<mark>\<MSFQDN\></mark>:8886 MONITORING_ID={274F8D7B-DBCA-8FC3-1451-8DCD55092156}
Uruchom ponownie agenta OMSAgent:
/opt/microsoft/omsagent/bin/service_control restart
Sprawdź stan w dzienniku omsagent:
tail -100 /var/opt/microsoft/omsagent/scom/log/omsagent.log
Włączanie usługi OMED
Włącz usługę OMED na każdym serwerze zarządzania w puli zasobów, zarządzając agentami systemu Linux.
Usługa OMED zbiera zdarzenia z usługi Fluentd i konwertuje je na zdarzenia programu Operations Manager. Importujesz niestandardowy pakiet administracyjny, który może generować alerty na podstawie zdarzeń otrzymanych z serwerów z systemem Linux.
Usługę OMED można włączyć za pomocą konsoli Operacje lub ręcznie na serwerze zarządzania lub serwerze bramy.
- W konsoli Operacje przejdź do pozycji Monitorowanie>stanu serwerów zarządzania serwera>zarządzania programu Operations Manager.>
- Wybierz serwer zarządzania w stanie Serwery zarządzania.
- W obszarze Zadania wybierz pozycję Usługa kondycji Zadania>włącz program System Center OMED Server.
Dodawanie reguły zapory OMED
Aby włączyć regułę zapory OMED, możesz dodać port (TCP/8886) automatycznie za pomocą programu PowerShell lub ręcznie.
- Automatyczne dodawanie reguły przy użyciu programu PowerShell
- Ręczne dodawanie reguły za pomocą zapory systemu Windows
Wykonaj następujące kroki, aby automatycznie dodać regułę za pomocą programu PowerShell:
Następujące polecenie umożliwia automatyczne dodawanie reguły zapory:
Set-NetFirewallRule -DisplayName "System Center Operations Manager External DataSource Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8886
Przypisywanie certyfikatu klienta dla agenta OMSAgent
Podczas przypisywania certyfikatu klienta dla agenta OMSAgent są dostępne dwie opcje.
- Połącz się z podpisanym certyfikatem z agenta OMI.
- Ręczne generowanie certyfikatu klienta dla agenta pakietu OMS.
Wybierz wymaganą kartę, aby wykonać kroki, aby połączyć się z podpisanym certyfikatem z agenta OMI lub ręcznie wygenerować certyfikat klienta z agenta pakietu OMS:
- Łączenie certyfikatu agenta OMI z agentem pakietu OMS
- Generowanie certyfikatu klienta dla agenta pakietu OMS
Ustaw własność pliku
omi.pem
iomikey.pem
na :omsagent:omiusers
# Change owner of System Center Operations Manager-cert.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Change owner of System Center Operations Manager-key.pem file chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
Uruchom następujące polecenie na maszynie z systemem Linux, aby ustawić certyfikat klienta agenta pakietu OMS na certyfikat OMI (certyfikat agenta systemu Linux programu Operations Manager):
# Link file omi.pem to System Center Operations Manager-cert.pem ln -s /etc/opt/omi/ssl/omi.pem /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem # Link file omikey.pem to System Center Operations Manager-key.pem ln -s /etc/opt/omi/ssl/omikey.pem /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
Tworzenie pliku konfiguracji fluentd
Operację Fluentd można skonfigurować przy użyciu pliku konfiguracji. Aby korzystać z monitorowania dzienników, należy utworzyć plik konfiguracji. Plik konfiguracji zawiera informacje, takie jak nazwa pliku dziennika źródłowego, ścieżka i filtry do zdefiniowania danych do zebrania.
Plik konfiguracji master Fluentd omsagent.conf znajduje się w folderze /etc/opt/microsoft/omsagent/scom/conf/
. Konfigurację monitorowania plików dziennika można dodać bezpośrednio do tego pliku, ale należy utworzyć oddzielny plik konfiguracji, aby lepiej zarządzać różnymi ustawieniami. Następnie należy użyć @include dyrektywy w pliku głównym, aby uwzględnić plik niestandardowy.
Jeśli na przykład utworzono plik logmonitoring.conf w /etc/opt/microsoft/omsagent/scom/conf/omsagent.d
pliku , dodaj jeden z następujących wierszy do pliku omsagent.d :
# Include all configuration files
@include omsagent.d/*.conf
lub
# Include single configuration file
@include omsagent.d/logmonitoring.conf
Aby uzyskać więcej informacji na temat plików konfiguracji fluentd, zobacz Fluentd Configuration file syntax (Składnia pliku fluentd configuration).
W poniższych sekcjach opisano ustawienia w różnych dyrektywach pliku konfiguracji, które są unikatowe dla monitorowania plików dziennika. Każdy z nich zawiera przykładowe ustawienia, które można wkleić do pliku konfiguracji i zmodyfikować pod kątem wymagań.
Kompletny przykładowy plik konfiguracji monitorowania dzienników jest dostępny do przejrzenia i oceny przed utworzeniem własnego.
Źródło
Dyrektywa Źródło definiuje źródło zbieranych danych, czyli miejsce definiowania szczegółów pliku dziennika. Fluentd pobiera każdy rekord zapisany w źródle i przesyła zdarzenie do aparatu routingu Fluentd. Określ tutaj tag w tej dyrektywie. Tag jest ciągiem, który jest używany jako wskazówki dla wewnętrznego aparatu routingu Fluentd w celu skorelowania różnych dyrektyw.
W poniższym przykładzie przedstawiono rekordy dziennika systemowego zebrane i oznaczone do przetwarzania przez program Operations Manager.
<source>
# Specifies input plugin. Tail is a fluentd input plugin - http://docs.fluentd.org/v0.12/articles/in\_tail
type tail
# Specify the log file path. Supports wild cards.
path /var/log/syslog
# Recommended so that Fluentd will record the position it last read into this file.
pos_file /home/user1/fluent-test/demo_syslog.log.pos
# Used to correlate the directives.
tag System Center Operations Manager.log.syslog
format /(?<message>.*)/
</source>
Filtr
Dyrektywa filter ma taką samą składnię jak Match, ale umożliwia bardziej złożone filtrowanie danych do przetworzenia. Zebrane zdarzenia muszą być zgodne z kryteriami wszystkich filtrów, które mają zostać dodane do danych wyjściowych.
Istnieje sześć wtyczek filtrów do monitorowania plików dziennika opisanych tutaj. Użyj co najmniej jednego z tych filtrów, aby zdefiniować zdarzenia, które mają być zbierane z pliku dziennika.
- Proste dopasowanie: filter_System Center Operations Manager_simple_match
- Dopasowanie wyłączne: Manager_excl_match operations filter_System Center
- Powtarzana korelacja: filter_System Center Operations Manager_repeated_cor
- Dopasowanie skorelowane: filter_System Center Operations Manager_cor_match
- Korelacja wyłączna: filter_System Center Operations Manager_excl_correlation
- Konwerter programu Operations Manager: filter_System Center Operations Manager_converter
Wybierz kartę wymaganą, aby skopiować kod odpowiedniej wtyczki filtru:
- Dopasowanie proste
- Dopasowanie na wyłączność
- Powtarzana korelacja
- Skorelowane dopasowanie
- Korelacja wyłączna
- Konwerter programu Operations Manager
Trwa do 20 wzorców wejściowych. Wysyła zdarzenie do programu Operations Manager za każdym razem, gdy dowolny wzorzec jest zgodny.
<filter tag>
type filter_System Center Operations Manager_simple_match
regexp1 <key> <pattern>
event_id1 <event ID>
regexp2 <key> <pattern>
event_id2 <event ID>
.
.
.
regexp20 <key> <pattern>
event_id20 <event ID>
</filter>
Match
Dyrektywa match definiuje sposób przetwarzania zdarzeń zebranych ze źródła z pasującymi tagami. Tylko zdarzenia z tagiem pasującym do wzorca są wysyłane do miejsca docelowego danych wyjściowych. Jeśli wiele wzorców znajduje się wewnątrz jednego tagu dopasowania , zdarzenia mogą być zgodne z dowolnym z wymienionych wzorców. Parametr typu określa typ wtyczki do użycia dla tych zdarzeń.
W tym przykładzie są przetwarzane zdarzenia z tagami zgodnymi z Manager.log System Center Operations. ** i System Center Operations Manager.alert (** dopasowuje do zera lub większej liczby części tagów). Określa wtyczkę programu out_System Center Operations Manager , która umożliwia zbieranie zdarzeń przez pakiet administracyjny programu Operations Manager.
<match System Center Operations Manager.log.** System Center Operations Manager.event>
# Output plugin to use
type out_System Center Operations Manager
log_level trace
num_threads 5
# Size of the buffer chunk. If the top chunk exceeds this limit or the time limit flush_interval, a new empty chunk is pushed to the top of the
queue and bottom chunk is written out.
buffer_chunk_limit 5m
flush_interval 15s
# Specifies the buffer plugin to use.
buffer_type file
# Specifies the file path for buffer. Fluentd must have write access to this directory.
buffer_path /var/opt/microsoft/omsagent/scom/state/out_System Center Operations Manager_common*.buffer
# If queue length exceeds the specified limit, events are rejected.
buffer_queue_limit 10
# Control the buffer behavior when the queue becomes full: exception, block, drop_oldest_chunk
buffer_queue_full_action drop_oldest_chunk
# Number of times Fluentd will attempt to write the chunk if it fails.
retry_limit 10
# If the bottom chunk fails to be written out, it will remain in the queue and Fluentd will retry after waiting retry_wait seconds
retry_wait 30s
# The retry wait time doubles each time until max_retry_wait.
max_retry_wait 9m
</match>
Uwaga
Aby wyłączyć uwierzytelnianie serwera na komputerach z systemem Linux korzystających z komunikacji Fluentd, dodaj parametr enable_server_auth false do wtyczki programu Operations Manager dla fluentd, na przykład następujące:
<match System Center Operations Manager.log.** System Center Operations Manager.event>
type out_System Center Operations Manager
max_retry_wait 9m
enable_server_auth false
</match>
Kopiowanie pliku konfiguracji do agenta
Plik konfiguracji Fluentd musi zostać skopiowany do folderu /etc/opt/microsoft/omsagent/scom/conf/omsagent.d na wszystkich komputerach z systemem Linux, które chcesz monitorować. Należy również dodać dyrektywę @include w głównym pliku konfiguracji, jak opisano powyżej.
Ponowne uruchamianie agenta omsagent
Możesz uruchomić następujące polecenie, aby ponownie uruchomić agenta omsagent:
/opt/microsoft/omsagent/bin/service_control restart
Sprawdzanie stanu obszaru roboczego programu System Center Operations Manager
Uruchom następujące polecenie, aby sprawdzić obszar roboczy programu System Center Operations Manager w agencie OMSAgent:
sh /opt/microsoft/omsagent/bin/omsadmin.sh -l
Uwaga
Na serwerze zarządzania z uruchomioną usługą OMED upewnij się, że zapora na porcie 8886 jest otwarta i że pośredni magazyn certyfikatów urzędów certyfikacji zawiera tylko pośrednie urzędy certyfikacji.
Dziennik zdarzeń dla zewnętrznej usługi DataSource programu System Center Operations Manager
Dziennik zdarzeń usługi System Center OMED jest tworzony tylko wtedy, gdy zdarzenie zostało pomyślnie wysłane do usługi Zewnętrzne źródło danych programu System Center Operations Manager (OMED).
Tworzenie reguł i monitorów
Pakiet administracyjny systemu Linux nie udostępnia modułów do zbierania zdarzeń z usługi FluentD, pakiet administracyjny systemu Linux jest powiązany z agentem systemu Linux. Jest to moduł biegle w agencie systemu Linux i usłudze OMED na serwerze zarządzania i bramy, który zapewnia możliwości rozszerzonego monitorowania plików dziennika.
Musisz utworzyć własny pakiet administracyjny z niestandardowymi regułami i monitorami, które używają modułu Microsoft.Linux.OMED.EventDataSource , aby zebrać zdarzenia z usługi Fluentd. Należy pamiętać, że nazwa komputera w zdarzeniu wysyłanym za pośrednictwem dziennika zdarzeń usługi System Center OMED musi być zgodna z nazwą maszyny w widoku Komputery z systemem UNIX/Linux. Jeśli nazwa komputera nie jest zgodna, nie otrzymasz żadnego alertu.
W poniższej tabeli wymieniono parametry elementu Microsoft.Linux.OMED.EventDataSource.
Parametr | Type | Opis |
---|---|---|
ComputerName | String | Wymagany. Określa nazwę komputera z systemem Linux, dla którego mają być odczytywane zdarzenia. Parametr ComputerName jest najczęściej przekazywany do modułu przy użyciu notacji $Target, chociaż można go określić jako dowolny ciąg. Ten moduł próbuje odczytać zdarzenia wygenerowane przez dany komputer z systemem Linux. |
ManagedEntityId | String | Wymagany. Określa identyfikator zarządzanej jednostki monitorowanej jednostki. Parametr ManagedEntityId jest najczęściej przekazywany do modułu przy użyciu $Target\Id$. |
EventNumber | Integer | Opcjonalny. Wskazuje numer zdarzenia do pobrania. Jeśli ta opcja zostanie pominięta, moduł zwróci wszystkie zdarzenia wygenerowane dla tego komputera i zarządzanej jednostki |
Następne kroki
Aby utworzyć widok niestandardowy w celu przejrzenia danych monitorowania z niestandardowego pakietu administracyjnego pliku dziennika, zobacz Używanie widoków w programie Operations Manager.
Aby dowiedzieć się, jak badać problemy zidentyfikowane przez niestandardowy pakiet administracyjny pliku dziennika, zobacz Wyświetlanie aktywnych alertów i szczegółów.