Поделиться через


Мониторинг файлов журнала Linux в System Center Operations Manager

Примечание.

System Center Operations Manager не поддерживает мониторинг файлов журнала на основе fluentD после выхода на пенсию агента OMS, запланированного на август 2024 года.

System Center Operations Manager теперь предоставляет расширенные возможности мониторинга файлов журналов для серверов Linux с помощью последней версии агента, использующего Fluentd. Это обновление обеспечивает следующие улучшения по сравнению с предыдущим мониторингом файлов журнала:

  • Символы подстановочной карточки в имени файла журнала и пути.
  • Новые шаблоны совпадений для настраиваемого поиска по журналам, таких как простое совпадение, монопольное сопоставление, сопоставленное совпадение, повторная корреляция и монопольная корреляция.
  • Поддержка универсальных подключаемых модулей Fluentd, опубликованных сообществом Fluentd.

Базовая операция

Базовая операция мониторинга файлов журнала в Linux включает следующие действия.

  1. Запись записывается в журнал агента Linux.
  2. Fluentd собирает запись и создает событие для сопоставления шаблонов.
  3. Событие отправляется в службу OMED на сервере управления и записывается в журнал событий службы System Center OMED на сервере управления. (The Журнал событий службы System Center OMED создается только в том случае, если событие успешно отправлено агентом Fluentd)
  4. Правила и мониторы в пользовательском пакете управления собирают события и создают оповещения в Operations Manager.

Общие сведения о конфигурации

Для мониторинга файлов журнала требуются следующие действия. Подробные сведения приведены в следующих разделах:

  1. Импортируйте последний пакет управления System Center Operations Manager 2019 Linux.
  2. Установите последнюю версию агента Linux на каждом компьютере Linux для отслеживания.
  3. Установите последнюю версию OMSAgent на каждом компьютере Linux для отслеживания.
  4. Создайте файл конфигурации Fluentd для сбора журналов.
  5. Скопируйте файл конфигурации в агенты Linux.
  6. Создайте правила и мониторы с помощью примера пакета управления для сбора событий из журнала и создания оповещений.
  1. Импортируйте последний пакет управления System Center Operations Manager 2022 Linux.
  2. Установите последнюю версию агента Linux на каждом компьютере Linux для отслеживания.
  3. Установите последнюю версию OMSAgent на каждом компьютере Linux для отслеживания.
  4. Создайте файл конфигурации Fluentd для сбора журналов.
  5. Скопируйте файл конфигурации в агенты Linux.
  6. Создайте правила и мониторы с помощью примера пакета управления для сбора событий из журнала и создания оповещений.

Установка пакета управления мониторингом журналов

Установите пакет управления Microsoft.Linux.Log.Monitoring, чтобы включить мониторинг файлов журнала Linux.

Примечание.

Если у вас настроен агент OMS и вы пытаетесь удалить агент UNIX и LINUX из консоли, компонент OMS не будет удален из агента.

Настройка мониторинга файлов журнала Linux

Чтобы настроить мониторинг файлов журнала Linux, выполните следующие действия.

  1. Импортируйте последний пакет управления System Center Operations Manager 2019 Linux с помощью стандартного процесса установки пакета управления.

  2. Установите новый агент Linux на серверах Linux вручную или с помощью мастера обнаружения(/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).

  3. Установите последнюю версию OMSAgent на каждом компьютере Linux, который требуется отслеживать. Используйте следующие команды:

    # 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
    

    Выполните следующие действия в агенте Linux:

  1. Импортируйте последний пакет управления System Center Operations Manager 2022 Linux с помощью стандартного процесса установки пакета управления.

  2. Установите новый агент Linux на серверах Linux вручную или с помощью мастера обнаружения(/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console).

  3. Установите последнюю версию OMSAgent на каждом компьютере Linux, который требуется отслеживать. Используйте следующие команды:

    # 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
    

    Выполните следующие действия в агенте Linux:

  1. Создайте папки в следующих путях с помощью приведенных ниже команд:

    # 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. Задайте для каждой из указанных выше папок следующие значения 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
    

    Снимок экрана: мониторинг файла журнала.

  3. Создайте файлы omsagent и 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. Задайте для каждого из указанных выше файлов 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. Измените файл /etc/opt/microsoft/omsagent/scom/conf/omsadmin.confи добавьте следующие сведения после изменения выделенной информации.

    WORKSPACE_ID=scom
    System Center Operations Manager_ENDPOINT=https://<mark>\<MSFQDN\></mark>:8886
    MONITORING_ID={274F8D7B-DBCA-8FC3-1451-8DCD55092156}
    
  6. Перезапустите OMSAgent:

    /opt/microsoft/omsagent/bin/service_control restart
    
  7. Проверьте состояние в журнале omsagent:

    tail -100 /var/opt/microsoft/omsagent/scom/log/omsagent.log
    

