CloudWatch Logs AgentをインストールしたインスタンスをAMI化する際のメモです。
何度もAMIを取り直したりしないようにまとめました。
状態系ファイルの削除
CloudWatch Logs Agentは/var/awslogs/state
ディレクトリ以下に、状態管理ファイル(設定次第)やら、pidファイルやら、lockファイルを出力します。
初期設定で何も考えずにそのまま使っていると、state_fileが/var/awslogs/state/agent-state
にあったりするので注意が必要です。
[general]
# Path to the CloudWatch Logs agent's state file. The agent uses this file to maintain
# client side state across its executions.
state_file = /var/awslogs/state/agent-state
念のためpidファイル等も残ってないか/var/awslogs/state
以下を確認しておくといいですね。
awslogs.logファイルの削除
awslogs 自体が出力するログファイルですね。
/var/log/awslogs.log
にあります。
awslogs-agent-setup.logファイルの削除
Agentのインストール時のログです。後から追いかけることはなさそうですが、不安であれば残すのも手ですね。
/var/log/awslogs-agent-setup.log
にあります。
CloudWatch Logs で取得しているファイル内容のクリア(または削除)
CloudWatch Logs は複数のログを取得する用途で使われることが多いと思うのですが、
「Apacheのログは削除したけど、 zabbix-agentのログが残ってたー(泣)」ってことがないように、
設定ファイル/var/awslogs/etc/awslogs.conf
を確認し、AMI化した時に不要なログはクリアしておきましょう。
また、ログファイルを削除してしまった場合にありがちですが、ログファイルが無い状態でCloudWatch Logs Agentを起動すると、以下のようにawslogs.logファイルにWARNINGが出力され続けます。
知らない間にawslogs.logの容量がどんどん増えてたなんてことが起こらないようにご注意ください。
2014-08-11 19:29:56,839 - cwlogs.push - WARNING - Thread-1 - No file is found with given path '/var/log/yum.log'.
サービスの自動起動設定
CloudWatch Logs Agentをインストールしただけだと、自動起動の設定はされていません。
[ec2-user@ip-172-20-17-66 ~]$ chkconfig --list | grep awslogs
awslogs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
用途に応じて、ランレベルを変更したり、cloud-initスクリプトもしくはuser-dataでの起動指定が必要になりそうです。
まとめ
CloudWatch Logs Agentをインストールし、AMI化する際に忘れがちなことについてまとめました。
※ AMI化する際に消しておいたほうが良いと思われるファイルは、CloudWatch Logs Agentのインストールに限らず多々ありますが今回は触れていません。
ただの削除対象ファイルの列挙みたいになってしまいましたが、/var/log
以下には結構意識が向くけど、他にも考慮するべき点があるかもよってことで。
ざっくりまとめると、
- Cloudwatch Logs Agent自体に関するファイルは削除する
- 取得するログはクリア(or 削除)する
- サービスの自動起動は、デフォルトでoffになっている
他にもございましたら、教えてください。