0
1

More than 5 years have passed since last update.

[JAWS-UG CLI] CloudWatch Logs:#7 ロググループ/ログストリームの作成 (Trail用)

Last updated at Posted at 2015-05-11

AWS CLIを利用して、CloudWatchLogsのロググループを作成してみます。

前提条件

CloudWatchLogsへの権限

  • CloudWatchLogsに対してフル権限があること。

AWS CLIのバージョン

  • 以下のバージョンで動作確認済

    • AWS CLI 1.7.26
コマンド
aws --version
結果(例)
      aws-cli/1.7.26 Python/2.7.5 Darwin/13.4.0

0. 準備

0.1. リージョンの決定

作成するユーザのデフォルトリージョンを決めます。

(カレントユーザが利用するカレントリージョンも切り変わります。)

コマンド(アイルランドリージョンの場合)
export AWS_DEFAULT_REGION='eu-west-1'

0.2. 変数の確認

プロファイルとリージョンが想定のものになっていることを確認します。

変数の確認
aws configure list
結果(例)
            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile       cloudwatchFull-prjZ-mbp13iamFull-prjZ-mbp13              env    AWS_DEFAULT_PROFILE
      access_key     ****************XXXX shared-credentials-file
      secret_key     ****************XXXX shared-credentials-file
          region                eu-west-1              env    AWS_DEFAULT_REGION

0.3. AWS IDの確認

変数の確認
cat << ETX

        AWS_ID: ${AWS_ID}

ETX

1. 事前作業

1.1. ロググループ名の決定

ロググループ名を決めます。

CloudWatch Logsでは、各種エンティティをprefixで指定するので、prefixを
適宜決めておくのがオススメです。

今回は、prefixを"CloudTrail/"とします。

コマンド
LOG_GROUP_NAME='CloudTrail/DefaultLogGroup'

1.2. 同名のロググループ名の不存在確認

同名のロググループが存在しないことを確認します。

コマンド
aws logs describe-log-groups \
          --log-group-name-prefix ${LOG_GROUP_NAME}
結果
      {
          "logGroups": []
      }

1.3. ログ保持期間の決定

ログの保持期間を決めます。

指定しない場合、無期限に保存されます。

コマンド(2ヶ月保存の場合)
LOG_RETENTION_DAYS='60'

2. ロググループの作成

2.1. ロググループの作成

ロググループを作成します。

変数の確認
cat << ETX

          LOG_GROUP_NAME ${LOG_GROUP_NAME}

ETX
コマンド
aws logs create-log-group \
          --log-group-name ${LOG_GROUP_NAME}
結果(例)
      (戻り値なし)

2.2. ロググループの確認

作成したロググループを確認します。

コマンド
aws logs describe-log-groups \
          --log-group-name-prefix ${LOG_GROUP_NAME}
結果(例)
      {
        "logGroups": [
          {
              "arn": "arn:aws:logs:ap-northeast-1:XXXXXXXXXXXX:log-group:CloudTrail/DefaultLogGroup:*",
              "creationTime": 1430092395471,
              "metricFilterCount": 0,
              "logGroupName": "CloudTrail/DefaultLogGroup",
              "storedBytes": 0
          }
        ]
      }

3. ログ保持期間の設定

3.1. ログ保持期間設定の確認

コマンド
LOG_RETENT_DAYS=`aws logs describe-log-groups --log-group-name-prefix ${LOG_GROUP_NAME} --query 'logGroups[].retentionInDays' --output text` \
        && echo ${LOG_RETENT_DAYS}
結果(例)
      (戻り値なし)

3.2. 保持期間の設定

変数の確認
cat << ETX

            LOG_GROUP_NAME:     ${LOG_GROUP_NAME}
            LOG_RETENTION_DAYS: ${LOG_RETENTION_DAYS}

ETX
コマンド
aws logs put-retention-policy \
          --log-group-name ${LOG_GROUP_NAME} \
          --retention-in-days ${LOG_RETENTION_DAYS}
結果(例)
      (戻り値なし)

3.3. ログ保持期間設定の確認

設定したログ保持期間を確認します。

コマンド
LOG_RETENT_DAYS=`aws logs describe-log-groups --log-group-name-prefix ${LOG_GROUP_NAME} --query 'logGroups[].retentionInDays' --output text` \
        && echo ${LOG_RETENT_DAYS}
結果(例)
      60

3.4. ロググループの確認

作成したロググループを確認します。

コマンド
aws logs describe-log-groups \
          --log-group-name-prefix ${LOG_GROUP_NAME}
結果(例)
      {
        "logGroups": [
          {
              "storedBytes": 0,
              "metricFilterCount": 0,
              "creationTime": 1431298586512,
              "logGroupName": "CloudTrail/DefaultLogGroup",
              "retentionInDays": 60,
              "arn": "arn:aws:logs:eu-west-1:XXXXXXXXXXXX:log-group:CloudTrail/DefaultLogGroup:*"
          }
        ]
      }

4. ログストリームの作成

4.1. ログストリーム名の決定

作成するログストリーム名を決めます。

コマンド
LOG_STREAM_NAME="${AWS_ID}_CloudTrail_${AWS_DEFAULT_REGION}" \
        && echo ${LOG_STREAM_NAME}

作成するログストリーム名と同じ名前のログストリームが存在しないことを確認します。

コマンド
aws logs describe-log-streams \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name-prefix ${LOG_STREAM_NAME}
結果
      {
        "logStreams": []
      }

4.2. ログストリームの作成

ログストリームを作成します。

変数の確認
cat << ETX

        LOG_GROUP_NAME:  ${LOG_GROUP_NAME}
        LOG_STREAM_NAME: ${LOG_STREAM_NAME}

ETX
コマンド
aws logs create-log-stream \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name ${LOG_STREAM_NAME}
結果(例)
      (戻り値なし)

4.3. ログストリームの確認

作成したログストリームを確認します。

コマンド
aws logs describe-log-streams \
        --log-group-name ${LOG_GROUP_NAME} \
        --log-stream-name-prefix ${LOG_STREAM_NAME}
結果(例)
      {
        "logStreams": [
          {
              "creationTime": 1431309653829,
              "arn": "arn:aws:logs:eu-west-1:XXXXXXXXXXXX:log-group:CloudTrail/DefaultLogGroup:log-stream:XXXXXXXXXXXX_CloudTrail_eu-west-1",
              "logStreamName": "XXXXXXXXXXXX_CloudTrail_eu-west-1",
              "storedBytes": 0
          }
        ]
      }

5. 事後作業

ログストリームのARN取得

コマンド
LOG_STREAM_ARN=`aws logs describe-log-streams --log-group-name ${LOG_GROUP_NAME} --log-stream-name-prefix ${LOG_STREAM_NAME} --query 'logStreams[].arn' --output text` \
        && echo ${LOG_STREAM_ARN}
結果(例)
      arn:aws:logs:eu-west-1:XXXXXXXXXXXX:log-group:| CloudTrail/DefaultLogGroup:log-stream:XXXXXXXXXXXX_CloudTrail_eu-west-1

完了

0
1
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
0
1