本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
快速入門:啟用執行 Windows Server 2016 的 Amazon EC2執行個體,使用 CloudWatch Logs 代理程式將日誌傳送至 CloudWatch Logs
提示
CloudWatch 包含新的統一代理程式,可以從EC2執行個體和內部部署伺服器收集日誌和指標。建議您使用較新的統一 CloudWatch代理程式。如需詳細資訊,請參閱 CloudWatch 日誌入門。
本節的其餘部分會說明舊版 CloudWatch Logs 代理程式的使用方式。
啟用執行 Windows Server 2016 的 Amazon EC2執行個體,以使用舊版 CloudWatch Logs 代理程式將日誌傳送至 CloudWatch Logs
您可以使用多種方法來啟用執行 Windows Server 2016 的執行個體,將日誌傳送至 CloudWatch 日誌。本節中的步驟使用 Systems Manager Run Command。如需其他可能方法的相關資訊,請參閱將日誌、事件和效能計數器傳送至 Amazon。 CloudWatch
步驟
下載範例組態檔案
將以下範例檔案下載到您的電腦:AWS.EC2.Windows.CloudWatch.json
設定 JSON 的檔案 CloudWatch
您可以在組態檔案中指定您的選擇 CloudWatch ,以決定要傳送至哪些日誌。建立此檔案並指定選擇的程序。需要 30 分鐘或更久的時間完成。一旦完成此工作,您就可以在所有的執行個體上重複使用該組態檔案。
步驟 1:啟用 CloudWatch 日誌
在JSON檔案頂端,將 的「假」變更為「真」IsEnabled
:
"IsEnabled": true,
步驟 2:設定 的設定 CloudWatch
指定憑證、區域、日誌群組名稱和日誌串流命名空間。這可讓執行個體將日誌資料傳送至 CloudWatch Logs。若要將相同的日誌資料傳送至不同的位置,您可以為每個 ID 新增具有唯一 IDs(例如 "CloudWatchLogs2" 和 CloudWatchLogs3") 和不同區域的其他區段。
設定將日誌資料傳送至 CloudWatch 日誌的設定
-
在 JSON 檔案中,找到
CloudWatchLogs
區段。{ "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" } },
-
將
AccessKey
和SecretKey
欄位保留空白。您可以使用 IAM角色設定憑證。 -
針對
Region
,輸入日誌資料要送往的區域 (例如,us-east-2
)。 -
針對
LogGroup
,輸入您日誌群組的名稱。此名稱會出現在主控台的 CloudWatch日誌群組畫面上。 -
針對
LogStream
,輸入目的地日誌串流。此名稱會出現在 CloudWatch 主控台的日誌群組 > 串流畫面上。若使用
{instance_id}
(預設值),日誌串流名稱則為此執行個體的執行個體 ID。如果您指定不存在的日誌串流名稱, CloudWatch Logs 會自動為您建立該名稱。您可以使用常值字串、預先定義的變數
{instance_id}
、{hostname}
和{ip_address}
,或是組合這些項目,來定義日誌串流名稱。
步驟 3:設定要傳送的資料
您可以將事件日誌資料、Windows 的事件追蹤 (ETW) 資料和其他日誌資料傳送至 CloudWatch 日誌。
將 Windows 應用程式事件日誌資料傳送至 CloudWatch Logs
-
在 JSON 檔案中,找到
ApplicationEventLog
區段。{ "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
-
針對
Levels
,指定要上傳訊息的類型。您可以指定下列其中一個值:-
1
- 僅上傳錯誤訊息。 -
2
- 僅上傳警告訊息。 -
4
- 僅上傳資訊訊息。
您可以將值組合,以包含多個類型訊息。例如,值為
3
會上傳錯誤訊息 (1
) 和警告訊息 (2
)。值為7
會上傳錯誤訊息 (1
)、警告訊息 (2
) 和資訊訊息 (4
)。 -
將安全日誌資料傳送至 CloudWatch 日誌
-
在 JSON 檔案中,找到
SecurityEventLog
區段。{ "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
-
針對
Levels
,輸入7
以上傳所有訊息。
將系統事件日誌資料傳送至 CloudWatch 日誌
-
在 JSON 檔案中,找到
SystemEventLog
區段。{ "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
-
針對
Levels
,指定要上傳訊息的類型。您可以指定下列其中一個值:-
1
- 僅上傳錯誤訊息。 -
2
- 僅上傳警告訊息。 -
4
- 僅上傳資訊訊息。
您可以將值組合,以包含多個類型訊息。例如,值為
3
會上傳錯誤訊息 (1
) 和警告訊息 (2
)。值為7
會上傳錯誤訊息 (1
)、警告訊息 (2
) 和資訊訊息 (4
)。 -
將其他類型的事件日誌資料傳送至 CloudWatch 日誌
-
在 JSON 檔案中,新增 區段。每個區段必須有唯一的
Id
。{ "Id": "
Id-name
", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name
", "Levels": "7" } }, -
針對
Id
,輸入名稱代表要上傳的日誌 (例如,WindowsBackup
)。 -
針對
LogName
,輸入要上傳日誌的名稱。您可以搜尋日誌的名稱,如下所示。-
開啟事件檢視器。
-
在導覽窗格中,選擇 Applications and Services Logs (應用程式與服務日誌)。
-
導覽至日誌,然後選擇 Actions (動作)、Properties (屬性)。
-
-
針對
Levels
,指定要上傳訊息的類型。您可以指定下列其中一個值:-
1
- 僅上傳錯誤訊息。 -
2
- 僅上傳警告訊息。 -
4
- 僅上傳資訊訊息。
您可以將值組合,以包含多個類型訊息。例如,值為
3
會上傳錯誤訊息 (1
) 和警告訊息 (2
)。值為7
會上傳錯誤訊息 (1
)、警告訊息 (2
) 和資訊訊息 (4
)。 -
將 Windows 資料的事件追蹤傳送至 CloudWatch 日誌
ETW (Event Tracing for Windows) 提供了一個高效且詳細的記錄機制,應用程式可以寫入日誌。每個 ETW 都由工作階段管理員控制,該管理員可以啟動和停止記錄工作階段。每個工作階段都有提供者和一個或多個使用者。
-
在 JSON 檔案中,找到
ETW
區段。{ "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
-
針對
LogName
,輸入要上傳日誌的名稱。 -
針對
Levels
,指定要上傳訊息的類型。您可以指定下列其中一個值:-
1
- 僅上傳錯誤訊息。 -
2
- 僅上傳警告訊息。 -
4
- 僅上傳資訊訊息。
您可以將值組合,以包含多個類型訊息。例如,值為
3
會上傳錯誤訊息 (1
) 和警告訊息 (2
)。值為7
會上傳錯誤訊息 (1
)、警告訊息 (2
) 和資訊訊息 (4
)。 -
將自訂日誌 (任何文字型日誌檔案) 傳送至 CloudWatch 日誌
-
在 JSON 檔案中,找到
CustomLogs
區段。{ "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" } },
-
針對
LogDirectoryPath
,輸入在執行個體上存放日誌的路徑。 -
針對
TimestampFormat
,輸入要使用的時間戳記格式。如需支援值的詳細資訊,請參閱 上的自訂日期和時間格式字串主題MSDN。 重要
您的原始日誌檔在每個日誌行的開始都必須有時間戳記,且在時間戳記後必須接著一個空格。
-
對於
Encoding
,輸入要使用的檔案編碼 (例如 UTF-8)。如需支援值的清單,請參閱 上的編碼類別主題MSDN。 注意
使用編碼名稱,而非顯示名稱。
-
(選用) 針對
Filter
,輸入日誌名稱的前綴。將此參數留白,以監控所有檔案。如需支援值的詳細資訊,請參閱 上的FileSystemWatcherFilter 屬性主題MSDN。 -
(選用) 針對
CultureName
,輸入要記錄時間戳記的地區設定。若CultureName
留空,其會預設為與 Windows 執行個體目前使用的相同地區設定。如需詳細資訊,請參閱 上產品行為主題中資料表中的 Language tag
欄MSDN。注意
不支援
div
、div-MV
、hu
和hu-HU
值。 -
(選用) 針對
TimeZoneKind
,請輸入Local
或UTC
。您可以設定此以在日誌時間戳記未包含任何時區資訊時提供時區資訊。如果此參數保留空白,且您的時間戳記不包含時區資訊, CloudWatch 則Logs 會預設為本機時區。如果您的時間戳記已包含時區資訊,則會忽略此參數。 -
(選用) 針對
LineCount
,輸入標頭中的行數,以辨識日誌檔案。例如,IIS日誌檔案具有幾乎相同的標頭。您可以輸入5
,這會讀取日誌檔標頭的前三行來進行辨識。在IIS日誌檔案中,第三行是日期和時間戳,但不一定保證日誌檔案之間的時間戳記會有所不同。因此,我們建議包括至少一行實際的日誌資料,做為用來唯一辨識日誌檔的指紋。
將IIS日誌資料傳送至 CloudWatch 日誌
-
在 JSON 檔案中,找到
IISLog
區段。{ "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" } },
-
對於
LogDirectoryPath
,輸入存放個別網站IIS日誌的資料夾 (例如C:\inetpub\logs\LogFiles\W3SVC
)。n
注意
只支援 W3C 日誌格式。IIS不支援 NCSA、 和 自訂格式。
-
針對
TimestampFormat
,輸入要使用的時間戳記格式。如需支援值的詳細資訊,請參閱 上的自訂日期和時間格式字串主題MSDN。 -
對於
Encoding
,輸入要使用的檔案編碼 (例如 UTF-8)。如需支援值的詳細資訊,請參閱 上的編碼類別主題MSDN。 注意
使用編碼名稱,而非顯示名稱。
-
(選用) 針對
Filter
,輸入日誌名稱的前綴。將此參數留白,以監控所有檔案。如需支援值的詳細資訊,請參閱 上的FileSystemWatcherFilter 屬性主題MSDN。 -
(選用) 針對
CultureName
,輸入要記錄時間戳記的地區設定。若CultureName
留空,其會預設為與 Windows 執行個體目前使用的相同地區設定。如需支援值的詳細資訊,請參閱 上產品行為主題中資料表中的 Language tag
欄MSDN。注意
不支援
div
、div-MV
、hu
和hu-HU
值。 -
(選用) 針對
TimeZoneKind
,輸入Local
或UTC
。您可以設定此以在日誌時間戳記未包含任何時區資訊時提供時區資訊。如果此參數保留空白,且您的時間戳記不包含時區資訊, CloudWatch 則Logs 會預設為本機時區。如果您的時間戳記已包含時區資訊,則會忽略此參數。 -
(選用) 針對
LineCount
,輸入標頭中的行數,以辨識日誌檔案。例如,IIS日誌檔案具有幾乎相同的標頭。您可以輸入5
,這會讀取日誌檔標頭的前五行來進行辨識。在IIS日誌檔案中,第三行是日期和時間戳,但不一定保證日誌檔案之間的時間戳記會有所不同。因此,我們建議包括至少一行實際的日誌資料,以唯一辨識日誌檔的指紋。
步驟 4:設定流程控制
每個資料類型必須擁有在 Flows
區段中的相對應目的地。例如,若要將自訂日誌、ETW日誌和系統日誌傳送至 CloudWatch 日誌,請(CustomLogs,ETW,SystemEventLog),CloudWatchLogs
新增至 Flows
區段。
警告
加入無效的步驟會阻礙流程。例如,如果新增磁碟指標步驟,但執行個體沒有磁碟,則流程中的所有步驟都會遭到封鎖。
您可以將相同的日誌檔傳送到多個目的地。例如,如果要將應用程式日誌傳送到您在 CloudWatchLogs
區段中所定義的兩個不同目的地,請在 Flows
區段中加入 ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)
。
設定流程控制
-
在
AWS.EC2.Windows.CloudWatch.json
檔案中,找到Flows
區段。"Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
-
針對
Flows
,新增要上傳的每個資料類型 (例如,ApplicationEventLog
) 及其目的地 (例如,CloudWatchLogs
)。
步驟 5:儲存JSON內容
您現在已完成JSON檔案的編輯。進行儲存,並將檔案內容貼到另一個視窗中的文字編輯器。您將需要此程序在後續步驟中的檔案內容。
建立 Systems Manager IAM的角色
當您使用 Systems Manager Run Command 時,需要執行個體憑證IAM的角色。此角色可讓 Systems Manager 在執行個體上執行動作。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的設定 Systems Manager 的安全性角色。如需有關如何將IAM角色連接至現有執行個體的資訊,請參閱 Amazon EC2使用者指南 中的將IAM角色連接至執行個體。
驗證 Systems Manager 先決條件
在您使用 Systems Manager Run Command 設定與 CloudWatch Logs 的整合之前,請確認您的執行個體符合最低需求。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 Systems Manager 先決條件。
驗證網際網路存取
您的 Amazon EC2 Windows Server 執行個體和受管執行個體必須具有傳出網際網路存取權,才能將日誌和事件資料傳送至 CloudWatch。如需如何設定網際網路存取的詳細資訊,請參閱 Amazon VPC使用者指南 中的網際網路閘道。
使用 Systems Manager Run Command 啟用 CloudWatch 日誌
Run Command (執行指令) 可讓您隨需管理執行個體的組態。您指定 Systems Manager 文件、指定參數,然後在一或多個執行個體上執行命令。執行個體上的SSM代理程式會處理 命令,並依指定設定執行個體。
使用 Run Command 設定與 CloudWatch Logs 的整合
-
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,選擇 執行命令。
-
選擇 Run a command (執行指令)。
-
針對命令文件 ,選擇 AWS-ConfigureCloudWatch。
-
針對目標執行個體 ,選擇要與 CloudWatch Logs 整合的執行個體。如果執行個體未出現於此清單中,可能是無法針對 Run Command 進行設定。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的 Systems Manager 先決條件。
-
針對 Status (狀態),請選擇 Enabled (啟用)。
-
對於屬性 ,複製並貼上您在先前任務中建立JSON的內容。
-
完成填寫剩下的選填欄位,然後選擇 Run (執行)。
使用下列程序,在 Amazon EC2主控台中檢視命令執行的結果。
在主控台中檢視指令輸出
-
選取指令。
-
選擇 Output (輸出) 索引標籤。
-
選擇 View Output (檢視輸出)。此指令輸出頁面會顯示指令執行的結果。