Назад | Перейти на главную страницу

Как агрегировать новые строки журналов apache с нескольких машин каждый час?

Я создал систему, которая должна собирать новые журналы apache с четырех машин каждый час, объединять их, обрабатывать и хранить. Для сбора новых журналов я написал кучу сценария cron, который читает строку уже отправленных строк и начинает отправлять только новые строки, а затем сохраняет новый номер строки. Это синхронизируется со сценарием слияния с использованием некоторых файлов .lock.

Хотя это работает достаточно хорошо, я хотел бы заменить эту систему более надежной системой с хорошей обработкой ошибок и, возможно, с автоматическим определением новых файлов журнала (они меняются каждый день). Есть ли что-нибудь, что я мог бы использовать для выполнения такой задачи? Спасибо!

Есть много решений для сбора / мониторинга журналов.

Некоторые из них: syslog, syslog-ng, logsurfer, splunk ... и я думаю, многое другое. Но я рекомендую syslog-ng.

Он очень настраиваемый (например, он может хранить журналы в базе данных, что иногда бывает очень полезно), эластичный и делает все, что вы хотите.

С syslog-ng и MongoDB вы можете делать довольно забавные вещи, используя mojology (простое приложение для просмотра сообщений системного журнала, хранящихся в MongoDB, которые регистрируются syslog-ng).

Вы можете использовать любое из этого программного обеспечения.

Zabbix может собирать журналы, но гораздо сложнее настроить то, что вы хотите.

Системный журнал - неплохая идея, но у sysylog-ng гораздо больше возможностей. Вот сравнение syslog и syslog-ng http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/features/comparison

Поэтому я бы выбрал syslog-ng :)

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

Я не уверен, действительно ли syslog - подходящий инструмент для журналов apache.

На четырех веб-серверах я просто менял журналы один раз в час.

Затем с центрального сервера журналов я извлекал все журналы с помощью rsync и выполнял все «умные» вещи (слияние журналов и т. Д.) В одном центральном месте.

Есть хороший инструмент для агрегирования логов веб-серверов, написанный Дмитрием Котеровым. Он специально разработан для устранения некоторых недостатков решения syslog. Видеть http://en.dklab.ru/lib/dklab_logreplica/

Еще один хороший способ - использовать программное обеспечение для управления журналами, например splunk или logstash.