Основное требование, которое у меня есть, - это иметь возможность просматривать и выполнять простой поиск в журналах, объединенных с нескольких машин. Однако я бы хотел, чтобы решение оказало минимальное влияние на остальную (основную) систему. У меня нет требований к работе в реальном времени, процесс может быть асинхронным.
Изначально системный журнал казался хорошим вариантом, но что, если сервер системного журнала выйдет из строя? В худшем случае пользователь основной системы видит ошибки, в лучшем случае теряются журналы.
Итак, я начал поискать и нашел Logstash ( http://logstash.net/ ). В настоящее время моя идея такова:
Таким образом:
Как вы думаете, это сработает? Или, может быть, вы могли бы порекомендовать другое решение?
Rsyslog имеет некоторые функции, которые вы описываете, и в проекте также есть много документации о надежной пересылке сообщений .
Короче говоря, с помощью rsyslog вы можете использовать протокол RELP для надежной пересылки сообщений системного журнала, и тогда вам не придется беспокоиться о потере сообщения. И у вас также есть возможность настроить локальные файлы спула, где rsyslog будет буферизовать сообщения в случае, если удаленный сервер не работает. Как только удаленное устройство вернется к работе, ваш агент наверстает упущенное.
У вас также есть возможность настроить rsyslog для записи в реляционную базу данных, а затем вы можете сделать базу данных настолько избыточной, насколько захотите (я лично нашел сервер syslog проще кластеризовать).
Этот вопрос, скорее всего, будет закрыт как не по теме, см. FAQ.
Тем не менее, системный журнал (или любая система на основе системного журнала) должен работать нормально, в конце концов, если вы обеспокоены потерей журналов, тогда обязательно сделайте резервную копию сервера системного журнала как часть вашего обычного сценария аварийного восстановления. Это довольно простая задача / запрос.