Есть ли CLI для хвостовых логов с AWS Elastic Beanstalk
Есть ли утилита CLI для хвостовых журналов из приложений Elastic Beanstalk. В частности, приложение для флюорита python.
Вы можете использовать свой eb CLI, чтобы получить мгновенный снимок...
eb logs
Но я хотел бы сделать (похоже на то, что heroku предлагает)...
eb logs --tail
Кто-нибудь это сделал?
Спасибо!
Некоторые ссылки:
Ответы
Ответ 1
Теперь это так просто, как:
eb logs --stream
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-logs.html
(Я понимаю, что лабораторный ответ уже включал --stream
но я продолжаю просматривать этот ответ, потому что я хочу видеть все журналы, а не только одну группу. И если бы моя память была лучше, мне не пришлось бы продолжать гуглить то же самое вопрос и заканчивается в том же месте.)
Ответ 2
ОБНОВЛЕНИЕ: Мой ответ продолжает получать положительные отзывы, но с 2013 года все изменилось. Теперь проще вести журналы EB - посмотрите на ответ в posit labs, чтобы найти более простой способ сделать это :-).
Оригинальный ответ:
Я тоже боролся с этим. Утилита eb CLI, по-видимому, в настоящее время не позволяет отслеживать журналы приложений.
Тем не менее, вы можете привязать эти журналы:
- Создание пары ключей в консоли EC2 (которая должна дать вам файл
.pem
) - Связывание вашего экземпляра EB с этой парой ключей (в консоли EB)
- Поиск общедоступного DNS вашего экземпляра в консоли EC2
- Подключение к вашему экземпляру через ssh ('ssh -i [yourpemfile.pem] ec2-user @[your.public.dns]
- Хвост файла журнала. Для приложения Node.js этот
tail -f/var/log/nodejs/nodejs.log
. Я не знаю, что эквивалентно приложению Flask.
(Спасибо Ричарду Саутару за то, что он направил меня в правильном направлении.)
Ответ 3
Вы можете использовать флаг -g
для установки группы журналов, а затем использовать --stream
для потоковой передачи результатов. Не нужно ssh в конкретную машину.
eb logs -g /aws/elasticbeanstalk/yourApp-env/var/log/nodejs/nodejs.log --stream
Ответ 4
Вам могут не понадобиться журналы журналов eb, сначала попробуйте eb ssh
, затем
tail -f /var/log/*
Ответ 5
Итак, для других, которые все еще ищут это, я написал небольшой инструмент для хвостовых журналов для эластичной среды beanstalk, вам просто нужно указать имя среды и имя файла, он будет делать SSH и зачерпнуть файл каждого экземпляра.
./eb-tail env-name
или
./eb-tail env-name -f '/path/to/file'
https://github.com/ahmednasir91/eb-tail
Ответ 6
Это то, что я делаю:
Захватите местоположение файла журнала из eb logs
eb logs
Каждый журнал EB-дисплеев поставляется с -------
предшествующим/предваряющим его. Например, для журналов для пассажиров на Rails:
-------------------------------------
/var/app/support/logs/production.log
-------------------------------------
Затем SSH на сервер и закройте журналы:
eb ssh # may have to eb ssh --setup for first time use
# from inside the server
tail -f /var/app/support/logs/production.log
Ответ 7
Вы не можете напрямую записывать журналы, так как AWS EB объединяет несколько журналов вместе. Рассматривая журнал приложений, который вас интересует, вы можете перейти на вкладку EC2 и нажать кнопку подключения на самом сервере (вам может потребоваться определить ключ- пара, просто следуйте инструкциям). После входа в сервер вы можете вывести свой журнал там.
Ответ 8
Вот что я использую для привязки нескольких журналов с нескольких серверов, включая aws:
for $server in server-1 server-2 server-3 server-4; do
ssh -t $server -f "tail -f /var/log/some-process/error.log|sed -e 's/^/$server /'" &
done
Источник: https://gist.github.com/iolloyd/da60ef316643d7894bdf
Это позволяет мне контролировать несколько удаленных экземпляров на моей локальной машине.
Ответ 9
Это не использует eb-cli, но самый простой способ для потоковой передачи журналов состоит в том, чтобы использовать eb logs -cw enable
затем читать поток на портале cloudwatch.
Ответ 10
У меня нет среды, где я могу проверить это, но, глядя на код, он выглядит так, как вы можете:
eb logs tail
проверить строку констант .py 129