Назад | Перейти на главную страницу

Переопределение конфигурации rsyslog Amazon Linux

Я использую Amazon Linux AMI версии 2015.03, я пытаюсь настроить rsyslog для перенаправления журналов на удаленный сервер журналов (в данном случае logstash), удалив файл conf в /etc/rsyslog.d.

Конфигурация удаленного ведения журнала, похоже, работает нормально, но журналы по-прежнему записываются в / var / log / messages. Это проблема, потому что они заполняют диск.

Мой файл conf выглядит так:

# Log docker generated log messages to logstash
:syslogtag, startswith, "docker" @x.x.x.x:5000    
& ~

После некоторого исследования с некоторыми другими системами я обнаружил, что файл rsyslog.conf, существующий по умолчанию в Amazon Linux, включает эту директиву в самый конец файла conf:

$IncludeConfig /etc/rsyslog.d/*.conf

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

Мне кажется, что из-за этого значения по умолчанию не могут быть отменены. Я что-то упускаю?

Не думайте об этом как об отмене значений по умолчанию, но в остальном вы правы. В вашем файле & ~ отбрасывает сообщение журнала, предотвращая дальнейшую обработку. Если это происходит выше встроенной обработки для /var/log/messages, сообщение журнала будет удалено и, таким образом, исключено из этого файла. Поскольку ваш $IncludeConfig происходит после, и ваша инструкция drop.

У вас есть два варианта;

  1. Переместите $IncludeConfig заявление вверх.
  2. Исправьте ротацию логов, чтобы ваш диск не заполнялся.

Я лично предпочел бы последнее, потому что мне нравится хранить журналы локально (в течение разумного периода времени), а также пересылать их на удаленный сервер для агрегирования / хранения. Имея сообщения журнала, доступные в /var/log/messages сделает устранение неполадок более удобным, а также упрощенным для всех, кто использует систему, поскольку это ожидаемое место.