🍿

Cloudwatch Logs 一括で特定ロググループの保持期間をcloudshell上で変更する

2021/09/07に公開

はじめに

ロググループの保持期間をコンソールから変更していくのが面倒 & 一括で全てのロググループの保持期間を変更するやり方はいくつか見つかったのですが、特定のロググループだけ変更したかったのでコードを書いてみました。

1.変更したいロググループ用のテキストファイル作成

ある程度汎用的に使えるようにしたかったので分けてみました。
今回は「setting_loggroup.txt」という名前のファイルを作成しました。このファイルに変更したいロググループの名前を改行区切りで書いていきます。

setting_loggroup.txt
dammy-loggroup01
dammy-loggroup02
dammy-loggroup03

2. 変更コード

loggroup.py
import boto3
def open_file():
    with open("setting_loggroup.txt") as f:
        l_strip = [s.strip() for s in f.readlines()]
        return l_strip

def setting():
    logs_client = boto3.client('logs')
    group_list = open_file()
    Days = input('Enter retention days : ')
    for log_group in group_list:
        result = logs_client.put_retention_policy(
            logGroupName=log_group,
            retentionInDays=int(Days)
        )
        print(log_group)
    print("----------END----------")
setting()

3. コンソールからCloudshellを起動

起動したら右上の「Actions」→「Upload file」から上の2つのファイルをアップロードします。

4. 実行

python3 loggroup.py

を実行します。
指定できる保持期間は 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653 です。
Python 2.xにはboto3が無いので注意です。

Discussion