はじめに
Amazon RDS(for MySQL) のログは fluent-plugin-rds-log というプラグインを利用することで取得することができます。
インストール
1.fluent-plugin-rds-log をインストールするには以下のパッケージを事前にインストールしておく必要があります。
パッケージ
$ sudo yum install gcc
$ sudo yum install mysql-devel
2.パッケージのインストールが完了したらプラグインをインストールします。
プラグイン
$ sudo td-agent-gem install fluent-plugin-rds-log
RDS設定
1.ログを取得するにはRDSのパラメータグループを以下のように設定する必要があります。
log_output:TABLE
slow_query_log:1
general_log:1
conf設定
1.先ずはログを取得するための < source >タグを設定します。
取得設定
<source>
type rds_log
log_type slow
host rds001.cs8xkvdfl8ru.ap-northeast-1.rds.amazonaws.com
username awsuser
password mypassword
refresh_interval 30
auto_reconnect true
tag rds.db001.slow-log
add_host false # add database hostname in record
</source>
今回はスローログを取得するための設定です。一般ログの場合は general_log にします。
host は対象となるRDSで username と password はRDSのアカウントです。
2.次に取得したログを出力する設定です。
出力設定
<match rds.db001.slow-log>
type file
path /var/log/td-agent/rds-slow-log
</match>
3.再起動して反映させたら完了です。
再起動
$ sudo /etc/init.d/td-agent restart
確認
1.ログが出力されているか確認します。
出力確認
$ sudo ls /var/log/td-agent/
buffer rds-slow-log.20170404_1.log td-agent.log
db001 rds-slow-log.20170405.b54c62b71eea28a57 td-agent.log-20170404.gz
rds-slow-log.20170404_0.log rds-slow-log.20170405_0.log td-agent.log-20170405
出力されているのが確認できました。
おわりに
fluent-plugin-rds-log を使うとスローログと一般ログが簡単に取得できて便利です。
ただ、エラーログはこれでは取得できないので、それはやっぱりCLIとか使わないとです。