目次
RDS MySQLのログをCloudWatch Logsに出力する
こんにちは、SRE課栩野です。
今回はRDS MySQLのログ出力に関する小ネタです。
MySQLから出力される各種ログをCloudWatch Logsに出力したかった
のですが、MySQLのパラメータ「log_output」のデフォルト設定のせいで
つまづいたので、同じのような人の助けになれば...
MySQLのログがCloudWatch Logsに出力されない...
MySQLのエラーログ、一般ログ、スロークエリログの3つのログを
CloudWatch Logsに出力しようと、以下2つの設定を行いました。
- 対象DBでCloudWatch Logsへのログ出力設定
対象DBを選択し、DBインスタンスの変更画面から以下の通り
CloudWatch Logsに出力したいログ3つにチェックを入れました。
- MySQLパラメータの設定
カスタムパラメータグループを作成し、欲しいログが出力されるよう
以下の設定を有効化しました。
※検証のためlong_query_timeは0に設定してます。
この状態で上手く行くと思い、いくつか適当なクエリを実行しましたが
エラーログだけしかCloudWatch Logsにロググループが作成されておらず...
ログが出力されない原因
調べたところ、一般ログとスロークエリログを外に出力したい場合
最初に紹介した「log_output」というMySQLのパラメータを変更する
必要がありました。
デフォルトでは「TABLE」になっているのですが、この場合だと
mysql配下にあるテーブルに対してログが出力されてしまいます。
この値を「FILE」に変更することによって、ファイルシステムに対して
ログが出力できるようになるようで、それによりCloudWatch Logsに
出力することが可能になるようでした。
CloudWatch Logsへの出力再チャレンジ
設定しているカスタムパラメータグループを選択し
「log_output」の値を「TABLE」から「FILE」に変更します。
適当なクエリを再度実行し、CloudWatch Logsを確認しにいくと...
無事に欲しかった3つのロググループが作成され、ログが出力されていました!
めでたしです。
CloudWatch Logsにログを出力する場合は、保持期間が「失効しない」だと
ログファイルが肥大化し、余計な費用が発生するので、適切な保持期間に変更
しておくことをおすすめします。
以上、今回はRDS MySQLのログ出力に関する小ネタでした。
参照
運用サービス課 課長
運用・監視の設計から導入まで、運用サービスを担当してます。
運用監視やセキュリティ関連の話題に興味があるので、そのあたりのブログを多めで投稿していきたいと思ってます。
LINK
クラウドベリージャム:プロフィールページ