2017-03-24 53 views
1

我試圖將EC2啓動日誌從基於我2016年贏得的EC2實例轉發到cloudwatch。AWS EC2在cloudwatch windows 2016中啓動日誌image

由於某種原因,我無法看到此特定類別的日誌組。

這裏的例子我AWS.EC2.Windows.CloudWatch.json

{ 
    "IsEnabled": true, 
    "EngineConfiguration": { 
    "PollInterval": "00:00:15", 
    "Components": [ 
     { 
     "Id": "Ec2Config", 
     "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", 
     "Parameters": { 
      "LogDirectoryPath": "C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Log", 
      "TimestampFormat": "yyyy-MM-ddTHH:mm:ss.fffZ:", 
      "Encoding": "UTF-8", 
      "Filter": "UserdataExecution.log", 
      "CultureName": "en-US", 
      "TimeZoneKind": "UTC" 
     } 
     }, 
     { 
     "Id": "EC2ConfigSink", 
     "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", 
     "Parameters": { 
      "Region": "eu-west-1", 
      "LogGroup": "/my-customer/deployment/ec2config-userdata", 
      "LogStream": "ec2config-userdata" 
     } 
     } 
     ... 
     I have a few more definitions in this file 
     ...], 
    "Flows": { 
     "Flows": 
     [ 
     "Ec2Config,EC2ConfigSink", 
     ... other references here 
     ] 
    } 
} 

CloudWatch的代理程序開始,並且不會報告任何錯誤,我可以看到其他來源的數據(一些應用程序日誌文件 - 我跳過了定義故意)

這意味着cloudwatch配置文件是正確的,並將其應用/放置在正確的目錄中。

日誌通過沒有問題,除了EC2發射日誌。

我想知道是否有人遇到這個問題?它可以在基於Windows 2012的映像上完美運行

回答

0

顯然,SSM代理啓動 EC2啓動執行UserData腳本。我可以從SSM Agent's日誌文件修改時間戳中看到它。

因此,在EC2 Launch期間沒有發生日誌轉發。 當SSM代理程序啓動並加載cloudwatch插件時,日誌文件已經填滿了條目並且永遠不會更改(壁紙日誌是唯一例外)因此,它們永遠不會在cloudwatch控制檯中結束。

還有的是很多在AWS上側實現的變化:他們切換到.NET的核心,去掉EC2 config service和移動日誌轉發邏輯SSM Agent(CloudWatch的插件)的Windows 2016-based的AMI

它看起來像行爲已更改相當顯着,因此無法獲得cloudwatch中的EC2 launch logs(僅當使用AWS工具集時)

基本上,我們必須堅持只使用我們的應用程序日誌,這是非常不幸的。我們依靠EC2 launch日誌來查看實例是否開始&成功執行用戶數據。