2

ec2 windows server-R2 で CloudWatch Logs をセットアップしましたが、AWS コンソールに表示されません。(私の IAM ユーザーには FullAccess があります) https://aws.amazon.com/blogs/devops/using-cloudwatch-logs-with-amazon-ec2-running-microsoft-windows-server/

私の CloudWatch json ファイルは次のようになります。

{
  "EngineConfiguration": {
    "PollInterval": "00:00:15",
    "Components": [
      {
        "Id": "ApplicationEventLog",
        "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "LogName": "Application",
          "Levels": "1"
        }
      },
      {
        "Id": "SystemEventLog",
        "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "LogName": "System",
          "Levels": "7"
        }
      },
      {
        "Id": "SecurityEventLog",
        "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "LogName": "Security",
          "Levels": "7"
        }
      },
      {
        "Id": "ETW",
        "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "LogName": "Microsoft-Windows-WinINet/Analytic",
          "Levels": "7"
        }
      },
      {
        "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": "3"
        }
      },
      {
        "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"
        }
      },
      {
        "Id": "PerformanceCounter",
        "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "CategoryName": "Memory",
          "CounterName": "Available MBytes",
          "InstanceName": "",
          "MetricName": "Memory",
          "Unit": "Megabytes",
          "DimensionName": "",
          "DimensionValue": ""
        }
      },
      {
        "Id": "CloudWatchLogs",
        "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "AccessKey": "accesskey",
          "SecretKey": "secretkey",
          "Region": "eu-west-1",
          "LogGroup": "Default-Log-Group",
          "LogStream": "{instance_id}"
        }
      },
      {
        "Id": "CloudWatch",
        "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch",
        "Parameters": {
          "AccessKey": "accesskey",
          "SecretKey": "secretkey",
          "Region": "eu-west-1",
          "NameSpace": "Windows/Default"
        }
      }
    ],
    "Flows": {
      "Flows": [
        "(ApplicationEventLog,SystemEventLog),CloudWatchLogs",
        "PerformanceCounter,CloudWatch"
      ]
    }
  }
}

私が見つけたように、AWS コンソールに表示するには SSM もインストールする必要がありますか?! このリンクに基づいて SSM のインストール プロセスを実行しています: http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/managed-instances.html#install-managed-win

しかし、ファイルをダウンロードできません。詳細は次のとおりです。

PS C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell> $dir = $env:TEMP + "\ssm"
> New-Item -ItemType directory -Path $dir
> cd $dir
> $username = admin
> $password = 1234
> $wc = New-Object System.Net.Networkcredential($username, $password)
> $wc.DownloadFile("https://amazon-ssm-region.s3.amazonaws.com/latest/windows_amd64/AmazonSSMAgentSetup.exe", $dir + "\AmazonSSMAgentSetup.exe")



You cannot call a method on a null-valued expression.

At line:1 char:1

+ $wc.DownloadFile("https://amazon-ssm-    region.s3.amazonaws.com/latest/windows_amd64 ...

+ 

  + CategoryInfo  : InvalidOperation: (:) [], RuntimeException

  + FullyQualifiedErrorId : InvokeMethodOnNull

問題が何であるかについて何か考えはありますか?

4

2 に答える 2

4

注:検索エンジンからここに来て、Windows Server 2016 上の EC2Launch/EC2Config 4.x に関するヘルプを探している場合は、関連する変更についてこのドキュメントを参照してください。このガイドは、古い Windows サーバー上の EC2Config 3.x Windows サービスを念頭に置いて書かれており、与えられたアドバイスは EC2Launch に直接対応していない場合があります。

お使いの EC2Config のバージョンをメモし、バージョン固有のアドバイスについては、次のドキュメントを参照してください。

3.x から 4.x に移行するユーザーの場合: 具体的には次のことを行う必要があります。

  • JSON ファイルに追加"IsEnabled":trueします。AWS.EC2.Windows.CloudWatch.json
  • このファイルを からC:\Program Files\Amazon\Ec2ConfigService\Settings\に移動しますC:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\

1 つの質問に対して多くの質問が寄せられているため、いくつかに分けて回答します。

1) あなたがフォローしているガイドは、あなたのユースケース向けではありません

