CloudWatchのログ確認は管理画面からもできますが、GUIよりCUIで検索したいときがあります。awslogsを利用するとCUIでログ確認ができます。ここでは、awslogsの利用方法について確認します。
目次
インストール
pip
経由でインストールできます。
$ python -V
Python 3.6.5
$
$ pip -V
pip 9.0.3 from /Users/xxxx/.pyenv/versions/3.6.5/lib/python3.6/site-packages (python 3.6)
$ pip install awslogs
ヘルプで使い方を確認
--helpオプション
で使い方を確認できます。
$ awslogs --help
usage: awslogs [ get | groups | streams ]
positional arguments:
{get,groups,streams}
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
get
groups
streams
の引数を指定して実行できるようです。
さらに各引数を指定したときの使い方を確認するには、以下のようにします。
$ awslogs groups --help
usage: awslogs [ get | groups | streams ] groups [-h]
[--aws-access-key-id AWS_ACCESS_KEY_ID]
[--aws-secret-access-key AWS_SECRET_ACCESS_KEY]
[--aws-session-token AWS_SESSION_TOKEN]
[--profile AWS_PROFILE]
[--aws-region AWS_REGION]
[-p LOG_GROUP_PREFIX]
List groups
optional arguments:
-h, --help show this help message and exit
--aws-access-key-id AWS_ACCESS_KEY_ID
aws access key id
--aws-secret-access-key AWS_SECRET_ACCESS_KEY
aws secret access key
--aws-session-token AWS_SESSION_TOKEN
aws session token
--profile AWS_PROFILE
aws profile
--aws-region AWS_REGION
aws region
-p LOG_GROUP_PREFIX, --log-group-prefix LOG_GROUP_PREFIX
List only groups matching the prefix
ロググループ一覧表示
( awslogs groups )
CloudWatchのロググループ一覧を表示するには以下コマンドを実行します。
( AWS_PROFILE
を指定してます。)
awslogs groups \
--profile AWS_PROFILE
ログストリーム一覧表示
( awslogs streams )
指定LOG_GROUP_NAME
のログストリーム一覧を表示するには以下コマンドを実行します。
( AWS_PROFILE
を指定してます。)
awslogs streams LOG_GROUP_NAME \
--profile AWS_PROFILE
ログ内容取得
( awslogs get )
期間指定
--startオプション
を利用して、2時間前以降に発生したログを取得します。
awslogs get LOG_GROUP_NAME \
--start='2h ago' \
--profile AWS_PROFILE
フィルタリング
( フィルタパターンを利用 )
--filter-patternオプション
を利用すると、フィルターパターンによる抽出ができます。
ERROR
Error
WARN
のどれかを含むログを抽出してみます。
awslogs get LOG_GROUP_NAME \
--start='2h ago' \
--filter-pattern='?ERROR ?Error ?WARN' \
--profile AWS_PROFILE
フィルタリング
( grep利用 )
使い慣れたgrepで抽出してみます。
ERROR
Error
WARN
のどれかを含むログを抽出してみます。
awslogs get LOG_GROUP_NAME \
--start='2h ago' \
--profile AWS_PROFILE | grep -e ERROR -e Error -e WARN
グループ名とストリーム名を非表示
ロググループ名とログストリーム名が不要であれば、表示しないようにすることもできます。
awslogs get LOG_GROUP_NAME \
--start='2h ago' \
--filter-pattern='?ERROR ?Error ?WARN' \
--no-group \
--no-stream \
--profile AWS_PROFILE