【CloudWatch】ロググループの保存期間一括変更手順

Tags
Amazon CloudWatch
AWS
Linux
Release Date
2020/7/2
ID
23

■ 目次


 

1. はじめに

  • Git Bash では動きません
  • jqコマンド は使っていません

 

2. 事前準備

参考記事

 

3. 環境構築

3.1. 作業ディレクトリとファイルの準備

  • ディレクトリを作成
    • work
  • ファイルを作成
    • Retention_Period_Change.sh
mkdir work
cd ./work
touch Retention_Period_Change.sh
Shell
 

3.2. 実行ファイルの準備

好きなエディターで Retention_Period_Change.sh を編集
#!/bin/bash# -------------------------------------------------------------------
## ロググループ一覧取得/Get LogGroupName List
LOGLIST=TESTlog.tmp

aws logs describe-log-groups --profile TEST | \
    grep "logGroupName" | \
    awk '{print substr($0, 30)}' | \
    sed -e 's/\"\,//g' >> TESTlog.tmp
# -------------------------------------------------------------------

# -------------------------------------------------------------------
## 保存期間/Shelf life
TEST=1
PRE=3
PRO=5
retention_in_days=$TEST

while read line
do
    LISTS="$line"
    aws logs put-retention-policy \
    --profile TEST \
    --log-group-name ${LISTS} \
    --retention-in-days ${retention_in_days}
done < ${LOGLIST}
# -------------------------------------------------------------------
Shell
 

3.3. 【ロググループ一覧取得】 解説

  • grep で logGroupName 行だけを取得
  • awk で最初の空白から”(ダブルクォート)開始まで削除
  • sed で末尾の “,(ダブルクォートとカンマ) を削除
  • TESTlog.tmp に書き込み
aws logs describe-log-groups --profile TEST | \
    grep "logGroupName" | \
    awk '{print substr($0, 30)}' | \
    sed -e 's/\"\,//g' >> TESTlog.tmp
Shell
 

3.4. 保存期間の指定

開発/検証/本番環境で別ける時にご利用ください。
## 保存期間/Shelf life
TEST=1
PRE=3
PRO=5
retention_in_days=$TEST
Shell