Существует ли библиотека распределенных журналов с открытым исходным кодом? - PullRequest
5 голосов
/ 16 ноября 2010

Я говорю о библиотеке, которая позволила бы мне регистрировать события с разных машин и выровнять эти события по «глобальной» оси времени с достаточно высокой точностью.

На самом деле, я спрашиваю, потому чтоЯ сам написал такую ​​вещь в ходе проекта кластерных вычислений, нашел ужасно полезным, и был удивлен, что не смог найти аналогов.

Следовательно, вопрос в том, существует ли что-то подобное (и я лучше внесу свой вклад в это), или ничего не существует (и я лучше напишу аналог моего решения с открытым исходным кодом).

Вотфункции, которые я ожидаю от такой библиотеки:

  • Независимость от смещения тактового сигнала между различными машинами
  • Точность синхронизации порядка не менее миллисекунд, предпочтительно микросекунд
  • Масштабируемость до тысяч одновременных процессов ведения журналов с не менее чем несколькими мегабайтами агрегированных журналов в секунду
  • Мягкая операция в реальном времени (например, я не хочу собирать 200 больших журналов с 200 машин, а затем вычислятьсмещение часов и их объединение - я хочу посмотреть, что происходит "вживую", возможно, с небольшим лагом, например 10 с)

Ответы [ 3 ]

1 голос
/ 17 ноября 2010

Вклад Facebook в этом вопросе называется ' Scribe '.

Выдержка:

Scribe - это сервер для агрегирования потоковых данных журнала.Он предназначен для масштабирования до очень большого количества узлов и может быть устойчивым к сбоям сети и узлов.На каждом узле системы работает сервер писцов, настроенный на объединение сообщений и отправку их на центральный сервер писцов (или серверы) в более крупные группы.

...

Scribe реализован как экономичный сервис с использованием неблокирующего сервера C ++.Установка на facebook выполняется на тысячах машин и надежно доставляет десятки миллиардов сообщений в день.

API основан на Thrift, поэтому у вас есть хороший охват платформы, но на случай, если выВ поисках простой интеграции для Java вы, возможно, захотите взглянуть на приложение Digg log4j для Scribe .

.
1 голос
/ 16 ноября 2010

Вы можете использовать log4j / log4net для центрального демона системного журнала.log4j имеет встроенный SyslogAppender , а в log4net вы можете сделать это, как показано здесь .log4cpp docs здесь .

Существуют Windows-реализации Syslog, если у вас нет Unix-системы для этого.

0 голосов
/ 21 апреля 2013

Использование Chukwa, системы с открытым исходным кодом и крупномасштабной системы мониторинга журналов

...