Сбор источников данных системного журнала с помощью агента Log Analytics
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который является состоянием "Конец жизни" (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
Системный журнал — это протокол ведения журнала событий, который является общим для Linux. Приложения отправляют сообщения, которые могут храниться на локальном компьютере или доставлены сборщику Системного журнала. При установке агента Log Analytics для Linux он настраивает локальную управляющую программу Syslog для пересылки сообщений в агент. Затем агент отправляет сообщения в Azure Monitor, где создается соответствующая запись.
Внимание
Устаревший агент Log Analytics устарел с 31 августа 2024 г. Корпорация Майкрософт больше не будет предоставлять поддержку агента Log Analytics. Если вы используете агент Log Analytics для приема данных в Azure Monitor, перейдите к агенту Azure Monitor.
Примечание.
Azure Monitor поддерживает коллекцию сообщений, отправленных rsyslog или syslog-ng, где rsyslog является управляющей программой по умолчанию. Программа syslog по умолчанию в версии 5 Red Hat Enterprise Linux, CentOS и Oracle Linux (sysklog) не поддерживается для сбора событий Системного журнала. Чтобы собирать данные системного журнала из этой версии этих дистрибутивов, необходимо установить и настроить управляющая программа rsyslog для замены sysklog.
Сборщик syslog поддерживает следующие объекты:
- kern
- Пользователь
- daemon
- auth
- системный журнал
- lpr
- news
- uucp
- Cron
- authpriv
- ftp
- local0-local7
Для любого другого средства настройте источник данных пользовательских журналов в Azure Monitor.
Настройка Syslog
Агент Log Analytics для Linux будет собирать события только с тех устройств и только с тем уровнем серьезности, которые заданы в его конфигурации. Системный журнал можно настроить на портале Azure или с помощью управления файлами конфигурации на агентах Linux.
Настройка системного журнала на портале Azure
Настройте данные системного журнала в меню конфигурации агентов для рабочей области Log Analytics. Эта конфигурация передается в файл конфигурации на каждом агенте Linux.
Вы можете добавить новое средство, нажав кнопку "Добавить объект". Для каждого устройства будут собираться сообщения только с выбранным уровнем серьезности. Выберите серьезность для конкретного объекта, который требуется собрать. Вы не можете предоставить другие критерии для фильтрации сообщений.
По умолчанию все изменения конфигурации автоматически отправляются во все агенты. Если вы хотите вручную настроить системный журнал на каждом агенте Linux, снимите флажок Применить приведенную ниже конфигурацию к моим компьютерам .
Настройка системного журнала на агенте Linux
Когда агент Log Analytics установлен на клиенте Linux, он устанавливает файл конфигурации системного журнала по умолчанию, определяющий объект и серьезность собранных сообщений. Можно изменить этот файл, чтобы внести изменения в конфигурацию. Файл конфигурации отличается в зависимости от того, какую управляющая программу системного журнала установил клиент.
Примечание.
При изменении конфигурации системного журнала необходимо перезапустить управляющая программа Системного журнала, чтобы изменения вступили в силу.
rsyslog
Файл конфигурации для rsyslog находится по адресу /etc/rsyslog.d/95-omsagent.conf
. Его содержимое по умолчанию отображается в следующем примере. В этом примере собираются сообщения системного журнала, отправленные из локального агента для всех объектов с уровнем предупреждения или выше.
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
Устройство можно удалить, выполнив удаление соответствующего раздела в файле конфигурации. Можно ограничить уровни серьезности для сообщений, собираемых с конкретного устройства, изменив соответствующую запись устройства. Например, чтобы ограничить объект пользователя сообщениями с серьезностью ошибки или выше, можно изменить эту строку файла конфигурации в следующем примере:
user.error @127.0.0.1:25224
syslog-ng
Файл конфигурации для syslog-ng расположен по адресу /etc/syslog-ng/syslog-ng.conf
. Его содержимое по умолчанию отображается в этом примере. В этом примере собираются сообщения системного журнала, отправленные из локального агента для всех объектов и всех серьезностей.
#
# 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); };
Устройство можно удалить, выполнив удаление соответствующего раздела в файле конфигурации. Можно ограничить уровни серьезности для сообщений, собираемых с конкретного устройства, удалив их из его списка. Например, чтобы ограничить пользовательское средство оповещением только критически важных сообщений, измените этот раздел файла конфигурации, как показано в следующем примере:
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Сбор данных из других портов Системного журнала
Агент Log Analytics прослушивает сообщения Syslog на локальном клиенте через порт 25224. При установке агента применяется конфигурация системного журнала по умолчанию и находится в следующем расположении:
- Rsyslog:
/etc/rsyslog.d/95-omsagent.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Номер порта можно изменить, создав два файла конфигурации: FluentD и rsyslog-or-syslog-ng (в зависимости от установленной управляющей программы системного журнала).
Файл конфигурации FluentD должен быть новым файлом, расположенным
/etc/opt/microsoft/omsagent/conf/omsagent.d
и заменять значение вport
записи пользовательским номером порта.<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog
Для rsyslog необходимо создать файл конфигурации, расположенный
/etc/rsyslog.d/
в и заменить значение%SYSLOG_PORT%
пользовательским номером порта.Примечание.
Если изменить это значение в файле конфигурации
95-omsagent.conf
, он перезаписывается, когда агент применяет конфигурацию по умолчанию.# 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%
Конфигурация syslog-ng должна быть изменена путем копирования приведенной ниже конфигурации и добавления настраиваемых параметров в конец файла конфигурации, расположенного
syslog-ng.conf
в/etc/syslog-ng/
. Не используйте метку%WORKSPACE_ID%_oms
по умолчанию или%WORKSPACE_ID_OMS
. Определите пользовательскую метку, чтобы отличить изменения.Примечание.
При изменении значений по умолчанию в файле конфигурации они будут перезаписаны при применении конфигурации по умолчанию.
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); };
После завершения изменений перезапустите системный журнал и службу агента Log Analytics, чтобы убедиться, что изменения конфигурации вступили в силу.
Свойства записей системного журнала
Записи системного журнала имеют тип системного журнала и имеют свойства, показанные в следующей таблице.
Свойство | Description |
---|---|
Компьютер | Компьютер, с которого было получено событие. |
Помещение | Определяет часть системы, которая создала сообщение. |
HostIP | IP-адрес системы, отправившей сообщение. |
HostName | Имя системы, отправившей сообщение. |
SeverityLevel | Уровень серьезности события. |
SyslogMessage | Текст сообщения. |
ProcessID | Идентификатор процесса, создавшего сообщение. |
EventTime | Дата и время создания события. |
Запросы к журналу для получения записей системного журнала
В следующей таблице представлены различные примеры запросов к журналу, извлекающих записи из системного журнала.
Query | Description |
---|---|
Системный журнал | Все системные журналы |
Syslog | where SeverityLevel == "error" | Все записи системного журнала с серьезностью ошибки |
Syslog | summarize AggregatedValue = count() by Computer | Количество записей системного журнала по компьютеру |
Syslog | summarize AggregatedValue = count() by Facility | Количество записей системного журнала по объекту |
Следующие шаги
- Узнайте больше о запросах журнала, которые можно применять для анализа данных, собираемых из источников данных и решений.
- Используйте настраиваемые поля для анализа данных из записей Системного журнала в отдельные поля.
- Настройте агенты Linux для сбора других типов данных.