逆引きマニュアル: AWS: CloudWatch LogsをEC2以外のLinuxサーバに入れる方法

投稿日: 更新日:

やりたいこと

オンプレミスのLinuxサーバにCloudWatch Logsの設定をする方法です。 記事中ではオンプレミスとなっていますが、EC2以外のサーバが対象です。

前提条件

CentOS 7で確認しています。

手順

SSMエージェントを入れる

以下の記事を参考にしてください。

このサーバに入れるときは、registerに3分半ほどかかりました。

ロールを作成

ロールはデフォルトで以下のポリシーが定義されています。

  • ポリシー名: CloudWatchAgentServerPolicy
  • ポリシーARN: arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

しかし、これだけではSystems Managerへの書き込み権限がないので、 書き込み権限を追加したポリシーを作成します。

以下の記事を参考にしました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CloudWatchAgentAdminPolicy",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "cloudwatch:PutMetricData",
                "ec2:DescribeTags",
                "logs:DescribeLogStreams",
                "logs:CreateLogGroup",
                "logs:PutLogEvents",
                "ssm:GetParameter",
                "ssm:PutParameter"
            ],
            "Resource": "*"
        }
    ]
}

エージェントのインストール

以下の方法で入力すると、カスタムメトリクスがたくさんできるので注意

  1. IAMユーザを作成する。
  2. エージェントをインストール(詳細は開始方法: CloudWatch エージェントを最初のサーバーにインストールする - Amazon CloudWatch参照)
    1. wgetでダウンロード
    2. unzip
    3. install.shを流す
      • 何も表示されずに終了します。
      • /opt/aws/amazon-cloudwatch-agent/ 以下にインストールされます。
    4. common-config.tomlを編集する箇所は通常不要です。
    5. ~/.aws/configと~/.aws/credentialsに以下のエントリがあるようにする。
      • セクション: [AmazonCloudWatchAgent]
      • キー: aws_access_key_id, aws_secret_access_key, region
  3. 設定ファイルを作成(詳細はCloudWatch エージェント設定ファイルを作成する - Amazon CloudWatch参照)
    1. amazon-cloudwatch-agent-config-wizardを実行
      • OSを選ぶ: Linux/Windows
      • ホストのタイプ: EC2/オンプレミス
      • CPUやメモリのモニタリングをするか?: はい/いいえ
      • コア単位のCPUモニタリングをするか?: はい/いいえ
      • 計測単位は?: 1秒/10秒/30秒/60秒
      • 設定は?: Basic/Standard/Advanced/None
        • これは意味が分かりませんでした。
      • 上の設定(JSONで出力される)で問題ないか?: はい/いいえ
      • CloudWatch Log Agentの設定ファイルがあるか?: はい/いいえ
        • 初回は「いいえ」になると思います。
      • 全てのログファイルをモニタリングするか?: はい/いいえ
      • ログファイルのパス:
        • /var/logで良さそう?
      • ロググループ名
      • 追加でモニタリングするログはあるか?
      • 設定をSSMパラメータストアに入れるか?
      • 設定をどのような名前でストアに入れるか?
        • 何でもいいようですが、AmazonCloudWatch-で始まる方が良さそうです。
      • パラメータストアを保存するリージョンは?
        • 東京リージョンなのでap-northeast-1
      • AWSのアクセスキー

起動

  1. EC2のSYSTEMS MANAGER 共有リソース -> マネージドインスタンス
  2. コマンドを実行
  3. AmazonCloudWatch-ManageAgentを選択(下の方にある)
  4. ターゲットを選択
  5. Action: configure
  6. Mode: onPremise
  7. Optional Configuration Location: AmazonCloudWatch-から始まる設定したものを入れる。
  8. Runを押す

公式サイト

マニュアル