Сообщения сброшены в Syslog-NG - конфигурация буфера? - PullRequest
0 голосов
/ 20 сентября 2018

Я использую Syslog-NG 3.8 в качестве сервера системного журнала, получающего сообщения из разных источников, около 400 серверов (и в конечном итоге фильтруя их и передавая на дополнительный сервер).

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

У меня есть конфигурация, в которой я отслеживаю «входящие» сообщения перед фильтрацией в плоском файле и не вижутам есть некоторые сообщения (см. пример ниже), хотя я могу успешно видеть трассировку tcp при запуске tcpdump, что означает, что Syslog-NG «отбрасывает» сообщения во время «исходного» механизма.

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

вот конкретный пример ошибки:

с исходного компьютера,если я делаю маленький цикл отправки сообщений каждую секунду с идентификатором, который увеличивается (например, 20,21,22,23,24 и т. д.):

root@sm1u1050vmo /var/log: for ((i=20;i<100;i++)); do logger -p auth.notice "test auth notice $i" ; sleep 1 ; done

если я хвостплоский файл "входящий.log" на Syslog-NG (получатель), я могу видеть много пропущенных сообщений:

[root@xm1p1034vmo 20]# tail -f incoming.log | grep sm1u1050vmo
Sep 20 12:27:32 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 28
Sep 20 12:27:34 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 30
Sep 20 12:27:37 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 33
Sep 20 12:27:42 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 38
Sep 20 12:27:43 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 39
Sep 20 12:27:52 sm1u1050vmo root: [ID 702911 auth.notice] test auth notice 48

мы можем ясно видеть пропущенные многие сообщения.

вот небольшойчасть моей конфигурации, с параметрами и источниками:

options {
  chain_hostnames(no);
  log_msg_size(8192);
  time_reopen(2);
  create_dirs(yes);
  use_dns(yes);
  keep_hostname(yes);
  stats_freq(3600);
  flush_lines(1);
  log_fifo_size(1000);
};

используемый источник:

source s_EXTERNAL {
         network(transport("udp") log-fetch-limit(500));
};

место назначения "локальной копии", используемое для отслеживания этих входящих сообщений перед их фильтрацией:

destination d_INCOMING_ALL       
{ 
 file("/app/syslog-ng/logs/${YEAR}/${MONTH}/${DAY}/incoming.log" create-dirs(yes)); 
};

обратите внимание, я сейчас пытаюсь поиграть с такими параметрами, как so-rcvbuf () в исходном коде (и адаптируя параметр ядра rmem_max вв то же время).это было 16Mb, и я увеличил его до 64M, но пока ничего не изменилось.я все еще могу видеть RcvbufErrors & ошибки при получении пакета увеличивающиеся при запуске netstat -us

любые подсказки, пожалуйста?

спасибо

1 Ответ

0 голосов
/ 05 октября 2018

Я бы сказал вам UDP-шутку, но вы, вероятно, не получите ее.Серьезно, UDP не гарантируется.Измените протокол на TCP на каждом конце, и вы должны быть установлены.Кроме протокола, если ваша система отбрасывает сообщения со скоростью 1 в секунду, у вас, скорее всего, есть проблемы с конфигурацией в вашей сети, или она просто перегружена.

...