【AWS】古いCloudWatch Logsエージェントのアンインストールと設定ファイルの削除について【解決方法】

logsエージェントのアンインストール

こんにちは、Daniel (@daniel__blog) です。

AWSのサービスの1つであるCloudWatch Logsを使っていると、以下の様な場面に遭遇することがあります。

統合CloudWatchエージェントが出る以前のCloudWatch Logsエージェントを使用していたけれど不要になった。

あるいは、統合CloudWatchエージェントに移行したい。

この場合、これまで使ってきたCloudWatch Logsエージェントは不要になるので、関連するサービスとそれら設定ファイルもOS上から削除してしまいたいと思います。

しかし、これらの情報についてはググっても中々出てきませんでした。
そこで今回はこの問題について書きたいと思います。

この記事の内容
  1. (古い)CloudWatch Logsエージェントのアンインストールについて
  2. 不要になった設定ファイルの削除方法

では、説明していきます。

CloudWatchエージェントには2種類ある

まず、前提として、CloudWatchのエージェントには以下の2種類あります。

  • CloudWatch Logsエージェント(廃止予定)
  • 統合CloudWatchエージェント

CloudWatch Logsエージェント(廃止予定)とは?

後述の「統合CloudWatchエージェント」が出る以前、ログデータ(例えば”/var/log/messages”の内容等)をEC2インスタンスからCloudWatch Logsに送信するために用意されていたエージェントです。

導入には、OS上からPythonスクリプト(awslogs-agent-setup.py)を用いてインストールしていました。

こちらは今後廃止が予定されています。(2021年2月現在)

参考 以前の CloudWatch Logs エージェントを使用して CloudWatch Logs の使用を開始するhttps://docs.aws.amazon.com

統合CloudWatchエージェントとは?

現在は、この統合CloudWatchエージェントというものが新しく登場しています。この中には、CloudWatchのカスタムメトリクスをAWSマネジメントコンソール上に表示させる機能だけでなく、CloudWatch Logsエージェントで実施していたCloudWatch Logsへログデータを送信する機能も統合されました。

よって、これから新しくCloudWatch Logsへログデータを送信したい場合には、この統合CloudWatchエージェントを使えば良いわけです。

参考 統合 CloudWatch エージェントを使用して CloudWatch Logs の使用を開始するhttps://docs.aws.amazon.com

エージェント移行時の注意点

これまで(古い方の)CloudWatch Logsエージェントを使っていたが、統合CloudWatchエージェントに移行したい場合には注意が必要です。

これは、新旧のエージェントではパラメータの指定方法が若干異なっていたり、削除されたパラメータもあるからです。詳しくは下記のリンク参照。

参考 CloudWatch Logs/統合CloudWatchエージェントの違いと移行時の注意点https://blog.serverworks.co.jp

(古い方の)CloudWatch Logsエージェントをアンインストール、ファイル削除したい場合

アンインストール手順、方法はない

AWSドキュメントにも、古いCloudWatch Logsエージェントのアンインストールの手段は用意されていないようです。そのため、CloudWatch Logsエージェントが不要になったので削除したい場合や統合CloudWatchエージェントに乗り換える場合は、サービス停止とファイル削除により対応することになります。

注意
統合CloudWatchエージェントに移行する場合は、まず統合CloudWatchエージェントをインストール、その後OS上からウィザードを実行することで、旧エージェントの設定内容を一部引き継ぐ事ができます。この対応がまだの場合は、そちらを先にお願いします。

以下、その対応方法についてご説明します。

まずは対象EC2インスタンスをバックアップ

ここから先はOS上でサービスをいじったりファイルを削除したりします。念のためAMIによるバックアップ取得をしておくことを強くおすすめします。

OS上での対応

それでは、実際にOS上でコマンド実行して(古い方の)CloudWatch Logsエージェントサービス停止とファイル削除を行っていきましょう。

※なお、ここから先は Redhat Enterprise Linux 8.1 を想定しています。

cronファイル、ログローテート用ファイルの削除

sudo rm /etc/cron.d/awslogs*
sudo rm /etc/logrotate.d/awslogs

awslogsの停止、無効化

sudo systemctl stop awslogs
sudo systemctl disable awslogs

サービスからの除外

sudo chkconfig --del awslogs
sudo rm /etc/rc.d/init.d/awslogs
sudo systemctl daemon-reload

他のファイル、ディレクトリ、Pythonスクリプト削除

sudo rm -rf /var/awslogs
sudo rm /var/log/awslogs* sudo rm <スクリプトのパス>/awslogs-agent-setup.py

今回は以上です!