CloudWatch Agentでオンプレ環境のLinuxサーバーのメトリクスを取得するため、まずはAWS Systems Managerでオンプレ環境のLinuxを管理できるようにします。
アクティベーションの作成
管理対象のサーバーを認証するためのアクティベーションキーを作成します。
EC2のコンソール左側メニューの「SYSTEM MANAGER共有リソース」を開きます。
「アクティベーションの作成」ボタンを押し、各項目を入力します。
- アクティベーションの説明:適当な説明を記入
- インスタンス制限:このアクティベーションで何台のインスタンスを認証させるか
- IAMロール:「必要な権限を備えたシステムのデフォルトコマンド実行ロールを作成」を選択(今回はこのタイミングで作成します)
- アクティベーションの有効期限:キーの有効期限(30日以内の日付を指定)
「アクティベーションの作成」ボタンを押すとアクティベーションが作成されます。
オンプレ環境のサーバーへのSSM Agentインストール
System Managerで管理するサーバーへログインし、rpmをダウンロード
mkdir /tmp/ssm
curl https://amazon-ssm-ap-northeast-1.s3.amazonaws.com/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12.4M 100 12.4M 0 0 8717k 0 0:00:01 0:00:01 --:--:-- 8713k
SSM Agentをインストールします。
yum install /tmp/ssm/amazon-ssm-agent.rpm
オンプレサーバーの登録
アクティベーションコードとアクティベーションIDを指定して当該サーバーを登録します。
systemctl stop amazon-ssm-agent
amazon-ssm-agent -register -code "xxxxxxxxxxxxxxxxx" -id "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -region "ap-northeast-1"
登録途中に「RegistrationKey does not exist」とか「/etc/amazon/ssm/seelog.xml: no such file or directory」などが表示されますが、しばらく待っていると「Successfully registered the instance with AWS SSM using Managed instance-id: mi-xxxxxxxxxxxxxxxx 」と表示されれば、登録が成功します。登録完了まで少々時間がかかります。
登録が成功したら、Agentを起動します。
systemctl start amazon-ssm-agent
コンソールでマネージドインスタンスを開くと、オンプレサーバーが登録されていることが確認できます。
オンプレサーバーの名前(インスタンス名)を設定
アクティベーションを複数のオンプレサーバーに行うと、アクティベーション作成時に指定した「デフォルトのインスタンス名」に入力した名前が、各サーバーに一律に付与されてしまいます。このままだと、ランコマンド発行時に対象インスタンスを指定するのに不便です。
そこで、「AWS Systems Manager」の左メニュー「マネージドインスタンス」でインスタンスの一覧を出し。対象インスタンスの詳細を開き、「タグ」のタブを開いて設定します。
「Edit」ボタンを押して、タブキーに「Name」をタグ値に該当サーバーのインスタンス名を入力して保存すると、ターゲットインスタンスの一覧に表示される名前がタグに設定した名前になります。
ランコマンドの実行
確認の為、System Manager からランコマンドを実行してみます。AWS-UpdateSSMAgentを実行します。
ターゲットとして今回登録したオンプレサーバーを選択して実行すると、成功のステータスを確認できます。