Как сохранить журналы apache в EC2 при использовании автоматического масштабирования AWS

Мы создали веб-сайт с использованием AWS EC2 и автоматического масштабирования в типичном стеке LAMP (ubuntu).

Однако масштабирование и т. Д. Работает хорошо, поскольку экземпляры являются «временными», наши журналы apache не сохраняются (поскольку мы не сохраняем тома или экземпляры) после скачков нагрузки.

Есть ли «лучший / самый надежный» способ сохранить наши журналы apache для этих экземпляров?

Одна из идей заключалась в том, чтобы скопировать файлы журнала на S3 во время завершения работы, написав сценарий bash для выполнения с использованием функции /etc/rc0.d (запуск сценария при завершении работы).


person BoomShaka    schedule 09.07.2013    source источник
comment
Что ты здесь делал? Я использую тот же подход, но обнаружил, что во время выключения у меня нет времени нажимать на s3.   -  person digidigo    schedule 20.08.2013
comment
Мы использовали предложенный мной подход, который может быть ненадежным, см. Ссылку ниже (хотя пока он работает нормально). Предлагаемое rdrey решение может быть лучше. docs.aws.amazon.com/AWSEC2/latest/UserGuide/ ЦИТАТА: Если вы запустите сценарий при завершении экземпляра, ваш экземпляр может иметь аварийное завершение, потому что у нас нет возможности гарантировать выполнение сценариев завершения работы. Amazon EC2 пытается корректно завершить работу инстанса и запустить любые сценарии выключения системы; однако определенные события (например, отказ оборудования) могут помешать запуску этих сценариев выключения системы.   -  person BoomShaka    schedule 21.08.2013
comment
Еще одно потенциально полезное чтение: forum.aws.amazon.com/message.jspa? messageID = 183672 #   -  person BoomShaka    schedule 21.08.2013


Ответы (1)


«Лучшей практикой» было бы объединение всех ваших журналов на сервере, который позволяет вам архивировать и искать их. Вы можете создавать резервные копии старых журналов в S3 и, в конечном итоге, в Glacier.

Чтобы все это работало, вам нужно настроить apache для записи ежечасных или поминутных журналов и написать задание cron, чтобы синхронизировать их в какое-то центральное место или загрузить их в S3.

Ознакомьтесь с http://logstash.net/, где есть решение для агрегирования и поиска с открытым исходным кодом, которое вы можете запустить на своем собственном экземпляре. и http://loggly.com/ для платного полностью размещенного решения.

РЕДАКТИРОВАТЬ: Моя первая мысль была «не делайте этого при выключении». Вы захотите синхронизировать свои файлы журналов как можно чаще, и в результате (если вы, например, ведете ежеминутные журналы) вы получите агрегацию / резервное копирование журналов и поиск «почти в реальном времени».

person rdrey    schedule 12.07.2013
comment
Лучшее решение - просто передать журналы в хранилище / службу за пределами экземпляра, генерирующего журналы. Но многие устаревшие приложения просто не поддерживают это и требуют изгиба назад, чтобы такие простые задачи работали правильно. Что-то вроде StreamLogAppender. - person Daniel Hajduk; 02.04.2020