Я хотел бы отслеживать журналы системного журнала на нескольких десятках серверов Linux. В идеале я бы предпочел метод pull, когда центральный сервер мониторинга собирает один раз в день журналы со всех машин через ssh, применяет общие правила и правила для каждого сервера и сообщает о любых неожиданных записях в журнале.
Есть ли у вас какие-либо предложения?
Я бы предпочел не использовать централизованный сервер системного журнала.
Я посмотрел на ossec, опять же, я бы предпочел использовать ssh для всех коммуникаций и предпочел бы избегать установки каких-либо дополнительных инструментов на контролируемых серверах.
Используйте Splunk. У него есть несколько способов сбора и индексации журналов. Вы можете настроить задание cron для извлечения журналов сервера в контролируемые каталоги, то есть / var / log / splunk-logs / {server1, server2 и т. Д.}. Это немного больше, чем просто использование системного журнала, но должно быть выполнимо.
Если вам нужен какой-то скрипт, вы можете использовать это http://paste.broner.org/126 (мог бы быть более динамичным с перехватом пользовательского ввода или более элегантным getops). Если вы не разрешаете root для ssh для ваших хостов с «исходной» машины, вы можете запустить сценарий, основанный на локальной фильтрации на каждом хосте, и настроить задание cron для просмотра журналов. Поместите скопированные новые записи в определенное место и пусть «исходный» компьютер проверит этот каталог с помощью cron, заберет файлы и удалите их после копирования.
Это огромная работа, чтобы не использовать syslog-ng или какой-либо другой сервер syslog. Есть ли причина, по которой вы решили не использовать его?
Изменить: вы также можете использовать uuencode и mail, чтобы отправить файлы по адресу, если это будет более предпочтительным.
Я не уверен в каком-либо готовом приложении / решении для этого, но вы можете легко использовать rsyslog на своем центральном сервере мониторинга с imfile
модуль, который может отслеживать (и предупреждать через ommail
модуль и условия) в произвольных файлах журнала, которые могут быть получены с ваших серверов Linux через rsync
и cron.
Я использую rsyslog в качестве центрального сервера системного журнала и использую ommail
для отправки мне предупреждений о различных событиях с моего пограничного межсетевого экрана, прокси-сервера Squid, коммутатора ядра и т. д. Работает хорошо.
Logwatch и Swatch являются общедоступными инструментами и даже устанавливаются по умолчанию в некоторых дистрибутивах Linux. Вы можете установить это на каждом сервере. Это позволяет отслеживать события в журналах, чтобы о любых критических событиях (например, о сбоях в работе, попытках взлома, сбоях ssh и т. Д.) Можно было немедленно сообщить вам по электронной почте или другим способом доставки.
Если вам нужно избегать установки инструментов в каждой отслеживаемой системе, вы можете написать несколько сценариев rsync для захвата каталогов / var / log и синхронизации с локальным каталогом на центральном сервере. Затем скажите swatch / logwatch проанализировать их.