Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эту статью для диагностики и устранения проблем, когда события системного журнала на виртуальной машине Linux не собираются или пересылаются в рабочую область Log Analytics агентом Azure Monitor.
Во время установки агент Azure Monitor устанавливает конфигурацию вывода для демона syslog системы. Эта конфигурация определяет, как перенаправлять события из управляющей программы в агент Azure Monitor. Его можно найти по адресу:
-
/etc/rsyslog.d/10-azuremonitoragent-omfwd.confдля rsyslog (большинство дистрибутивов Linux) -
/etc/syslog-ng/conf.d/azuremonitoragent-tcp.confдля syslog-ng
агент Azure Monitor прослушивает tcp-порт (зарегистрированный в /etc/opt/microsoft/azuremonitoragent/config-cache/syslog.port) для получения событий от rsyslog или syslog-ng. Он фильтрует эти события на основе категории или уровня серьезности, определенных в правиле сбора данных (DCR), расположенном в /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/. Агент удаляет события, которые не соответствуют конфигурации DCR.
Примечание.
До версии 1.28 агент Azure Monitor использовал сокет домена Unix вместо TCP-порта для получения событий из rsyslog. Выходной omfwd модуль в rsyslog предусматривает механизмы спулинга и повторных попыток для повышения надежности.
агент Azure Monitor анализирует входящие сообщения системного журнала в соответствии с
Примечание.
- Если агент мониторинга Azure недоступен или возникает задержка, демон syslog буферизирует события с помощью внутренних очередей.
- Если агент Azure Monitor не может отправлять события, полученные от rsyslog или syslog-ng, он помещает их в
/var/opt/microsoft/azuremonitoragent/eventsс помощью локального механизма сохраняемости.
Диагностика сбоев отправки системного журнала
Если агент Azure Monitor успешно получает события системного журнала из rsyslog или syslog-ng, но данные не отображаются в рабочей области Log Analytics, наиболее распространенные причины связаны с подключением, конфигурацией или проверкой подлинности — не использование локального диска.
Наиболее вероятные причины:
Правило сбора данных (DCR) не связано с компьютером
Если вы не связываете DCR (или если связываете неправильный DCR), агент Azure Monitor не знает, куда отправлять данные.DCR не включает источник данных системного журнала или не соответствует объекту или серьезности.
В этом случае агент Azure Monitor удаляет события после получения.Компьютер не может достичь конечных точек приема Azure Monitor
Это условие обычно вызвано следующими причинами:- Ограничения исходящего брандмауэра
- Неправильная настройка прокси
- Отсутствуют теги служб или необходимые конечные точки в ограниченных сетях
Конфигурация TLS или прокси-сервера предотвращает исходящие подключения
Если прокси-сервер является обязательным и не настроен для агента Azure Monitor, попытка отправки завершается ошибкой.Управляемое удостоверение или учетные данные Azure, используемые агентом, не могут пройти проверку подлинности
Эта ситуация может возникнуть, если расширение агента не настроено правильно.
Сведения об устранении неполадок при отправке и подключении см. в следующих рекомендациях.
- Устранение неполадок агента Azure Monitor на виртуальных машинах и масштабируемых наборах Linux
- Как использовать средство устранения неполадок агента Linux Azure Monitor
- Конечные точки сети для агента Azure Monitor
Если агент Azure Monitor получает события системного журнала, но не может передать их, обычно он регистрирует ошибки, связанные с подключением или проверкой подлинности в:
/var/opt/microsoft/azuremonitoragent/log/mdsd.err
Данные Rsyslog не отправляются из-за полного места на диске
Симптом
Данные системного журнала не загружаются: при просмотре журналов ошибок /var/opt/microsoft/azuremonitoragent/log/mdsd.err, вы увидите записи о сбой при добавлении элемента в локальное постоянное хранилище ... На устройстве не осталось свободного места ..., схожие со следующим фрагментом:
2021-11-23T18:15:10.9712760Z: Error while inserting item to Local persistent store syslog.error: IO error: No space left on device: While appending to file: /var/opt/microsoft/azuremonitoragent/events/syslog.error/000555.log: No space left on device
Причина
Azure Monitor агент для Linux буферизирует события до /var/opt/microsoft/azuremonitoragent/events перед приемом. При установке агента по умолчанию Azure Monitor для Linux этот каталог занимает около 650 МБ места на диске бездействия. Размер диска увеличивается при постоянной нагрузке ведения журнала. Она очищается примерно каждые 60 секунд и уменьшается до около 650 МБ при возврате нагрузки к простою.
Подтверждение проблемы с полным диском
Команда df показывает, что почти нет свободного места на /dev/sda1, как показано в следующих результатах выполнения. Необходимо проверить элемент строки, который коррелирует с каталогом журнала (например, /var/log, /varили /).
df -h
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 720K 13G 1% /run
/dev/sda1 29G 29G 481M 99% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda15 105M 4.4M 100M 5% /boot/efi
/dev/sdb1 251G 61M 239G 1% /mnt
tmpfs 13G 0 13G 0% /run/user/1000
С помощью du команды можно проверить диск, чтобы определить, какие файлы вызывают заполнение диска. Например:
cd /var/log
du -h syslog*
6.7G syslog
18G syslog.1
В некоторых случаях du может не сообщать о любых больших файлах или каталогах. Возможно, файл, помеченный как удаленный, занимает место. Эта ситуация может произойти, когда один процесс пытается удалить файл, но другой процесс по-прежнему открыт.
Чтобы проверить наличие таких файлов, можно использовать lsof команду. В следующем примере вы увидите, что /var/log/syslog помечено как удаленный, но оно занимает 3,6 ГБ дискового пространства. Он не удаляется, так как процесс с PID 1484 все еще держит файл открытым.
sudo lsof +L1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NODE NAME
none 849 root txt REG 0,1 8632 0 16764 / (deleted)
rsyslogd 1484 syslog 14w REG 8,1 3601566564 0 35280 /var/log/syslog (deleted)
Rsyslog по умолчанию регистрирует все объекты в /var/log/
В некоторых популярных дистрибутивах, таких как Ubuntu 18.04 LTS, rsyslog поставляется с файлом конфигурации по умолчанию (/etc/rsyslog.d/50-default.conf). Эта конфигурация регистрирует события практически всех служб на диск /var/log/syslog. События Syslog из семейства RedHat хранятся в /var/log/, но в другом файле: /var/log/messages.
агент Azure Monitor не зависит от событий системного журнала, зарегистрированных в /var/log/. Вместо этого служба rsyslog настраивает пересылку событий через TCP-порт напрямую в процесс службы azuremonitoragent (mdsd).
Удаление высокообъемных функций из конфигурации rsyslog по умолчанию
Если вы отправляете большой объем журналов через rsyslog и система настроена для регистрации событий для этих объектов, попробуйте изменить конфигурацию rsyslog по умолчанию, чтобы избежать ведения журнала и хранения их в /var/log/. События этого объекта по-прежнему перенаправляются в агент Azure Monitor, так как rsyslog использует другую конфигурацию для пересылки, размещенной в /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf.
Чтобы удалить записи о
local4событиях в/var/log/syslogили/var/log/messages, измените эту строку в/etc/rsyslog.d/50-default.confв этом фрагменте кода:*.*;auth,authpriv.none -/var/log/syslogВ этот фрагмент кода (добавьте
local4.none;):*.*;local4.none;auth,authpriv.none -/var/log/syslogsudo systemctl restart rsyslog
Дальнейшие действия
Если действия, описанные в этой статье, не устраняют проблему, ознакомьтесь со следующими статьями: