1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerのコンテナー(debian)にCloudWatch-Agentをインストール

Last updated at Posted at 2021-06-22

コンテナ内に「CloudWatch-Agent」をインストールし、各種ログを収集出来ます。

Dockerfile

ENV RUN_IN_CONTAINER=True

# aws設定
RUN mkdir -p /root/.aws/ \
    && { \
      echo '[profile AmazonCloudWatchAgent]'; \
      echo 'region = ap-northeast-1'; \
    } > /root/.aws/config \
    && { \
      echo '[AmazonCloudWatchAgent]'; \
      echo 'aws_access_key_id = xxx'; \
      echo 'aws_secret_access_key = xxx'; \
    } > /root/.aws/credentials

# CloudWatch-Agentのインストール
RUN mkdir -p /usr/share/man/man1/ \
    && apt-get install -y collectd \
    && curl https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb -o /tmp/amazon-cloudwatch-agent.deb \
    && dpkg -i -E /tmp/amazon-cloudwatch-agent.deb \
    && rm -f /tmp/amazon-cloudwatch-agent.deb

# CloudWatch-Agentの設定
# AWS Fargate?: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
# docker: /etc/cwagentconfig
RUN { \
      echo '{'; \
      echo '  "agent": {'; \
      echo '    "metrics_collection_interval": 60,'; \
      echo '    "run_as_user": "root"'; \
      echo '  },'; \
      echo '  "logs": {'; \
      echo '    "logs_collected": {'; \
      echo '      "files": {'; \
      echo '        "collect_list": ['; \
      echo '          {'; \
      echo '            "file_path": "/var/log/test/test_*/*.log",'; \
      echo '            "log_group_name": "testgroup",'; \
      echo '            "log_stream_name": "access"'; \
      echo '          }'; \
      echo '        ]'; \
      echo '      }'; \
      echo '    }'; \
      echo '  },'; \
      echo '  "metrics": {'; \
      echo '    // いろいろと設定'; \
      echo '  }'; \
      echo '}'; \
    } > /etc/cwagentconfig

# いろいろな立ち上げ処理を行う
RUN { \
        echo '#!/bin/bash'; \
        echo "nohup /opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent > /dev/null 2> /dev/null &"; \
    } > /usr/local/bin/app.sh

ENTRYPOINT ["/usr/local/bin/app.sh"]
  • ルートユーザで動作をさせる想定ですので、AWSの認証情報を/root/.aws/に配置しています。
  • debianでcollectdをインストールする際、/usr/share/man/man1/を前もって作成しておく必要があります。
    作成をせずに実行するとインストール途中でエラーが発生します。
    エラーが発生した場合collectd-coreを削除する必要があります。
    削除はremovepurgeでライブラリを削除してください。
    ※削除しないとapt-getで何もインストールが出来なくなります。
  • /etc/cwagentconfigamazon-cloudwatch-agent-config-wizardで作成できます。
    CloudWatch-Agentをインストールするとamazon-cloudwatch-agent-config-wizardは使用できますので、適当に調整してください。
  • 収集するログのfile_pathはアスタリスクが使用可能です。
  • start-amazon-cloudwatch-agentで実行できますのでバックグラウンドで起動します。

docker-compose.yml

docker-compose.yml
version: '3.7'
services:
  test:
    #
    # いろいろな設定
    #
    ports:
      # CloudWatch-Agentのデフォルトポート
      - 8125:8125

※ポートは変更できます

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?