Как сделать резервное копирование файлов с помощью logrotate и Amazon S3?
Я хотел бы создать новый стандарт двух вещей:
как долго будут генерироваться и вращаться журналы, сгенерированные моими приложениями?
Как перенести логи в Amazon S3, в качестве резервного сервера?
Я думал использовать logrotate, чтобы вращать и сжимать мои ежедневные файлы следующим образом:
{filename}-{year}-{month}-{day}-{r-months}.gz
r-months
переменные средства remain-months
На сколько месяцев файл должен оставаться в S3, файлы старше этого должны быть удалены.
Мой друг, дай мне идею, я должен compress the logs daily
(в новом формате, предложенном выше), после этого эти файлы должны быть отправлены в нашу корзину в Amazon S3. затем files older than 7 days should be removed by logrotate
(потому что они уже в S3).
В наши дни наши приложения используют log4j
и другие для создания журналов.
1) Стоит ли отключать журналы версий, сгенерированные нашим приложением, и обрабатывать их только с помощью logrotate?
2) Как вы думаете, это могло привести к сбою приложения?
3) Этот новый формат журнала, это хороший?
4) А как отправить файлы на S3? Теперь я использую s3cmd
, вы рекомендовали мне другой инструмент?
1 ответ
По вашему вопросу № 4:
Вы можете смонтировать S3 bucket как локальный раздел и работать с файлами S3 так, как они были расположены в файловой системе вашего сервера. Есть много хороших инструментов с открытым исходным кодом.
Но со своей стороны я бы порекомендовал вам взглянуть на мой проект: RioFS, файловая система пользовательского пространства для монтирования корзин Amazon S3. Цели проекта и основные преимущества по сравнению с другими подобными инструментами: простота, скорость выполнения операций и отсутствие ошибок в коде.
В настоящее время проект находится в состоянии "бета", но уже довольно давно он работает на нескольких высоконагруженных файловых серверах ( RioFS предоставляет доступ к расположенным на S3 файлам на серверы ftp / sftp).
Мы строим сообщество вокруг нашего проекта и ищем больше людей, чтобы присоединиться к нашему проекту, чтобы обсудить планы на будущее и помочь с тестированием. Со своей стороны мы предлагаем быстрое исправление ошибок и выслушаем ваши запросы на добавление новых функций.
Краткое руководство:
Вы можете смонтировать корзину, используя следующую команду (при условии, что вы установили RioFS и экспортировали переменные среды AWSACCESSKEYID и AWSSECRETACCESSKEY):
riofs http://s3.amazonaws.com your_bucket_name /path/to/localfolder
(пожалуйста, обратитесь к описанию проекта и запустите riofs --help
чтобы получить помощь с аргументами командной строки)
Пожалуйста, обратите внимание, что проект все еще находится в разработке, может быть еще несколько ошибок. Если вы обнаружите, что что-то работает не так, как ожидалось: заполните отчет о проблеме на странице проекта GitHub.
Надеюсь, это поможет, и мы с нетерпением ждем встречи с вами в нашем сообществе!