Назад | Перейти на главную страницу

Что и где находится «системный журнал» для экземпляров Windows EC2?

Документация AWS говорит: «Для экземпляров Windows в выводе консоли экземпляра отображаются последние три ошибки журнала системных событий».

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

2017/05/23 21:43:15Z: EC2ConfigMonitorState: 0
2017/05/23 21:43:15Z: Windows sysprep configuration complete.
2017/05/23 21:43:16Z: AMI Origin Version: 2016.12.14
2017/05/23 21:43:16Z: AMI Origin Name: Windows_Server-2012-R2_RTM-English-64Bit-Base
2017/05/23 21:43:16Z: OS: Microsoft Windows NT 6.3.9600
2017/05/23 21:43:16Z: OsVersion: 6.3
2017/05/23 21:43:16Z: OsProductName: Windows Server 2012 R2 Standard
2017/05/23 21:43:16Z: Language: en-US
2017/05/23 21:43:16Z: TimeZone: Coordinated Universal Time
2017/05/23 21:43:16Z: Offset: UTC 00:00:00
2017/05/23 21:43:16Z: EC2 Agent: Ec2Config service v4.1.1396
2017/05/23 21:43:16Z: Driver: AWS PV Network Device v7.4.3.0
2017/05/23 21:43:16Z: Driver: AWS PV Storage Host Adapter v7.4.3.0
2017/05/23 21:43:17Z: Message: Waiting for meta-data accessibility...
2017/05/23 21:43:17Z: Message: Meta-data is now available.
....
2017/05/23 21:43:26Z: KMS: Server:169.254.169.251; Attempt:1
2017/05/23 21:43:26Z: Message: Product activation was successful
2017/05/23 21:43:26Z: Message: Windows is Ready to useii

Это не журнал событий Windows и не только «последние 3 ошибки». Где находятся выходные данные, которые я просматриваю на экземпляре, и почему в документации говорится, что это должны быть журналы системных событий ошибок, когда это не так?

Я столкнулся с той же проблемой и получил тот же результат. Итак, если вы посмотрите на

C: \ ProgramData \ Amazon \ EC2-Windows \ Launch \ Module \ Scripts \ Get-ConsolePort.ps1, где вы видите эту ошибку в строке 174.

Write-Log "ACPI SPCR table not found. Bailing Out"

Теперь, если вы посмотрите на приведенный выше оператор if, вызывающий это, вы увидите эту строку кода

$SPCRReaderExeDir = "$env:ProgramData\Amazon\EC2-Windows\Launch\Scripts"
    if (Test-Path -Path $SPCRReaderExeDir)
    {
        $SPCRReaderExePath = Join-Path $SPCRReaderExeDir "AWSAcpiSpcrReader.exe"
        $SPCROutput = cmd /c $SPCRReaderExePath

        # Parse the SPCR output and extract key fields such as Vendor ID, Device ID, BDF.
        $Dictionary = @{ }
        if ($SPCROutput -match 'SPCR table signature')
        {

Я на 90% уверен, что AWSAcpiSpcrReader.exe используется с огромным

# SIG # Begin signature block

в конце каждого файла и используется для подтверждения того, что это разрешено.

Я пытаюсь скопировать блок в свои пользовательские данные, но думаю, что он, вероятно, будет слишком большим. Возможно, если я импортирую из S3, я могу поместить туда блок sig, но я не уверен. Я не человек в стиле PowerShell, так что посмотрим.

ХАХАХАХА, ЭТО РАБОТАЛО !! 2020/06/11 02: 17: 14Z: Сообщение: Windows готова к использованию

2020/06/11 02:17:24 Z: Сообщение: OMGOMGOMG

Теперь возможно, что блок генерируется каждый раз при построении экземпляра, поэтому нам, возможно, придется каким-то образом захватить этот блок и импортировать его в сценарий пользовательских данных. Или, может быть, когда будет выпущен новый релиз. Неизвестно. Дело в том, что знак может измениться.

На панели EC2 выберите свой EC2

Перейдите в Параметры действий => выберите Настройки экземпляра => получить системные журналы.

Там вы можете найти журналы вашей системы.

Отличный вопрос. В течение нескольких месяцев я боролся с тем, чтобы увидеть что-нибудь полезное в этом журнале для новых экземпляров Windows, поэтому мне пришлось покопаться. Я хотел бы публиковать там сообщения о состоянии из сценариев подготовки.

Это вывод с последовательной консоли. Я думаю, что Amazon настроил его как консоль Linux или, может быть, это какая-то древняя часть Windows. EC2Launch пишет в него через COM-порт.

Вы можете увидеть некоторые примеры, прочитав код в _C: \ ProgramData \ Amazon \ EC2-Windows \ Launch \ Module_ в более новом экземпляре Windows.

Пример, который действительно пишет во время загрузки для некоторых экземпляров, которые у меня под рукой C: \ ProgramData \ Amazon \ EC2-Windows \ Launch \ Scripts \ SendWindowsIsReady.ps1

Есть еще один сценарий, который должен копировать в него ошибки из журнала системных событий, C: \ ProgramData \ Amazon \ EC2-Windows \ Launch \ Scripts \ SendEventLogs.ps1 ... Я думаю, это должно быть то, на что ссылается документация "последние три ошибки журнала системных событий". Но мне никогда не удавалось показать то, что я хотел показать, например, прогресс моего скрипта пользовательских данных.

У меня много проблем с записью чего-либо на консоль. Возможно, он доступен только во время загрузки или что-то в этом роде. Я пробую такие вещи, как

Import-Module C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1
Initialize-Log -Filename "testlog.log" -AllowLogToConsole
Open-SerialPort
Write-Log -Message 'hi from powershell' -LogToConsole

но я получаю эту ошибку от Open-SerialPort:

Таблица ACPI SPCR не найдена. Выручая