Udostępnij za pośrednictwem


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:

  1. Rekord jest zapisywany w dzienniku agenta systemu Linux.
  2. Fluentd zbiera rekord i tworzy zdarzenie na dopasowaniu wzorca.
  3. 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)
  4. 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:

  1. Zaimportuj najnowszy pakiet administracyjny systemu Linux programu System Center Operations Manager 2019.
  2. Zainstaluj najnowszą wersję agenta systemu Linux na każdym komputerze z systemem Linux, który ma być monitorowany.
  3. Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który ma być monitorowany.
  4. Utwórz plik konfiguracji fluentd w celu zbierania dzienników.
  5. Skopiuj plik konfiguracji do agentów systemu Linux.
  6. Tworzenie reguł i monitorów przy użyciu przykładowego pakietu administracyjnego w celu zbierania zdarzeń z dziennika i tworzenia alertów.
  1. Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2022 Linux.
  2. Zainstaluj najnowszą wersję agenta systemu Linux na każdym komputerze z systemem Linux, który ma być monitorowany.
  3. Zainstaluj najnowszą OMSAgent na każdym komputerze z systemem Linux, który ma być monitorowany.
  4. Utwórz plik konfiguracji fluentd w celu zbierania dzienników.
  5. Skopiuj plik konfiguracji do agentów systemu Linux.
  6. 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:

  1. Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2019 Linux przy użyciu standardowego procesu instalowania pakietu administracyjnego.

  2. 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).

  3. 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:

  1. Zaimportuj najnowszy pakiet administracyjny programu System Center Operations Manager 2022 Linux przy użyciu standardowego procesu instalowania pakietu administracyjnego.

  2. 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).

  3. 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:

  1. 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
    
  2. 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
    

    Zrzut ekranu przedstawiający monitorowanie pliku dziennika.

  3. 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
    
  4. 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
    
  5. Edytuj plik /etc/opt/microsoft/omsagent/scom/conf/omsadmin.confi 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}
    
  6. Uruchom ponownie agenta OMSAgent:

    /opt/microsoft/omsagent/bin/service_control restart
    
  7. 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.

  1. W konsoli Operacje przejdź do pozycji Monitorowanie>stanu serwerów zarządzania serwera>zarządzania programu Operations Manager.>
  2. Wybierz serwer zarządzania w stanie Serwery zarządzania.
  3. 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.

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.

  1. Połącz się z podpisanym certyfikatem z agenta OMI.
  2. 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:

  1. Ustaw własność pliku omi.pem i omikey.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
    
  2. 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.dpliku , 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:

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