Amazon CloudWatch（カスタムメトリクス）- Amazon EC2

**■Amazon CloudWatch（カスタムメトリクス）- Amazon EC2**

※カスタムメトリクスとは？
CloudWatchの基本設定だけだと監視することができないけど、この部分については監視したい！という項目のメトリクスを独自に作成し監視をおこなうことも可能です。

[Amazon CloudWatch（標準メトリクス）- Amazon EC2](https://qiita.com/leomaro7/items/c0a2fbd3b4db1e7ac276) を参考に標準メトリクスを作成しておいてください。

以降の手順はAmazon Linux2での操作手順です。

---
###1.aws-apitools-mon パッケージをインストールする###
監視データの送信には aws-apitools-mon というツールを使います。
Amazon Linuxの場合は、デフォルトで組み込まれています。
インストールされていない場合は以下のコマンドを実行します。
`sudo yum install -y aws-apitools-mon`
![スクリーンショット 2018-10-14 18.41.14.png](https://qiita-image-store.s3.amazonaws.com/0/280929/b06439ae-cd17-8670-c8d2-7d4aa4c2dbf3.png)
![スクリーンショット 2018-10-14 18.41.46.png](https://qiita-image-store.s3.amazonaws.com/0/280929/e703fc29-1e02-92af-15ba-801a70b2252d.png)

参考：[AWS コマンドラインツール](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#amazon-linux-aws-command-line-tools)


###2.CloudWatchのIAMアカウントを作成します###

IAMを開き、「ロール」から「ロールの作成」をクリックします。
![スクリーンショット 2018-10-14 19.14.55.png](https://qiita-image-store.s3.amazonaws.com/0/280929/3013c344-1f76-027b-dd71-0c45aeff074f.png)

「EC2」を選択し、「次のステップ：アクセス権限」へ進みます。
![スクリーンショット 2018-10-14 19.19.17.png](https://qiita-image-store.s3.amazonaws.com/0/280929/f506f355-4955-6857-6333-8a7a0e8b132f.png)

「AdministratorAccess」を付与し、「次のステップ：確認」に進みます。
![スクリーンショット 2018-10-14 19.20.42.png](https://qiita-image-store.s3.amazonaws.com/0/280929/343e7dea-9c2f-9ac2-d66d-5d9606754643.png)

適当な「ロール名」を入力し、「ロールの作成」をクリックします。
![スクリーンショット 2018-10-14 19.22.59.png](https://qiita-image-store.s3.amazonaws.com/0/280929/b86caefc-0d7b-312d-734f-e64ca268ce40.png)

EC2インスタンスから、「アクション」-「インスタンスの設定」-「IAMロールの割り当て/置換」を選択します。
![スクリーンショット 2018-10-14 19.23.54.png](https://qiita-image-store.s3.amazonaws.com/0/280929/fb8a7d72-1df9-b1ba-b433-8937fc78e4f9.png)

先程作成した[IAMロール]を選択し、「適用」します。
![スクリーンショット 2018-10-14 19.25.33.png](https://qiita-image-store.s3.amazonaws.com/0/280929/a01c21ca-61d6-309e-45a3-c5613576a01d.png)


###3.CloudWatch Monitoring Scripts for Linuxをインストールする###
[Amazon CloudWatch Monitoring Scripts for Linux](https://aws.amazon.com/jp/code/amazon-cloudwatch-monitoring-scripts-for-linux/)

`wget http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
unzip CloudWatchMonitoringScripts-v1.1.0.zip
rm CloudWatchMonitoringScripts-v1.1.0.zip
cd aws-scripts-mon`

↓ls -l で確認するとこんな感じになっているはず。
![スクリーンショット 2018-10-15 18.33.39.png](https://qiita-image-store.s3.amazonaws.com/0/280929/2a39fda2-6201-0677-fe8b-0d6ffcfc830a.png)


###4.CloudWatch Monitoring Scripts for Linuxの動作確認をする###
./mon-put-instance-data.pl で今回はメモリ使用率（ --mem-util ）を取得します。
--verify　をつけると実際にデータは送信されません、テストです。

`./mon-put-instance-data.pl --mem-util --verify --verbose`

↓成功！
![スクリーンショット 2018-10-15 18.36.20.png](https://qiita-image-store.s3.amazonaws.com/0/280929/0a39e1e7-3427-ad34-5beb-f22aa2ce633d.png)
![スクリーンショット 2018-10-15 18.36.35.png](https://qiita-image-store.s3.amazonaws.com/0/280929/3e478b0d-c490-226d-9e09-006aedc82805.png)

メトリクスを指定するオプションは↓のページから。これらは複数指定ができます。
参考：[./mon-put-instance-data.pl](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/mon-scripts.html#using_put_script)


###5.実際にデータを送信してみよう###
メモリ情報を送信してみよう。

`./mon-put-instance-data.pl --mem-util --mem-used --mem-avail`

![スクリーンショット 2018-10-15 18.39.51.png](https://qiita-image-store.s3.amazonaws.com/0/280929/f0a1aa84-9a8f-b3ee-e18c-d9e2b3e3d32c.png)


###6.送信したメモリ情報をAWS管理コンソールから確認する###

「CloudWatch」を開き、「メトリクス」から「すべてのメトリクス」を開くと作成されていることがわかります。