Требования
У нас есть несколько серверов (20-50) - Solaris 10 и Linux (SLES) - выполняющих различные приложения, каждый из которых генерирует несколько событий журнала в текстовые файлы. Нам нужно перенести их в отдельный блок мониторинга, где мы можем выполнять анализ / отчетность / оповещения.
Текущий подход
В настоящее время мы используем SSH с удаленным «tail -f» для потоковой передачи файлов журналов с серверов на блок мониторинга. Однако это несколько хрупко.
Новый подход
Я бы хотел заменить это на RabbitMQ. Серверы будут публиковать свои события журнала в этом, и каждый скрипт / приложение мониторинга может затем подписаться на соответствующую очередь.
В идеале нам бы хотелось, чтобы сами приложения создавали события непосредственно в очередь RabbitMQ.
Однако, предполагая, что это не вариант в краткосрочной перспективе (у нас может не быть источника для всех приложений), нам нужен способ в основном "хвостить -f" лог-файлов с диска. Я чувствую себя наиболее комфортно в Python, поэтому я искал Pythonic способ сделать это - консенсус, похоже, просто использовать цикл с readline () и sleep () для эмуляции tail -f.
Вопросы
Существует ли более простой способ "tail -f" целой связки текстовых файлов непосредственно в поток RabbitMQ? Что-то встроенное или расширение, которое мы могли бы использовать? Любые другие советы / советы здесь?
Если мы напишем оболочку Python для захвата всех файлов журнала и их публикации - в идеале я бы хотел, чтобы один скрипт Python одновременно обрабатывал все файлы журнала, а не вручную раскручивал отдельный экземпляр для каждого файла журнала. Как мы должны решить это? Есть ли соображения относительно производительности, использования процессора, пропускной способности, параллелизма и т. Д.?
- Нам нужно подписаться на очереди, а затем, возможно, сбросить события обратно на диск и восстановить исходные файлы журналов. Любые советы по этому поводу? И нам также хотелось бы, чтобы один сценарий Python, который мы могли бы запустить для восстановления всех файлов журналов, а не 50 отдельных экземпляров одного и того же сценария, - это легко достижимо?
Ура,
Victor
PS: Мы взглянули на Scribe Facebook, а также на Flume, и оба они кажутся немного тяжелыми для наших нужд.