サイトアイコン 協栄情報ブログ

SSMを使ってCloudWatch Logsにログを収集してみた


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

こんにちは。株式会社協栄情報クラウド事業本部の岩下です。
今回は、CloudWatchを利用するためにCloudWatchエージェントを使い、実際にCloudWatch Logsにログを収集するまでのハンズオンを実行したので記録として残します。

CloudWatchエージェントを使いCloudWatch Logsにログを収集することでEC2インスタンスにログインすることなく、マネジメントコンソールにて見やすく、また簡易的にログの確認ができるというメリットがあります。

CloudWatchエージェントについて

CloudWatchとは

まずCloudWatchとは、AWSで実行されているアプリケーションをリアルタイムでモニタリングできるサービスのことです。
CloudWatchを使用してメトリクスを収集し、追跡できます。メトリクスとは、リソースやアプリケーションに関して測定できる変数のことです。

CloudWatchエージェントとは

CloudWatchだけでは監視できない部分(EC2インスタンスの内)をEC2にCloudWatchエージェントをインストールすることで、より細かなメトリクスを測定できる機能のことです。

CloudWatch(サービス全体)とCloudWatchエージェント(EC2インスタンス内)それぞれをわかりやすくいうと、システムでエラーが起きていないかをログを記録し監視するツールになります。

下記のAWS公式ドキュメントを参照にしてます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html

CloudWatchエージェント設定ファイルとは

CloudWatchエージェントをサーバーで実行する前に、CloudWatchエージェント設定ファイルの作成が必要です。

CloudWatch エージェント設定ファイルとは、agent、metrics、logs の 3 つのセクションを持つ JSON ファイルのことをいい言います。

下記のAWS公式ドキュメントを参照にしてます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html

ログの収集をやってみる

事前準備

前提条件として、

以上を前提条件として始めていきたいと思います。

下記のAWS公式ドキュメントを参照にしてます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html

EC2インスタンスにCloudWatchエージェントを導入する

まずは、TeraTermでEC2インスタンスに接続します。

CloudWatchエージェント設定ファイルを作成する際、質問形式で聞かれます。
質問に答えて、サーバーの設定ファイルをカスタマイズします。

下記のAWS公式ドキュメントを参照にしてます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html

下記のAWS公式ドキュメントを参照にしてます。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-custom-metrics-collectd.html

SSM(AWS Systems Manager)からエージェントを起動する

以上でEC2インスタンス上での準備は完了したので、実際にSSMの『Run Command』でエージェントを起動します。

また、EC2の内部に入ることなく簡易的にEC2のコマンドを実行できることから、今回SSMのRun Commandを利用しています。

※『Run Command』とは、各種コマンドをマネジメントコンソール上で実行できるコマンド

確認する

CloudWatchのロググループにログが記録されているかを確認します。

CloudWatchのサイドメニューからロググループを選択し、以下のグループにログが記録されているか確認します。

その中の階層の配下にログが保存されていることが確認できました。

まとめ

AWSにおける監視運用サービスであるCloudWatchエージェントにてCloudWatch Logsにログを収集するハンズオンで構築した内容をまとめました。

CloudWatchエージェントでCloudWatch Logsにログを収集することで、EC2インスタンスにログインすることなくマネジメントコンソールにて簡易的にログを確認することで瞬時に問題に対応できるメリットがあると感じました。

構築だけしているときは、どこにどのファイル名で記録が管理されているのかわからなくなるときがありましたが、今回の記事でまとめたことによって頭の中でも整理ができやすくなりました。

CloudWatchには、CloudWatchエージェントだけでなくほかにもアラームやイベントなど様々な機能が提供されているので、また機会があれば紹介したいと思います。

モバイルバージョンを終了