Стандартные настройки rsyslog могут стать узким местом при попытке использования крупномасштабного централизованного сервера журналов для нескольких систем
Отключите поиск DNS при получении сообщений
CentOS/RHEL
1 | nano /etc/sysconfig/rsyslog |
Debian/Ubuntu
1 | nano /etc/default/rsyslog |
добавив -x:
1 | SYSLOGD_OPTIONS="-x" |
Установка директив в rsyslog.conf
Установите следующие директивы в файле /etc/rsyslog.conf
1 | nano /etc/rsyslog.conf |
1 2 3 4 5 | $MainMsgQueueSize 200000 $MainMsgQueueHighWaterMark 120000 $MainMsgQueueDiscardMark 160000 $MainMsgQueueWorkerThreads 4 $RulesetCreateMainQueue on |
rsyslog необходимо перезапустить:
1 | systemctl restart rsyslog |
$MainMsgQueueSize 200000
Очередь основных сообщений принимает данные журнала, поступающие на входную цепочку, и отправляет их в очередь разбора и фильтрации. Эта очередь должна быть достаточно большой, чтобы в нее можно было поместить большое количество сообщений журнала.
$MainMsgQueueWorkerThreads 100
Рабочие потоки выполняют действия для различных очередей rsyslog, обычно нет необходимости запускать несколько рабочих потоков параллельно.
$RulesetCreateMainQueue on
Наборы правил могут быть использованы для повышения производительности, поскольку они создают свою собственную главную очередь сообщений для каждого набора правил. Это позволяет обрабатывать больше журналов одновременно и в итоге принимать больше журналов.