結果は見つかりませんでした
その言葉を使ったものは見つかりませんでした。他の言葉で検索してみてください。
概要 cloudwatch に つい て 調べる 機会 が あっ た の で まとめる た CloudWatchの基本 機能 監視ツールとしての以下の基本的な機能が備わっているらしい。 基本 機能 内部リソース(CPUとか)データの収集 ログの収集(※) 収集 データ に
cloudwatch に つい て 調べる 機会 が あっ た の で まとめる た
監視ツールとしての以下の基本的な機能が備わっているらしい。
基本 機能
※EC2のログ監視には別途「CloudWatchエージェント」というツールを監視対象インスタンスへインストールする必要あり(※)。
※CloudWatchエージェントのインストール
https : / / docs . AWS . Amazon . com / JA _ JP / amazoncloudwatch / latest / logs / cwl _ gettingstarted . HTML
※ステータスチェック
以下2つがあり、全項目OKならば「ステータスチェック」がOKとなる。
なお、ステータスチェックについてはCloudWatchじゃなくてEC2のコンソールでもOK/NGは確認できる。
システム ステータス チェック
インスタンス ステータス チェック
CloudWatchには以下のメリット、デメリットがあるらしい。
メリット | デメリット |
---|---|
・ 標準 メトリクス の 収集 に つい て は 自身 で の 設定 すら 不要 ・監視対象であるAWSサービスがアップデートされても自動で追従してくれる |
・メトリクスの保管期間が短い(※)(=長期的に保管したいなら自身でCloudWatchから収集済みのメトリクスを抜き出して保管する必要あり(※)) ・CloudWatch単体でアラートの発砲や自動再起動をしない期間の設定ができない(やるなら他のサービスも併用しての設定が必要(※)) |
※ メトリクス の 保管 期間
監視 間隔 | 保管期間 |
---|---|
1分 | 15 日間 |
5 分 | 63日間 |
1 時間 | 455 日間 |
※ メトリクス の 長期 保管
参考:https://qiita.com/Kept1994/items/aa76ae065d8d16c557a8
※アラートを一時的に止める
参考:https://qiita.com/kapioz/items/f2de33075d7f88f00ffe
SSMまとめ-SSMエージェントのセットアップに従って実施。
SSMまとめ-SSMコンソールからEC2へ任意のエージェントをセットアップに従って実施。
設定ウィザードに従って実施する。
# メトリクスデータ取得対象のEC2インスタンスへSSHログイン
# 設定ウィザードを開始
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
# 以降、ウィザードに従って回答
## CloudWatchウィザードの設問について解説
On which OS are you planning to use the agent?
=>CloudWatchエージェント動作させるOSを選択
Trying to fetch the default region based on ec2 metadata...
Are you using EC2 or On-Premises hosts?
=>CloudWatchエージェントを動作させるのはEC2かオンプレミスのサーバーかを選択
Which user are you planning to run the agent?
=>CloudWatchエージェントを起動するマシン内のユーザー名を設定
Do you want to turn on StatsD daemon?
=>StatsDデーモンを起動するか?(StatsDについては後述)
Do you want to monitor metrics from CollectD?
=>CollectDでカスタムメトリクスを採取したいか
Do you want to monitor any host metrics? e.g. CPU, memory, etc.
=>CPU、メモリといったシステム全体に対するカスタムメトリクスを採取したいか
Do you want to monitor cpu metrics per core? Additional CloudWatch charges may apply.
=>コアごとのCPUのカスタムメトリクスを採取したいか(これをYesにしても設定ファイル上はONになっていなかったのでバグかもしれない)
Do you want to add ec2 dimensions (ImageId, InstanceId, InstanceType, AutoScalingGroupName) into all of your metrics if the info is available?
=>利用できるならばImage ID、Instance ID、Instance Type、Auto Scaling
Group Nameというディメンジョンを全カスタムメトリクス内に追加したいか
※必要でない限りやらない方がよい。CloudWatch上でのデータ表示時も冗長になるし、APIでデータを取得するときにも全ディメンジョンを指定しないと取れないため面倒になる。
Would you like to collect your metrics at high resolution (sub-minute resolution)? This enables sub-minute resolution for all metrics, but you can customize for specific metrics in the output json file.
=>カスタムメトリクスを高解像度で取得したいか?全メトリクスに対して高解像度の設定になるが、個々に設定しあにのであれば、このウィザードを終えて出力される設定ファイルをカスタマイズすれば可能。
※高解像度にするとCloudWatch上に残る期間は短くなる。基本1分でいいのでは。
Which default metrics config do you want?
採取対象のカスタムメトリクスのデフォルト項目。
Basic、Standard、Advancedから選択できる(具体的に各選択肢がどの項目を採取することになるのかは
「https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html」を参照)。
選択すると、・・・にあるカスタムメトリクスが採取対象として設定ファイルに載ってくる。
Current config as follows:
{
....
}
Are you satisfied with the above config? Note: it can be manually customized after the wizard completes to add additional items.
=>ウィザードを経て設定ファイルは上記の内容で作成されることになるが問題ないか?
注記:ウィザードの後、手動で設定ファイルをいじることは可能。
※ウィザードではざっくり設定しかできないので、結局手動で設定ファイルをいじることになるが、いじる前の状態が最終形に近い方が後の設定作業が楽になるので、ここまで真面目に答えておいた方がいい。
Do you have any existing CloudWatch Log Agent (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html) configuration file to import for migration?
=>移行のためにインポートする既存のCloudWatch Log エージェント設定ファイルを持っているか?
※CloudWatchエージェントでCloudWatch Logsのための設定もできるようになったが、移行するか?ってことみたい。
Do you want to monitor any log files?
=>CloudWatch LogsへEC2内のログを送信したいか?
Current config as follows:
{
...
}
Please check the above content of the config.
The config file is also located at /opt/aws/amazon-cloudwatch-agent/bin/config.json.
Edit it manually if needed.
=>設定ファイルは/opt/aws/amazon-cloudwatch-agent/bin/config.json に保存されている。必要あれば手動で編集せい。
※SSMでパラメータストアから設定ファイルを指定してCloudWatchを起動する際にはこの場所には配置されない。
SSMから設定ファイルを適用してエージェントを起動した場合、その設定ファイルはEC2内の/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm_<設定ファイル名>に保存される。
Do you want to store the config in the SSM parameter store?
=>SSMのパラメータストアに設定を保存するか?
ここは「yes」を選択する
What parameter store name do you want to use to store your config? (Use 'AmazonCloudWatch-' prefix if you use our managed AWS policy)
default choice: [AmazonCloudWatch-linux]
=>設定をパラメータストアへどんな名前で保存するか?AWSポリシーに従うのであれば「AmazonCloudWatch-」から始めろ。
Which region do you want to store the config in the parameter store?
=>どのリージョンのパラメータストアに設定を保存するか?
Which AWS credential should be used to send json config to parameter store?
=>パラメータストアに設定ファイルを送信するにあたってどのAWSクレデンシャルを使うか?
なんかよくわからんかった。
(デフォルトのクレデンシャルの番号に憶えがなかった)。
デフォルトの選択肢で一応動いたので新しく作られる?っぽい
SSMまとめ-パラメータストア-設定ファイルの編集に従ってSSMコンソールのパラメータストア上で実施する。
EC 2 内 の 「 ディスク 使用 状況 」 や システム 全体 と し て の 「 メモリ 使用 状況 」 の メトリクス を 取得 する に は collectd と いう ソフトウェア を EC 2 へ 導入 する 必要 is ある が ある 。
CloudWatchエージェントの設定ファイルにcollectd使いますと書いておきながら未インストールの状態でcloudwatchエージェントを起動すると、以下のようなエラーが出力される。
```
2020/05/22 08:33:21 E! Error parsing /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml,
open /usr/share/collectd/types.db: no such file or directory
```
例. Ubuntu 14.04の場合の手順
# EC2へSSHログイン
# collectdのインストール
sudo apt-get update
sudo apt-get install collectd
# collectdの設定
curl -s -S -O "https://raw.githubusercontent.com/awslabs/collectd-cloudwatch/master/src/setup.py"
chmod u+x setup.py
sudo ./setup.py
# 以下、質問に答えてセットアップ
Choose AWS region for published metrics:
1. Automatic [ap-northeast-1]
2. Custom
Enter choice [1]: 1
DEBUG:urllib3.util.retry:Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): 169.254.169.254:80
DEBUG:urllib3.connectionpool:http://169.254.169.254:80 "GET /latest/meta-data/instance-id/ HTTP/1.1" 200 19
Choose hostname for published metrics:
1. EC2 instance id [XXXXXXXX]
2. Custom
Enter choice [1]: 1
DEBUG:urllib3.util.retry:Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): 169.254.169.254:80
DEBUG:urllib3.connectionpool:http://169.254.169.254:80 "GET /latest/meta-data/iam/security-credentials/ HTTP/1.1" 200 37
Choose authentication method:
1. IAM Role [<EC2へアタッチしたIAMロール>]
2. IAM User
Enter choice [1]: 1
Enter proxy server name:
1. None
2. Custom
Enter choice [1]: 1
Enter proxy server port:
1. None
2. Custom
Enter choice [1]: 1
Include the Auto-Scaling Group name as a metric dimension:
1. No
2. Yes
Enter choice [1]: 1
Include the FixedDimension as a metric dimension:
1. No
2. Yes
Enter choice [1]: 1
Enable high resolution:
1. Yes
2. No
Enter choice [2]: 2
Enter flush internal:
1. Default 60s
2. Custom
Enter choice [1]: 1
Choose how to install CloudWatch plugin in collectd:
1. Do not modify existing collectd configuration
2. Add plugin to the existing configuration
Enter choice [2]: 2
Plugin configuration written successfully.
Stopping collectd process ... OK
Starting collectd process ... OK
※環境によってはsudo apt-get install collectd
の場面でエラーが発生することも。自分の場合は以下が発生した(設定ファイル書き換え&sudo Service collectd start
で 事 なし を 得る た ) 。
https://bugs.launchpad.net/ubuntu/+source/collectd/+bug/1077732
なお、CloudWatch の Endpoint(monitoring.{{region}}.amazonaws.com) へ送信しているため、Outbound制限を掛けている場合は 443 ポートの許可が必要らしい。
CloudWatchエージェントを使ってカスタムメトリクスを採取するにあたって、
状況に応じてcollectd, StatsD, procstatを使いわける必要がある模様。
色々調べた結果、役割上の違いは以下の通りと解釈した。
方法 | 概要 |
---|---|
collectd | システム 全体 と し て の ディスク 使用 率 、 メモリ 使用 率 など の 内部 リソース is 取得 が 取得 できる 。 別途 ソフトウェア の インストール is 必要 が 必要 。 |
procstat | プロセス単位のCPU使用率、メモリ使用量などの内部リソースが取得できる。別途ソフトウェアのインストールは不要。 |
statsd | 上記では叶えられないメトリクスデータを収集、送信する(自前でプログラムを用意する必要あり) |
collectdで収集できるメトリクス
procstat で 収集 できる メトリクス