Ведение журнала пользовательских данных Script Выход на EC2 Экземпляры на окнах
Я пытаюсь получить журналы ec2 "user-data" script и направлять их в системный журнал на окна.
На linux кто-то уже нашел решение:
http://alestic.com/2010/12/ec2-user-data-output
в основном вы должны использовать tev/var/log/user-data.log для системного журнала.
Мне нужно знать, как это сделать для окон.
Я не смог найти какой-либо user-data.log в моем экземпляре Windows.
Ответы
Ответ 1
Пробовали ли вы искать в C:\CFN\LOG\cfn-init.log - обычно, где вы получаете журналы данных пользователя CFN?
Существует также полезная информация внутри и вокруг
C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
Ссылка: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-windows-stacks-bootstrapping.html
Ответ 2
Для тех, кто находит это и все еще ищет, вы можете попробовать поискать в ProgramData. Там есть пара лог файлов, которые дают вам больше информации о загрузке.
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
Ответ 3
Несколько путей в ответах на этот вопрос устарели по состоянию на июль 2019 года. Больше нет ни C:\Program Files\Amazon\Ec2ConfigService, ни C:\CFN (по крайней мере для меня, но я не использую CFN для предоставление, если это имеет значение)
Сначала я думал, что расположение C:\ProgramData\Amazon\также устарело, но я забыл, что ProgramData скрыта в окнах и по умолчанию скрытые файлы не отображаются. Помните, как каждый раз, когда вы устанавливаете окна, вы должны установить выбор "показывать скрытые файлы"? Я забыл об этом здесь.
Таким образом, журналы пользовательских данных Windows находятся в C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
Также, если это помогает, сам скрипт Userdata (post-any-provisioning-templating, как представлено экземпляру) находится в C:\Windows\Temp\UserScript.ps1
Но я хотел бы воспользоваться второй рекомендацией tarvinder91 об использовании функции powershell "Start-Transcript" для простого создания собственных журналов.
Вы можете установить собственный путь и -Append как Start-Transcript -Path "C:\UserData.log" -Append
в начале вашего скрипта. Таким образом, вы можете контролировать, куда идет журнал, и не беспокоиться о том, как настроен AMI для хранения журналов.
Ответ 4
Вам действительно не нужно зависеть от стандартных журналов для любого облака/службы. Просто используйте start-transcript
в своем коде powershell в начале. Он будет хранить все журналы для вас, как правило, в C:\Users\Administrators\Documents
, если эта команда запускается из профиля администратора или в других местах в соответствии с профилем пользователя, использующим script.
Ответ 5
Я обнаружил, что есть файл журнала, посвященный выполнению пользовательских данных, и он указывает, что произошла ошибка, но она не указывает, что такое ошибки; поэтому решение (до тех пор, пока код ops не сделает что-то лучше) не будет писать код пользовательских данных таким образом, чтобы он направлял свой вывод в файл, и этот файл можно разобрать, чтобы сообщать об ошибках или помогать в отладке.