2008-08-29 5 views
12

Я занимаюсь большой работой в сетке и пространстве HPC и одной из самых больших проблем, которые мы имеем с системой, распределенной на сотни (или в некоторых случаях тысяч) серверов, анализирует файлы журнала.Журнальные файлы в широко распределенных системах

В настоящее время файлы журнала записываются локально на диск на каждом клиенте, но мы также можем рассмотреть возможность публикации информации о регистрации, используя, например, UDP Appender и собирать его в центре.

Учитывая, что цель состоит в том, чтобы иметь возможность идентифицировать проблемы как можно ближе к реальному времени, что нам делать?

+0

кстати, почему UDP? можете ли вы потерять сообщения? – 2011-02-11 20:13:25

ответ

3

Во-первых, синхронизируйте все часы в системе с помощью NTP.

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

Поскольку вы упомянули UDP Appender, я предполагаю, что вы используете log4j (или один из его братьев и сестер). Log4j имеет класс MDC, который позволяет передавать дополнительную информацию через поток обработки. он может помочь собрать некоторую дополнительную информацию и передать ее.

0

Вы используете Apache? Если это так, вы можете взглянуть на mod_log_spread Хотя у вас может быть слишком большая инфраструктура, чтобы сделать ее пригодной для обслуживания. Другим вариантом является просмотр «трансляции» или «многоадресной рассылки» ваших сообщений журнала и выделение выделенных серверов ведения журнала для этих каналов и их сопоставление