Вход в Amazon S3

Кто-нибудь построил или кто-нибудь знает, как создать, фреймворк регистрации, который откладывает файлы журнала на Amazon S3?

Мы создаем приложение SaaS, и, естественно, мы планируем иметь миллионы серверов и клиентов. Я хотел бы упростить всю структуру каротажа. В настоящий момент мы используем SLF4j для ведения журнала и Logback как фактическую реализацию ведения журнала.

Я думаю, что мы могли бы сбросить еще одну реализацию, которая будет накапливать сообщения журнала в памяти, сжимать их и затем загружать на S3. Если соединение S3 было медленным или медленным, реализация остановила файлы на диске. Подобно Facebook Scribe.

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

Ответы

Ответ 1

Существует плагин для fluentd, который хранит файлы на s3. (Fluentd - хороший "сборщик журналов" )

Подробнее об этом читайте здесь: http://docs.fluentd.org/articles/apache-to-s3

Если соединение s3 опускается или замедляется, fluentd file buffer будет буферировать вывод для вас.

Ответ 2

Я искал google по тому же вопросу. Но, по-видимому, мне немного лучше. Я знаю, как зарегистрироваться на S3. Не существует готового решения.

Я предлагаю что-то вроде плавкого предохранителя для s3 для установки вашего syslog: https://github.com/s3fs-fuse/s3fs-fuse

Теперь вам нужно смонтировать его также в вашей системе лог-парсера, которая может быть любой из готовой системы, которая может читать журналы из каталога.

Вот что я придумал.

То, что я до сих пор ищу для реализации, - это проблема производительности такого ведения журнала на S3, поскольку у AWS есть свои проблемы. Была обсуждена установка размера блока/файла для повышения производительности и снижения расходов на чтение и запись. Надеюсь, это поможет другой потерянной душе.

Ответ 3

Я искал что-то подобное. Я уже использую winston.js для целей ведения журналов, но нашел этот плагин, который позволяет сохранять ваши журналы в AWS S3. (Winston-S3) Я еще не пробовал, но скоро сделаю.

Не должно быть трудно показать эти журналы на какой-то странице администратора.

Ответ 4

Ответ от 8 лет в будущем. Для этого не нужно писать целую структуру. Вместо этого вы можете попытаться написать собственный "appender" для logback или log4j2 и использовать этот appender в соответствующей конфигурации. Таким образом, вам не нужно писать всю инфраструктуру ведения журналов, а только ту часть, которая вам нужна, и использовать оставшуюся часть из рабочей структуры.

Есть также несколько из них на GitHub: это первый, который выскочил, когда я погуглил https://github.com/shuwada/logback-s3