オンプレのサーバをCloudWatchでもりもり監視していると台数が増えてきますね?
1000台とかになったときにメトリクスを調整するのに設定変更を1台1台やるのはつらいじゃないすか。
そんなあなたのためにawsのSystemManagerのノード管理→Run Commandっていうので、awsコンソールから一斉にコマンドをなげることができます。
すでにパラメータストアにcloudwatch-agentの設定ファイルを保存してあるのでSSMエージェントをインストールしてSystemManagerのハイブリッドアクティベーションで登録するだけです。
tl;dr
オンプレのサーバにSSMマネージャを入れて、ハイブリッドアクティベーションをして、CloudWatchAgentの設定ファイルを更新します。fedora33で試しています。
SSMマネージャインストールと登録
下記のまんまでした。
直接URLからインストールします。
[root@deroris ~]# dnf install https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/linux_amd64/amazon-ssm-agent.rpm
一度止めます。
[root@deroris ~]# systemctl stop amazon-ssm-agent
awsコンソールのノード管理→ハイブリッドアクティベーションからアクティベーションを登録します。
何も入れなかった。
作成すると上にActivation CodeとActivation IDが出てくる。
それをサーバで流す。一回やってるのでexistって言われてる。
[root@deroris ~]# amazon-ssm-agent -register -code "Dn1mldF8fahPooTKLd5C" -id "88f4a5bc-a7d2-4e95-9cde-3a692dd3b420" -region "ap-northeast-1"
Error occurred fetching the seelog config file path: open /etc/amazon/ssm/seelog.xml: no such file or directory
Initializing new seelog logger
New Seelog Logger Creation Complete
Instance already registered. Would you like to override existing with new registration information? [Yes/No]: Y
2021-07-29 19:02:09 INFO Successfully registered the instance with AWS SSM using Managed instance-id: mi-0d10b19839841c0ab
数秒で登録済みインスタンスが1になる。
サービスを開始してステータスを確認すべし。サービス開始するの忘れるので注意。
[root@deroris ~]# systemctl start amazon-ssm-agent
[root@deroris ~]# systemctl status amazon-ssm-agent
● amazon-ssm-agent.service - amazon-ssm-agent
Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-07-29 19:03:51 JST; 2s ago
Main PID: 1793358 (amazon-ssm-agen)
Tasks: 21 (limit: 19076)
Memory: 19.7M
CPU: 165ms
CGroup: /system.slice/amazon-ssm-agent.service
├─1793358 /usr/bin/amazon-ssm-agent
└─1793389 /usr/bin/ssm-agent-worker
7月 29 19:03:52 deroris.local amazon-ssm-agent[1793358]: 2021-07-29 19:03:51 INFO no_proxy:
7月 29 19:03:52 deroris.local amazon-ssm-agent[1793358]: 2021-07-29 19:03:51 INFO Agent will take identity from OnPrem
7月 29 19:03:52 deroris.local amazon-ssm-agent[1793358]: 2021-07-29 19:03:51 INFO [amazon-ssm-agent] using named pipe channel for IPC
ちゃんと動いていればフリートマネージャに表示される。
これでawsの配下に。
リモートからコマンドを流す
CloudWatchAgentを更新してみます。
パラメータストアのメトリクスを編集します。namespaceにNew2を入れました。(画像はまだNew)
ノード管理→Run CommandでAmazonCloudWatch-ManageAgentを選択します。
コマンドパラメータで画像のように入力します。
ModeをonPrem、Optional Configuration Locationにパラメータストアの設定名を入れます。
ターゲットに当該のノードを選択します。(ここに表示されていなければSSMの登録がうまくいってない)
コマンド出力をS3に保存したりできる。
んで実行
うまくいってればすぐに成功って表示されてくると思います。
あとは、CloudWatchで更新した項目(Namespace)が反映されているかみてみてください。
まとめ
サーバをセットアップするときはSSMエージェントを設定しておけばあとから楽になる。
オンプレやvps等のサーバがいっぱいある人にとっては便利かも。
問題なのは、そこまでAWSにロックインされていいのかってことか。
エージェント系なので、ポートを開けたりする必要はないからそのへんは楽かな。
※↑で使ったアクティベーションコード等はすでに捨てた。