Есть ли надежный способ передачи журналов с одного сервера на другой?
В настоящее время я использую скрипт cron для передачи файла с scp
на другой сервер каждые 5 минут.
*/5 * * * * root
scp ~/my_log_file.txt user@remote_host.com:/remote/log/directory
/etc/rsyslog.conf:
authpriv.* /var/log/secure authpriv.* @remote_host.com
(Эта часть средства, как мне кажется, работает практически со всеми демонами syslog. Часть, касающаяся сортировки вещей на другом конце, специфична для rsyslog.)
затем на удаленном конце вам необходимо настроить принимающий сервер для фильтрации удаленных сообщений в соответствующее место (отправив хосту с% HOSTNAME% как часть имени файла, по объекту% syslogfacility-text%, имени программы% programname% и т. д. .)
rsync ~/my_log_file.txt user@remote_host.com:/remote/log/directoryс помощью cron вы можете сохранить повторное копирование первой части файла журнала (я выражаю неуверенность, поскольку вы определенно сохраняете КОПИРОВАНИЕ уже переданной части, но вы все равно делаете сравнение на каждой стороне, чтобы найти уже переданную часть, которую нужно пропустить. Это должно быть более осторожным SSD и позволяет избежать загрязнения буферов ввода-вывода ядра, но при этом по-прежнему требуются операции ввода-вывода для сканирования начала на обоих концах.).
Это те варианты, о которых я могу думать.
В зависимости от вашей цели передачи журналов, вы можете быть более эффективными, включив передачу в пост-ротацию logrotate, если цель состоит в том, чтобы хранить их в течение длительного времени на большом диске. Если цель - получить доступ к журналам за последние 5 минут (например, для OSSEC), то лучше использовать указанные выше методы передачи.
Также следует отметить, что если вы считаете, что машина, генерирующая журналы, ненадежна или небезопасна, может быть лучше получить копию хоста, хранящую журналы, с машины, генерирующей журнал, чем дать ей разрешение на запись на удаленную машину.
Если вы собираетесь использовать системный журнал, вы также можете использовать syslog-ng ( https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/chapter-quickstart.html ).
Я предполагаю, какой метод соответствует вашим потребностям, на самом деле зависит от того, что вы хотите делать с сообщениями журнала после их передачи на свой сервер. Использование системного журнала дает вам преимущество передачи в реальном времени, а также для обработки сообщений и извлечения из них информации, если это необходимо.