syslog-ng не распознает назначение unix-dgram

Вопрос или проблема

информация о версии:

rful011@secmgrprd01:/usr/local/etc/syslog-ng/conf.d$ sudo /usr/local/sbin/syslog-ng --version
syslog-ng 3 (3.35.1)
Конфигурационная версия: 3.35
Версия установщика: 3.35.1
Ревизия: 
Дата компиляции: Feb 14 2022 15:57:02
Каталог модулей: /usr/local/lib/syslog-ng
Путь к модулям: /usr/local/lib/syslog-ng
Путь для включения: /usr/local/share/syslog-ng/include
Ошибка при открытии плагина модуля; модуль="redis", ошибка="libhiredis.so.0.13: невозможно открыть файл общего объекта: Нет такого файла или каталога"
Доступные модули: basicfuncs,cef,confgen,cryptofuncs,csvparser,dbparser,disk-buffer,examples,geoip2-plugin,graphite,hook-commands,http,json-plugin,kvformat,linux-kmsg-format,map-value-pairs,mod-python,pseudofile,regexp-parser,sdjournal,secure-logging,stardate,syslogformat,system-source,tags-parser,tfgetent,timestamp,xml,add-contextual-data,afuser,afstomp,azure-auth-header,affile,afprog,afsocket,appmodel
Включить отладку: off
Включить GProf: off
Включить Memtrace: off
Включить IPv6: on
Включить Spoof-Source: on
Включить TCP-Wrapper: off
Включить Linux-Caps: off
Включить Systemd: on

при запуске syslog-ng я получаю:

rful011@secmgrprd01:/usr/local/etc/syslog-ng/conf.d$ sudo /usr/local/sbin/syslog-ng -v
Ошибка при разборе строки назначения, плагин назначения   unix-dgram не найден в /usr/local/etc/syslog-ng.conf:23:1-23:17:
21      
22      destination d_azure_mdsd {
23---->   unix-dgram("/run/azuremonitoragent/default_syslog.socket"
23----> ^^^^^^^^^^^^^^^^
24          flags(no_multi_line)
25        );
26      };
27      

Я использую эту установку syslog-ng уже пару лет, она была установлена через apt:

rful011@secmgrprd01:/usr/local/etc/syslog-ng/conf.d$ apt show syslog-ng
Пакет: syslog-ng
Версия: 3.35.1
Состояние: установлен хорошо

Все, что я читал, предполагает, что unix-dgram стандартен и включен во все версии syslog-ng.

Что мы делаем не так?

Ответ или решение

Для решения проблемы с определением пункта назначения unix-dgram в syslog-ng необходимо тщательно изучить конфигурацию и окружение данной установки. На основе предоставленных данных, мы можем начать с анализа и предложить возможные пути решения.

ТЕОРИЯ

Syslog-ng — это мощное средство для централизованного управления логами, которое предоставляет множество различных возможностей по обеспечению гибкости конфигурации. Плагин unix-dgram используется для отправки логов через Unix Domain Sockets в датаграммном режиме. Этот тип подсистемы ввода-вывода обычно является стандартной частью syslog-ng и должен быть доступен во всех стандартных сборках.

Ошибка "destination plugin unix-dgram not found" указывает на то, что syslog-ng не удалось распознать связанный с этим компонентом плагин или он был неправильно настроен. Наиболее вероятные причины такой ошибки могут включать в себя проблемы с установкой модулей, отсутствием необходимой поддержки в текущей конфигурации сборки, или ошибки в конфигурационных файлах.

ПРИМЕР

Из предоставленного вами вывода команды, видно следующее:

  1. Версия используемого syslog-ng — 3.35.1, которая была установленна с помощью apt. Эта версия общедоступна и должна поддерживать плагин unix-dgram.

  2. При запуске syslog-ng возникает ошибка при парсинге, указывающая на отсутствие плагина unix-dgram.

  3. Основанная ошибка говорит о том, что нужный плагин или функция не найден в конфигурационном файле.

ПРИМЕНЕНИЕ

Чтобы диагностировать и исправить эту проблему, выполните следующие шаги:

  1. Проверка наличия модуля afsocket:
    Модуль afsocket отвечает за поддержку socket-связанных функций и конфигураций syslog-ng, включая unix-dgram. Проверьте, доступен ли он в списке ваших модулей (имейте в виду, что согласно предоставленным данным, afsocket должен быть доступен):

    syslog-ng --module-registry | grep afsocket

    Если модуль не загружается, это может означать проблемы с инсталляцией или недоступность модуля в вашей версии syslog-ng.

  2. Проверка наличия Unix Domain Sockets:
    Убедитесь, что ваше системное окружение поддерживает Unix Domain Sockets и что socket, на который высылаются датограммы, существует и доступен по указанному в конфигурации пути.

  3. Пересборка с нужными параметрами:
    В случае если afsocket не доступен, стоит рассмотреть возможность пересборки программного обеспечения syslog-ng с активированными необходимыми модулями. Проверьте, что при конфигурации и сборке указываются правильные параметры включения всех необходимых модулей.

  4. Проверка и корректировка конфигурационных файлов:
    Откройте основной конфигурационный файл syslog-ng и файл, указанный для конфигурации destimation d_azure_mdsd, и проверьте их на предмет синтаксических ошибок или конфликтов. Убедитесь, что файл конфигурации соответствует синтаксису и формату, ожидаемому данной версией syslog-ng.

  5. Переустановка и обновление:
    Если проблема все еще persists, возможно, стоит переустановить syslog-ng для устранения потенциальных проблем с файлами или зависимостями. Также рекомендуется проверить наличие обновлений для вашей текущей версии, так как возможно, что исправления для вашей проблемы уже были включены в более поздние версии.

  6. Учёт дополнительных журналов ошибок:
    Посмотрите дополнительные логи ошибок, которые могут быть записаны в системных журналах для более детальной диагностики проблемы. Такие записи могут предоставить более глубокую информацию о том, почему plugin не распознается.

Применение этих шагов и реальное исследование основных проблем или ошибок должно помочь в диагностики и настройке syslog-ng для корректной работы с unix-dgram destinations. Если же указанные решения не эффективны, рекомендуется обратиться за консультацией в сообщество syslog-ng или актуализировать поддержку.

Оцените материал
Добавить комментарий

Капча загружается...