Включение службы OMED

Включите службу OMED на каждом сервере управления в пуле ресурсов, управляя агентами Linux.

Служба OMED собирает события из Fluentd и преобразует их в события Operations Manager. Вы импортируете пользовательский пакет управления, который может создавать оповещения на основе событий, полученных от серверов Linux.

Вы можете включить службу OMED из консоли управления или вручную на сервере управления или на сервере шлюза.

  1. В консоли управления перейдите к состоянию>серверов управления серверами>управления Operations Manager.>
  2. Выберите сервер управления в состоянии "Серверы управления".
  3. В списке "Задачи" выберите служба работоспособности Задачи>включить System Center OMED Server.

Добавление правила брандмауэра OMED

Чтобы включить правило брандмауэра OMED, можно добавить порт (TCP/8886) автоматически с помощью PowerShell или вручную.

Выполните следующие действия, чтобы автоматически добавить правило с помощью PowerShell:

Следующая команда позволяет автоматически добавить правило брандмауэра:

Set-NetFirewallRule -DisplayName "System Center Operations Manager External DataSource Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8886

Назначение сертификата клиента для OMSAgent

При назначении сертификата клиента для OMSAgent есть два варианта.

  1. Ссылка на подписанный сертификат из агента OMI.
  2. Создайте сертификат клиента вручную для агента OMS.

Выберите необходимую вкладку, чтобы связаться с подписанным сертификатом из агента OMI или создать сертификат клиента вручную из агента OMS:

  1. Задайте для владельца и omi.pem omikey.pem файла 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. Выполните следующую команду на компьютере Linux, чтобы задать сертификат клиента агента OMS на сертификат OMI (сертификат агента Linux 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
    

Создание файла конфигурации Fluentd

Вы настраиваете операцию Fluentd с помощью файла конфигурации. Чтобы использовать мониторинг журналов, необходимо создать файл конфигурации. Файл конфигурации содержит такие сведения, как имя файла исходного журнала, путь и фильтры для определения собираемых данных.

Главный файл конфигурации Fluentd omsagent.conf находится в /etc/opt/microsoft/omsagent/scom/conf/. Вы можете добавить конфигурацию мониторинга файлов журнала непосредственно в этот файл, но следует создать отдельный файл конфигурации, чтобы лучше управлять различными параметрами. Затем вы используете директиву @include в главном файле, чтобы включить пользовательский файл.

Например, если вы создали logmonitoring.conf, /etc/opt/microsoft/omsagent/scom/conf/omsagent.dвы добавите одну из следующих строк в файл omsagent.d:

# Include all configuration files
@include omsagent.d/*.conf

or

# Include single configuration file
@include omsagent.d/logmonitoring.conf

Дополнительные сведения о файлах конфигурации Fluentd см . в синтаксисе файла конфигурации Fluentd.

В следующих разделах описаны параметры в различных директивах файла конфигурации, уникальных для мониторинга файлов журнала. Каждый содержит примеры параметров, которые можно вставить в файл конфигурации и изменить для ваших требований.

Полный пример файла конфигурации для мониторинга журналов доступен для просмотра и оценки перед созданием собственного.

Исходный код

Директива Source определяет источник собираемых данных, где вы определяете сведения о файле журнала. Fluentd выбирает каждую запись, записанную в источник, и отправляет событие для него в подсистему маршрутизации Fluentd. Укажите тег в этой директиве. Тег — это строка, используемая в качестве направлений для внутренней подсистемы маршрутизации Fluentd для сопоставления различных директив.

В следующем примере показаны записи системного журнала, собранные и помеченные для обработки 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>

Фильтр

Директива фильтра имеет тот же синтаксис, что и Match , но позволяет более сложно фильтровать данные для обработки. Собранные события должны соответствовать критериям всех фильтров, которые необходимо добавить в выходные данные.

Здесь описано шесть подключаемых модулей фильтра для мониторинга файлов журнала. Используйте один или несколько этих фильтров, чтобы определить события, которые требуется собрать из файла журнала.

  • Простое совпадение: filter_System Центр операций Manager_simple_match
  • Монопольный матч: filter_System Operations Manager_excl_match
  • Повторная корреляция: filter_System Центр операций Manager_repeated_cor
  • Сопоставленное соответствие: filter_System Центр операций Manager_cor_match
  • Монопольная корреляция: filter_System Operations Manager_excl_correlation
  • Конвертер Operations Manager: filter_System Center Operations Manager_converter

Выберите необходимую вкладку, чтобы скопировать код для соответствующего подключаемого модуля фильтра:

Занимает до 20 шаблонов входных данных. Отправляет событие в Operations Manager всякий раз при сопоставлении любого шаблона.

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

Директива соответствия определяет, как обрабатывать события, собранные из источника с соответствующими тегами. Только события с тегом, соответствующим шаблону, отправляются в целевое место вывода. Если несколько шаблонов перечислены внутри одного тега сопоставления , события могут соответствовать любому из перечисленных шаблонов. Параметр type обозначает тип подключаемого модуля для этих событий.

В этом примере события обрабатываются с тегами, соответствующими System Center Operations Manager.log. ** и System Center Operations Manager.alert (** соответствует нулю или нескольким частям тегов). Он задает подключаемый модуль out_System Center Operations Manager , который позволяет собирать события пакетом управления 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>

Примечание.

Чтобы отключить аутентификацию сервера на компьютерах Linux, которые обмениваются данными с помощью Fluentd, добавьте параметр enable_server_auth false в подключаемый модуль Operations Manager для Fluentd следующим образом:

<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>

Копирование файла конфигурации в агент

Файл конфигурации fluentd следует сохранить по адресу /etc/opt/microsoft/omsagent/scom/conf/omsagent.d на всех компьютерах Linux, для которых применяется мониторинг. Также необходимо добавить директиву в главный @include файл конфигурации, как описано выше.

Перезапуск omsagent

Чтобы перезапустить omsagent, выполните следующую команду:

/opt/microsoft/omsagent/bin/service_control restart

Проверка состояния рабочей области System Center Operations Manager

Выполните следующую команду, чтобы проверить рабочую область System Center Operations Manager в OMSAgent:

sh /opt/microsoft/omsagent/bin/omsadmin.sh -l

Примечание.

На сервере управления под управлением службы OMED убедитесь, что брандмауэр на порту 8886 открыт, а хранилище сертификатов промежуточных центров сертификации содержит только промежуточные центры сертификации.

Журнал событий для службы внешнего источника данных System Center Operations Manager

Журнал событий службы System Center OMED создается только в том случае, если событие успешно отправлено в службу Внешних источников данных System Center Operations Manager (OMED).

Создание правил и мониторов

Пакет управления Linux не предоставляет модули для сбора событий из FluentD, пакет управления Linux упаковывается с агентом Linux. Это модуль fluentd в агенте Linux и службе OMED на сервере управления и шлюза, который предоставляет возможности для расширенного мониторинга файлов журнала.

Вам нужно создать собственный пакет управления с настраиваемыми правилами и мониторами, которые используют модуль Microsoft.Linux.OMED.EventDataSource для сбора событий из Fluentd. Помните, что имя компьютера в событии, отправленное через журнал событий службы System Center OMED, должно соответствовать имени компьютера в представлении компьютеров UNIX/Linux. Если имя компьютера не соответствует, вы не получите никаких оповещений.

В следующей таблице перечислены параметры Microsoft.Linux.OMED.EventDataSource.

Параметр Тип Описание
ComputerName Строка Обязательный. Указывает имя компьютера Linux, для которого будут считываться события. Параметр ComputerName чаще всего передается модулю с помощью нотации $Target, хотя его можно указать как любую строку. Этот модуль пытается считывать события, созданные заданным компьютером Linux.
ManagedEntityId Строка Обязательный. Указывает идентификатор управляемой сущности отслеживаемой сущности. Параметр ManagedEntityId чаще всего передается модулю с помощью $Target\Id$.
EventNumber Целое Необязательно. Указывает номер события, который требуется извлечь. Если этот параметр опущен, модуль возвращает все события, созданные для этого компьютера и управляемой сущности.

Следующие шаги