CI部の古川(智)です。
Amazon CloudWatch(以下、CloudWatch) エージェント設定ファイルは一から手動で作成することができるようになっています。
今回は、手動でCloudWatch エージェント設定ファイルを作成したはいいものの「あれ、、、設定ファイルどれ(どこ)だっけ、、、。」となった時に見つけ出すヒントを紹介します。
このブログで分かること
LinuxサーバーにおいてCloudWatch エージェント設定ファイルの名前を特定する方法が分かります。
(※今回は設定ファイルが1つであることを想定しています。設定ファイルが複数ある場合、挙動が変わる可能性もあるのであくまでもヒントとして見ていただければと思います。)
こんな方におすすめのブログです
LinuxサーバーにCloudWatch エージェントをインストールし、設定ファイルを手動作成したが、ファイルの場所も名前も忘れてしまった人
得体の知れないLinuxサーバーでCloudWatch エージェント設定ファイルを修正せねばならない人
amazon-cloudwatch-agent.d配下を確認!
それでは、さっそく設定ファイル名を特定しましょう。
以下のコマンドでamazon-cloudwatch-agent.d配下を見に行きます。
ls /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d
「file_○○.json」という名前のファイルがあるはずです。(もしここで「default」という名前のファイルしかない場合、手動で作成したCloudWatch エージェント設定ファイルは適用されておらず、デフォルトの設定が適用されている状態となります。)
実際にコマンドを実行した例↓
[root@xxxx bin]# ls /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d file_hogehoge.json
この例の場合「file_」の後に続く「hogehoge.json」がCloudWatch エージェント設定ファイルの名前です!!!!
あとはもうfindコマンド等で「hogehoge.json」が置かれている場所を見つけてしまえば、編集なりなんなりが可能ですね。
こんなことにならないために
AWS公式ドキュメントには以下の記載があります。
トラブルシューティングを簡単にするため、Linux サーバーでは、/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json、Windows Server を実行しているサーバーでは、$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json という名前を付けることをお勧めします。
はい、しっかり推奨ファイル名が記載されていました…。
Linuxの場合
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.jsonWindowsの場合
$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json
ファイルが迷子になるのを避けるためにも、手動で作るときはこの名前にするのが良さそうですね。
(おまけ)私がファイル名を特定できた経緯
おまけとして、私がファイル名を特定できた経緯を簡単に説明します。
設定ファイルだし、きっとファイル名に「config」が付いているだろう!とあたりをつけて、
/opt/aws/amazon-cloudwatch-agent/
配下で「config」と名前の付くファイルを探してみる。/opt/aws/amazon-cloudwatch-agent/etc/config.json
と/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json
が見つかる。以下のコマンドで設定ファイルを指定せずにCloudWatch エージェントを起動させてみる。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s
参考: エージェント設定を使用した EC2 インスタンスへの CloudWatch エージェントのインストール - Amazon CloudWatch/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json
ファイルが消えており、代わりに/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/default
ファイルが現れる。設定ファイル
/opt/aws/amazon-cloudwatch-agent/etc/config.json
を指定してCloudWatch エージェント起動コマンドを再実行する。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/
配下に再びfile_config.json
ファイルが出現!/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/
の下に「file_設定ファイル名」という名前で設定ファイルがコピーされるということが分かった。
おわりに
必要としている方にこの情報が届いてくれることを願いながら本ブログを公開します。
古川智絵 (執筆記事の一覧)
2020年新卒入社 技術課(SRE1課)に所属 好きな食べ物はみそ汁