リンク先のドキュメントは、EC2 インスタンスとオンプレミス マシンの両方が連携する環境など、ハイブリッド環境で SSM エージェントをセットアップするためのものです。オンプレミスのマシンではなく EC2 インスタンスで作業しているため、このドキュメントは関係ありません。これにより、次の仮定が変更されます。

  • SSM エージェントを明示的にダウンロードする代わりに、EC2Config をダウンロードする必要があります。(手順 3 を参照)
  • 関連するすべてのアクセス許可を持つ IAM ユーザーではなく、インスタンスにアタッチされたIAM インスタンス プロファイルが必要です。(手順 4 を参照)

2) EC2 Run Commandで SSM エージェントを確認する

ドキュメントに従って、SSM エージェントがすでにインストールされている場合があります。

SSM エージェントは、Windows Server 2016 インスタンス、および 2016 年 11 月以降に公開された Windows Server 2003-2012 R2 AMI から作成されたインスタンスにデフォルトでインストールされます。

AWS Web コンソールで確認するには、に移動しEC2 > Commands > Command History > Run A Commandます。

ここに画像の説明を入力

「コマンドの実行」UI で、「インスタンスの選択」ボタンを探します。これにより、SSM エージェントを実行している実行中のインスタンスのドロップダウンが開きます。

ここに画像の説明を入力

あなたのインスタンスがここにリストされている場合は、おめでとうございます! すでに SSM エージェントがインストールされています。手順 3 をスキップします。

3) CloudWatch Logs 用の SSM エージェントのセットアップ

EC2Config の最新バージョンをインストールする必要があります。SSM エージェントは EC2Config にバンドルされており、一緒にインストールされます。これは対話的に、または PowerShell を使用して実行できます (この例では v5 が必要です)。

iwr https://ec2-downloads-windows.s3.amazonaws.com/EC2Config/EC2Install.zip -UseBasicParsing -OutFile Ec2Config.zip
Expand-Archive Ec2Config.zip
.\Ec2Config\Ec2Install.exe /install

インストール後、EC​​2 Config Service が再起動されます。先に進み、インスタンスも再起動します ( EC2Config でパスワードを管理している場合、その設定を再度有効にしないと、再起動後にコンソールからパスワードを取得できない場合があります。念のため、どこかにコピーしてください! )、ステップ 2 をもう一度実行して、インスタンスが EC2 Run Command で使用できることを確認します。特典の追加: 今後、EC2 Run Command から EC2Config と SSM エージェントを更新できるようになります。

4) IAM インスタンスプロファイルの IAM ロールに十分な権限があることを確認します

AWS のドキュメントでは、これについてここで説明しているため、もう一度読み直すことはしません。

EC2 インスタンスにインスタンス プロファイルが現在アタッチされていない場合は、AMI を作成し、作成した新しい AMI を使用し、十分な権限を持つ IAM ロールを使用することを除いて、現在の構成とすべて同じ構成で新しいインスタンスを起動する必要があります。 .

5) CloudWatch Config で AWS 認証情報を明示的に指定する必要はありません

認証情報は IAM インスタンス プロファイルから継承されるため、AccessKey と SecretKey は空白のままにする必要があります。

{
    "Id": "CloudWatchLogs",
    "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
    "Parameters": {
        "AccessKey": "",
        "SecretKey": "",
        "Region": "eu-west-1",
        "LogGroup": "MyLogGroup",
        "LogStream": "{instance_id}"
    }
},
{
    "Id": "CloudWatch",
    "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch",
    "Parameters": 
    {
        "AccessKey": "",
        "SecretKey": "",
        "Region": "eu-west-1",
        "NameSpace": "MyMetricsNameSpace"
    }
}

構成ファイルに変更を加えた後、EC2Config (またはワークフローで簡単な場合はインスタンス自体) を再起動すると、変更が適用されます。

6) トラブルシューティング

CW へのローカル ログの送信に関連するログは、インスタンスの次の場所にありますC:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt。初めてこれを構成したとき、これは私にとってかけがえのないものでした。

ドキュメントには、一般的な問題に対するガイダンスも含まれています。


それ以外は、私にはすべて問題ないように見えます。最初に Windows イベント ログの設定に取り組み、次にメトリクス、次にカスタム ログの設定に取り組みます。

于 2016-11-19T16:20:17.503 に答える
0

Cloudwatch メトリクスで多くの問題が発生しましたが、最終的にそれらのほとんどを把握しました。

メトリックを受け取るに"IsEnabled":trueは、次のようにファイルの先頭に追加する必要があります。

{
    "IsEnabled": true
    "EngineConfiguration": {
        "PollInterval": "00:00:15",
        "Components": [

また、ここから EC2Config を最新バージョンに更新する必要があります。

于 2017-02-23T17:50:49.850 に答える