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


Сбор событий системного журнала из клиента виртуальной машины с помощью Azure Monitor

Системный журнал — это протокол ведения журнала событий, который является общим для Linux. Вы можете использовать демон Syslog, встроенный в устройства и системы Linux, для сбора локальных событий заданных вами типов. Приложения отправляют сообщения, которые сохраняются на локальном компьютере или доставляются сборщику Syslog. Собирайте события системного журнала с виртуальных машин, используя правило сбора данных (DCR) с источником данных Linux Syslog.

Подсказка

Чтобы собирать данные с устройств, которые не разрешают локальную установку агента Azure Monitor, настройте выделенный средство пересылки журналов под управлением Linux, как описано в разделе "Пересылка данных системного журнала" в рабочую область Log Analytics с помощью Microsoft Sentinel с помощью агента Azure Monitor.

Сведения о создании DCR приведены в статье "Сбор данных из клиента виртуальной машины" с помощью Azure Monitor. В этой статье приведены дополнительные сведения о типе источника данных системного журнала Linux.

Замечание

Чтобы работать с определением DCR напрямую или развертывать с другими методами, такими как шаблоны ARM, см. примеры правил сбора данных (DCR) в Azure Monitor.

Настройка источника данных системного журнала

Создайте DCR с помощью процесса сбора данных из клиента виртуальной машины с помощью Azure Monitor. На вкладке "Сбор и доставка " DCR выберите системный журнал Linux в раскрывающемся списке типа источника данных .

Выберите минимальный уровень журнала для каждого объекта или NONE , чтобы не собирать события для этого объекта. Чтобы настроить несколько объектов одновременно, установите флажок и выберите уровень журнала в разделе "Задать минимальный уровень журнала" для выбранных объектов.

Снимок экрана: страница для выбора типа источника данных и минимального уровня журнала.

Все логи с выбранным уровнем важности и выше собираются для объекта. Поддерживаемые уровни серьезности и их относительная серьезность приведены следующим образом:

  1. Отладка
  2. Информация
  3. Примечание.
  4. Предупреждение
  5. Ошибка
  6. Критически важно
  7. Предупреждение
  8. Аварийная ситуация

Добавить пункты назначения

Данные системного журнала можно отправлять только в рабочую область Log Analytics, где она хранится в таблице Системного журнала . Добавьте назначение типа журналы Azure Monitor и выберите рабочую область Log Analytics. Хотя вы можете добавить несколько рабочих областей, помните, что это приведет к отправке повторяющихся данных на каждый из них, что приведет к дополнительным затратам.

Снимок экрана, показывающий настройку назначения данных в журналах Azure Monitor для правила сбора данных.

Проверка сбора данных

Чтобы убедиться, что данные собираются, проверьте наличие записей в таблице Syslog . На виртуальной машине или в рабочей области Log Analytics на портале Azure выберите журналы и нажмите кнопку "Таблицы ". В категории "Виртуальные машины" нажмите кнопку "Выполнить рядом с системным журналом".

Снимок экрана: записи, возвращенные из таблицы Syslog.

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

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

Замечание

Azure Monitor Linux Agent версии 1.15.2 и более поздних версий поддерживают форматы syslog RFC, включая Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee и Common Event Format (CEF).

Rsyslog

Во многих дистрибутивах Linux управляющая программа rsyslogd отвечает за использование, хранение и маршрутизацию сообщений журнала, отправленных с помощью API системного журнала Linux. Агент Azure Monitor использует выходной модуль TCP-пересылки (omfwd) в rsyslog для пересылки сообщений журнала.

Установка агента Azure Monitor включает файлы конфигурации по умолчанию, расположенные в /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/. При добавлении системного журнала в DCR эта конфигурация устанавливается в системный каталог etc/rsyslog.d, и rsyslog автоматически перезапускается, чтобы изменения вступили в силу.

Замечание

В системах на основе rsyslog агент Linux Azure Monitor добавляет правила пересылки в набор правил по умолчанию, определенный в конфигурации rsyslog. Если используются несколько наборов правил, входные данные, привязанные к неосновным наборам правил, не перенаправляются в агент Azure Monitor. Дополнительные сведения о нескольких наборах правил в rsyslog см. в официальной документации.

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

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

Следующая конфигурация используется, если вы используете SELinux и решите использовать сокеты 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

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

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

syslog-ng

Установка агента Azure Monitor включает файлы конфигурации по умолчанию, расположенные в /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. При добавлении системного журнала в DCR эта конфигурация устанавливается в /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf системном каталоге и syslog-ng автоматически перезапускается, чтобы изменения вступили в силу.

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

$ 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);
};

Следующая конфигурация используется, если вы используете SELinux и решите использовать сокеты 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);
}; 

Замечание

Azure Monitor поддерживает коллекцию сообщений, отправленных rsyslog или syslog-ng, где rsyslog является управляющей программой по умолчанию. Программа syslog по умолчанию в версии 5 Red Hat Enterprise Linux и Oracle Linux (sysklog) не поддерживается для сбора событий Системного журнала. Чтобы собирать данные системного журнала из этой версии этих дистрибутивов, необходимо установить и настроить управляющая программа rsyslog для замены sysklog.

Если вы измените конфигурацию Syslog, необходимо перезапустить демон Syslog, чтобы изменения вступили в силу.

Поддерживаемые объекты

Сборщик Syslog поддерживает следующие возможности:

Индекс Pri Имя Pri
0 Отсутствует
1 Керн
2 Пользователь
3 почта
4 демон
4 авторизация
5 системный лог
6 lpr
7 новости
8 uucp
9 FTP
10 ntp
11 аудит
12 предупреждение
13 (тринадцать) знак
14 local0
15 локальный1
16 local2
17 локальный3
18 local4
19 local5
20 local6
двадцать один local7

Дальнейшие действия