質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

7765閲覧

AWS CloudWatch Agent がインストールできない

lin.ming

総合スコア50

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

2クリップ

投稿2020/04/29 09:20

編集2020/05/20 22:57

##やりたいこと
EC2 に CloudWatch Agent をインストールして、EC2 のメモリ使用量をチェックしたい。
##やったこと
AWS のドキュメントに沿ってやりました。
コマンドラインを使用して CloudWatch エージェントをインストールする

common-config.toml の設定は、オプションと書いてあったので、修正していません。
#エラーになった箇所

# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml -s

##知りたいこと
JSON の形式がおかしいとのことですが、どのように直せばいいかわかりません。

ご知見のある方、ご教示お願いします。

##追記
config に書くこともなかったので、

# mv common-config.toml common-config.toml.bak # touch common-config.toml

としたのですが、下記エラーが出ます。

# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml -s /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source file:/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Successfully fetched the config and saved in /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_common-config.toml.tmp Start configuration validation... /opt/aws/amazon-cloudwatch-agent/bin/config-translator --input /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json --input-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --output /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default 2020/04/29 20:55:35 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_common-config.toml.tmp ... 2020/04/29 20:55:35 Invalid json format, please check. Reason: unexpected end of JSON input 2020/04/29 20:55:35 I! AmazonCloudWatchAgent Version 1.237768.0. 2020/04/29 20:55:35 Configuration validation first phase failed. Agent version: 1.237768.0. Verify the JSON input is only using features supported by this version.

##追記2
amazon-cloudwatch-agent.json

{ "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/cloudwatch", "log_group_name": "cloudwatch", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "collectd": { "metrics_aggregation_interval": 60 }, "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "statsd": { "metrics_aggregation_interval": 60, "metrics_collection_interval": 10, "service_address": ":8125" } } } }

ログ

2020/05/04 12:16:05 I! I! Detected the instance is EC2 2020/05/04 12:16:05 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ... 2020/05/04 12:16:05 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_common-config.toml ... 2020/05/04 12:16:05 Invalid json format, please check. Reason: unexpected end of JSON input 2020/05/04 12:16:05 I! AmazonCloudWatchAgent Version 1.237768.0. 2020/05/04 12:16:05 Configuration validation first phase failed. Agent version: 1.237768.0. Verify the JSON input is only using features supported by this version. 2020/05/04 12:16:05 I! Return exit error: exit code=1 2020/05/04 12:16:05 E! Cannot translate JSON config into TOML, ERROR is exit status 1

cloudwatch agent のステータス

# sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "stopped", "starttime": "", "version": "1.237768.0" }

##追記3
config.json

{ "agent": { "metrics_collection_interval": 10, "run_as_user": "root" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/messages", "log_group_name": "messages", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "collectd": { "metrics_aggregation_interval": 60 }, "cpu": { "measurement": [ "cpu_usage_idle", "cpu_usage_iowait", "cpu_usage_user", "cpu_usage_system" ], "metrics_collection_interval": 10, "resources": [ "*" ], "totalcpu": false }, "disk": { "measurement": [ "used_percent", "inodes_free" ], "metrics_collection_interval": 10, "resources": [ "*" ] }, "diskio": { "measurement": [ "io_time", "write_bytes", "read_bytes", "writes", "reads" ], "metrics_collection_interval": 10, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 10 }, "netstat": { "measurement": [ "tcp_established", "tcp_time_wait" ], "metrics_collection_interval": 10 }, "statsd": { "metrics_aggregation_interval": 60, "metrics_collection_interval": 10, "service_address": ":8125" }, "swap": { "measurement": [ "swap_used_percent" ], "metrics_collection_interval": 10 } } } }

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

2020-05-19T08:06:17Z E! refresh EC2 Instance Tags failed: SharedCredsLoad: failed to load shared credentials file caused by: FailedRead: unable to open file caused by: open /root/.aws/credentials: permission denied, metrics will be dropped until it got fixed 2020-05-19T08:16:17Z E! refresh EC2 Instance Tags failed: SharedCredsLoad: failed to load shared credentials file caused by: FailedRead: unable to open file caused by: open /root/.aws/credentials: permission denied, metrics will be dropped until it got fixed

credentials が読めないとありますが、どうしたら読めるようになりますか?

##追記4

# ps aux | grep cloud cwagent 3089 0.1 3.0 158036 30516 ? Ssl 07:15 0:03 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml -pidfile /opt/aws/amazon-cloudwatch-agent/var/amazon-cloudwatch-agent.pid
# cat amazon-cloudwatch-agent.toml [agent] collection_jitter = "0s" debug = false flush_interval = "1s" flush_jitter = "0s" hostname = "" interval = "60s" logfile = "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" metric_batch_size = 1000 metric_buffer_limit = 10000 omit_hostname = false precision = "" quiet = false round_interval = false [inputs] [[inputs.disk]] drop_device = false fieldpass = ["used_percent"] [inputs.disk.tags] metricPath = "metrics" [[inputs.mem]] fieldpass = ["used_percent"] [inputs.mem.tags] metricPath = "metrics" [outputs] [[outputs.cloudwatch]] force_flush_interval = "60s" namespace = "CWAgent" region = "ap-northeast-1" shared_credential_file = "/root/.aws/credentials" tagexclude = ["host", "metricPath"] [outputs.cloudwatch.tagpass] metricPath = ["metrics"] [processors] [[processors.ec2tagger]] ec2_instance_tag_keys = ["aws:autoscaling:groupName"] ec2_metadata_tags = ["ImageId", "InstanceId", "InstanceType"] refresh_interval_seconds = "2147483647s" shared_credential_file = "/root/.aws/credentials" [processors.ec2tagger.tagpass] metricPath = ["metrics"]
# cat common-config.toml [credentials] shared_credential_file = "/root/.aws/credentials"
# cat default { "agent": { "run_as_user": "cwagent" }, "metrics": { "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ] }, "disk": { "measurement": [ "used_percent" ], "resources": [ "*" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Invalid json format, please check. Reason: invalid character '#' looking for beginning of value

メッセージのとおりです。
jsonにはコメントを入れられないので、コメントアウトのようなことをしている行があるとエラーになります。
不要な記述は削除してください。

編集はエディタを使って構文チェックしながら書くと比較的楽だと思います。

投稿2020/04/29 11:47

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lin.ming

2020/04/29 11:59

質問に追記しました。 ご確認ください。
yu_1985

2020/04/29 12:33

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json はどうなってます? あと、参照しているtomlもそのまま貼ってみてください。
lin.ming

2020/04/30 11:07

[root@linming etc]# pwd /opt/aws/amazon-cloudwatch-agent/etc [root@linming etc]# ls -l total 4 drwxr-xr-x 2 root root 72 Apr 30 19:52 amazon-cloudwatch-agent.d -rw-r--r-- 1 root root 0 Apr 29 20:55 common-config.toml -rw-r--r-- 1 root root 929 Apr 3 13:58 common-config.toml.bak [root@linming etc]# ls -l amazon-cloudwatch-agent.d total 0 -rw-r--r-- 1 root root 0 Apr 29 20:54 file_common-config.toml -rwxr-xr-x 1 root root 0 Apr 30 19:52 file_common-config.toml.tmp です。
lin.ming

2020/05/01 01:13 編集

上記 URL にしたがって config.json ファイルを作りました。 bin 配下にできましたので、etc 配下に cp しました。 そして再度実行したのですが、同じエラーが出ます。 Invalid json format, please check. Reason: unexpected end of JSON input と怒られるので、JSON ファイルに余分な # が付いているのではなく、空の JSON ファイルだからだと思います。
lin.ming

2020/05/01 01:20

common-config.toml を ========== [credentials] shared_credential_file = "/root/.aws/credentials" ========== に変更して実行すると、 ========== Invalid json format, please check. Reason: invalid character 'c' looking for beginning of value ========== と怒られます。
yu_1985

2020/05/01 01:22

jsonを作る手順はどこを見ましたか…? ウィザードを使用してtomlを作ってください。 jsonは自分で作るのではなく、tomlが変換されて作られるものかと思います。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html > config に書くこともなかったので、 そんなことはありません。ドキュメントに従って作ってください。
lin.ming

2020/05/01 02:17

ウィザードを使用して toml, JSON を作りました。
yu_1985

2020/05/01 04:41

そこの手順が完了したのであればインストール完了ではないでしょうか。 サーバに入ってCloudWatch Agentがインストールされているか、設定ファイルがどうなってるか、実際にCloudWatchを見て値が取れてるか確認してみてください。 AgentがCloudWatchに値を送るために必要な権限がインスタンスのIAMをロールに割り当てられているかも合わせて確認してください。
lin.ming

2020/05/01 06:32

すみません、下記どのように確認すればいいのか教えてください。 >サーバに入ってCloudWatch Agentがインストールされているか、 >設定ファイルがどうなってるか、 >実際にCloudWatchを見て値が取れてるか
lin.ming

2020/05/03 01:38

>サーバに入ってCloudWatch Agentがインストールされているか、 は、 systemctl status amazon-cloudwatch-agent で確認できました。
lin.ming

2020/05/03 01:50

> AWS Systems Manager > Run Command > コマンドの再実行 で、失敗と表示されます。
yu_1985

2020/05/03 16:44

systemctl status amazon-cloudwatch-agentでインストール済み(かつ、起動済み)であることを見たのであれば、Run Commandを再実行する必要はないですね。 まずはトラブルシュートのドキュメントを確認してみてください。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html メトリクスについては、当然CloudWatchのコンソールから確認できます。 デフォルトだと確かCWAgentとかになっているはずですが、設定ファイルで決めるものです。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Metricssection CloudWatch AgentがCloudWatchにメトリクスを送る権限がEC2インスタンスのIAMロールにちゃんと割り当てられているかも確認してください。
lin.ming

2020/05/04 03:22

質問文に追記しました。 ご確認ください。
yu_1985

2020/05/04 14:33

stoppedになってるので起動してください。
lin.ming

2020/05/05 01:34 編集

AWS コンソールの Systems Manager の Run コマンドを実行すると、まず「進行中」と表示され、その後「失敗」と表示されます。 設定ファイルのどこかがおかしいんですよね?
yu_1985

2020/05/06 11:45

Run Commandのどれをどういう設定で実行した結果でしょうか。
lin.ming

2020/05/07 00:30

AmazonCloudWatch-ManageAgent を、ターゲットは EC2 のインスタンスを指定して、あとは設定を変えずに実行しました。
yu_1985

2020/05/07 02:11

Actionをstartにして実行してみてください。
lin.ming

2020/05/07 08:50

Action を start にして実行したのですが、 まず「進行中」と表示され、その後「失敗」と表示されます。
yu_1985

2020/05/07 09:38

コンソールから実行したRun Commandの出力内容が確認できるはずですが、それにはどのような内容が出力されていますか
lin.ming

2020/05/08 00:15

すみません、コンソールとは ウェブブラウザ上での AWS の AWS Sysrtem Manager のことですか? そうだとすると、「失敗」と出力されています。
yu_1985

2020/05/08 02:53

画面をよく見てください。 コマンドIDをクリックするとより詳細な情報が確認できます。 さらにインスタンスIDをクリックすると、サーバ上での出力が確認できるはずです。
lin.ming

2020/05/08 04:38

EC2 をリスタートしたら、なぜか「成功」になりました。 しかし、インスタンス ID をクリックして、出力 2 を見ると以下のメッセージが出ます。 ========= ----------ERROR------- 2020/05/08 12:52:58 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/default.tmp ... Redirecting to /bin/systemctl restart amazon-cloudwatch-agent.service ========== これは大丈夫ではないですよね?
yu_1985

2020/05/08 04:43

> Redirecting to /bin/systemctl restart amazon-cloudwatch-agent.service てことなので、このrestartが成功したかどうか次第ではないでしょうか。 コマンドの実行結果だけでなく実際にエージェントが起動しているかを見てください。 > systemctl status amazon-cloudwatch-agent
lin.ming

2020/05/08 05:49 編集

$ sudo systemctl -l status amazon-cloudwatch-agent ● amazon-cloudwatch-agent.service - Amazon CloudWatch Agent Loaded: loaded (/etc/systemd/system/amazon-cloudwatch-agent.service; enabled; vendor preset: disabled) Active: active (running) since 金 2020-05-08 12:52:59 JST; 1h 53min ago Main PID: 3953 (amazon-cloudwat) CGroup: /system.slice/amazon-cloudwatch-agent.service └─3953 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml -pidfile /opt/aws/amazon-cloudwatch-agent/var/amazon-cloudwatch-agent.pid 5月 08 12:52:59 linming.linming.net systemd[1]: Started Amazon CloudWatch Agent. 5月 08 12:52:59 linming.linming.net systemd[1]: Starting Amazon CloudWatch Agent... 5月 08 12:52:59 linming.linming.net start-amazon-cloudwatch-agent[3953]: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json does not exist or cannot read. Skipping it. 5月 08 12:52:59 linming.linming.net start-amazon-cloudwatch-agent[3953]: Valid Json input schema. 5月 08 12:52:59 linming.linming.net start-amazon-cloudwatch-agent[3953]: I! Detecting runasuser... 5月 08 12:52:59 linming.linming.net start-amazon-cloudwatch-agent[3953]: 2020/05/08 12:52:59 I! AmazonCloudWatchAgent Version 1.237768.0 .========== これは起動に成功しているのでしょうか?あるいはリスタートしまくっているのでしょうか?
yu_1985

2020/05/08 06:04

> Active: active (running) なので起動してます。
lin.ming

2020/05/08 10:30

CloudWatch -> ダッシュボード -> CWAgent -> ウィジェットの追加 -> メトリクスグラフの追加 のあと、どのように選んで行けばメモリ使用量をグラフ化できるのでしょうか?
yu_1985

2020/05/08 21:01

調べれば出てくることではありますが、下記の下の方に書いてある実際のCloudWatchのスクリーンショットを見てみてください。 https://dev.classmethod.jp/articles/new-cloudwatch-agent-collect-metrics-and-logs/ そこはCloudWatch自体の見方なので詳細は割愛します。 もし何も出てないのであればEC2インスタンスのロールに権限が足りていない可能性があります。
lin.ming

2020/05/09 00:26

ディメンジョンが教えていただいたものと全く違います。 ImageId, InstanceId, InstanceType, device, fstype, path ImageId, InstanceId, InstanceType, cpu ImageId, InstanceId, InstanceType, name ImageId, InstanceId, InstanceType 等ではなく、 EBS EC2 RDS SSM Run Command 使用 になっています。 設定ファイルをウィザードで作成の際、例示いただいた URL のとは少し違う選択肢を選んだからでしょうか? EC2には、CloudWatchAgentServerRole, CloudWatchAgentAdminRole を割り当ててます。
lin.ming

2020/05/09 01:12

Wizard を掲示いただいた URL と同じ設定で設定ファイルを作り直したのですが、同じです。
yu_1985

2020/05/09 12:00

CloudWatch Agentから送られたメトリクスは、デフォルトだとCWAgentというディメンションに送られるようになってます。 と、参考URLの画像にも書いてあります…。
lin.ming

2020/05/10 01:25

メトリクスに CWAgent がないのです。
yu_1985

2020/05/10 18:36

作り直した後にエージェントは再起動しましたか?
lin.ming

2020/05/12 11:43

再起動しました。3日前に再起動したと思います。 $ sudo systemctl status amazon-cloudwatch-agent ● amazon-cloudwatch-agent.service - Amazon CloudWatch Agent Loaded: loaded (/etc/systemd/system/amazon-cloudwatch-agent.service; enabled; vendor preset: disabled) Active: active (running) since 土 2020-05-09 10:06:33 JST; 3 days ago Main PID: 4271 (amazon-cloudwat) CGroup: /system.slice/amazon-cloudwatch-agent.service └─4271 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agen... 5月 09 10:06:33 linming.linming.net systemd[1]: Started Amazon CloudWatch... 5月 09 10:06:33 linming.linming.net systemd[1]: Starting Amazon CloudWatc... 5月 09 10:06:33 linming.linming.net start-amazon-cloudwatch-agent[4271]: ... 5月 09 10:06:33 linming.linming.net start-amazon-cloudwatch-agent[4271]: ... 5月 09 10:06:33 linming.linming.net start-amazon-cloudwatch-agent[4271]: ... 5月 09 10:06:33 linming.linming.net start-amazon-cloudwatch-agent[4271]: ... Hint: Some lines were ellipsized, use -l to show in full.
yu_1985

2020/05/12 13:38 編集

> CloudWatch -> ダッシュボード -> CWAgent まさにこれなのですが、これをどこから読み取りましたか? ※追記 正確にはCloudWatchのコンソール→メトリクス からですね。細かいことですが。
yu_1985

2020/05/12 13:43

試しに手元で設定してみましたが、そこまでできたのならCloudWatch Agentがメトリクスを送る権限さえあればメトリクスが送信されているはずです。 CloudWatchコンソールをリロードしてみる、ちゃんとメトリクスを送ったリージョンを表示しているか確認する、くらいでしょうか。 sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status では起動していますか? トラブルシュートのドキュメントももう一度確認してみてください。 どこに設定ファイルがあるとか、どこにログが出てるとか書いてあります。
lin.ming

2020/05/16 07:19

> CloudWatch Agentがメトリクスを送る権限 とはCloudWatchAgentServerRoleでしょうか? あるいは具体的なロール名を教えていただけないでしょうか? sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "running", "starttime": "2020-05-09T01:06:32+0000", "version": "1.237768.0" } です。
yu_1985

2020/05/16 11:33

CloudWatchAgentServerRoleがEC2のIAMロールに振ってあれば十分だとは思いますけど、そのIAMロールではないIAMユーザのキーを使ったりしていないか、ですね。 それ以外にもトラブルシュートのドキュメントを見直して一つ一つ確認してみてください。
lin.ming

2020/05/17 04:22

EC2にIAMロールのCloudWatchAgentServerRoleを振ればいいんですよね? IAMユーザの話が出てくるのはなぜでしょうか?
yu_1985

2020/05/17 11:57 編集

設定で個別にIAMユーザを指定している場合、IAMロールの権限を使ってくれないからです。 何度も記載しましたが、トラブルシュートのドキュメントを見つつ、一つ一つ可能性を探ってみてください。
lin.ming

2020/05/18 02:51 編集

すみません、教えてください。 > 設定で個別にIAMユーザを指定している場合、 どの画面の「設定」でしょうか? 「個別にIAMユーザを指定」とは、具体的にどのような操作でしょうか? やった作業としてはEC2にCloudWatchAgentServerRoleロールを付加しただけで、IAMユーザーをアタッチしたり新しいIAMユーザーを作ったりはしていません。 「やったつもり」「やってないつもり」でトラブルシュートしても意味がないので、一つ一つ潰していきたいです。
yu_1985

2020/05/18 05:11

エージェントの設定ファイルの[AmazonCloudWatchAgent]の項目でIAMユーザを個別指定していなければそういった設定は入っていません。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html そういったケースを挙げたのはエージェントが立ち上がっているにも関わらずCloudWatchにメトリクスが送られないケースの一つとして考えられたからです。 > 「やったつもり」「やってないつもり」でトラブルシュートしても意味がない もちろんです。それでしたら、再三お伝えしている通りトラブルシュートのドキュメントを読んで一つ一つ見てみましょう。 ここで一つ一つ問答を繰り返しても進まないのでまずは何がどう設定されているのか、何が出力されているのかを見てください。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html ログファイルやその他ファイルがどこにあるかも記載があるので、そこに何が出ているのかも見てください。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-files-and-locations
lin.ming

2020/05/19 08:20

質問文に追記3を書きました。 ご確認ください。
yu_1985

2020/05/20 03:38

> /root/.aws/credentials これを読もうとしているということは、IAMロールの権限ではなくrootユーザのcredential情報を使おうとしているということです。 cloudwatch agentはどのconfigを使って起動していますか。 ps aux | grep cloud とでもすれば確認できるでしょう。 また、/opt/aws/amazon-cloudwatch-agent/etc/配下のconfigを全て確認してください amazon-cloudwatch-agent.d配下にあるものも含め。 既に載せてあるconfと同じものを再掲する必要はありません。
lin.ming

2020/05/20 23:10

追記4を記載しました。 ご確認ください。
yu_1985

2020/05/21 00:56

> [credentials] > shared_credential_file = "/root/.aws/credentials" 明らかにこれが原因なので、これらの記載を削除してください。
lin.ming

2020/05/21 11:15

common-config.toml を空にしたのですが、まだ amazon-cloudwatch-agent.log に、 2020-05-21T11:07:17Z E! refresh EC2 Instance Tags failed: SharedCredsLoad: failed to load shared credentials file caused by: FailedRead: unable to open file caused by: open /root/.aws/credentials: permission denied, metrics will be dropped until it got fixed が表示されます。
lin.ming

2020/05/21 11:27

AWS Systems Manager の Run Command で、AmazonCloudWatch-ManageAgent を再実行しようとすると、 1 validation error detected: Value 'AmazonCloudWatch-ManageAgent' at 'commandId' failed to satisfy constraint: Member must have length greater than or equal to 36. とエラーが表示されます。
yu_1985

2020/05/21 15:45 編集

何をどう設定して実行しようとしたんでしょうか。 そしてどこにそのエラーが表示されたんでしょうか。 それがないとどうやってそこに至ったのかがわかりません。 設定を変更したらAgentを再起動してください。 AmazonCloudWatch-ManageAgentから行うならstopを実行した後にstartすることになるでしょう。 インスタンスに入って再起動したほうが早いかもしれませんが。
lin.ming

2020/05/23 00:55 編集

> 何をどう設定して実行しようとしたんでしょうか。 common-config.toml を空にして再実行したのですが、 > そしてどこにそのエラーが表示されたんでしょうか。 まだ amazon-cloudwatch-agent.log に、 2020-05-21T11:07:17Z E! refresh EC2 Instance Tags failed: SharedCredsLoad: failed to load shared credentials file caused by: FailedRead: unable to open file caused by: open /root/.aws/credentials: permission denied, metrics will be dropped until it got fixed が表示されます。 > 何をどう設定して実行しようとしたんでしょうか。 AWS Systems Manager の Run Command で、AmazonCloudWatch-ManageAgent を再実行しようとすると、 > そしてどこにそのエラーが表示されたんでしょうか。 画面上部に、 1 validation error detected: Value 'AmazonCloudWatch-ManageAgent' at 'commandId' failed to satisfy constraint: Member must have length greater than or equal to 36. とエラーが表示されます。
yu_1985

2020/05/23 14:38

> AWS Systems Manager の Run Command で、AmazonCloudWatch-ManageAgent を再実行しようとすると、 AmazonCloudWatch-ManageAgent にはいくつもオプションがあるはずですが、そこについてはどうしましたか? 聞きたいのはそこです。
lin.ming

2020/05/24 04:01 編集

AWS Systems Manager の Run Command 押下、 コマンドドキュメントは「AmazonCloudWatch-ManageAgent」 ドキュメントのはージョンは「4(デフォルト)」 コマンドのパラメータで、 Action は「Start」 Mode は「ec2」 Optional Configuration Source は「ssm」 Optional Configuration Location は空欄 Optional Restart は「yes」 ターゲットは、監視したい ec2 インスタンス その他のバラメータで、 コメントは、空欄 タイムアウトは、「600」 出力オプションで、 「S3 バケットへの書き込みを有効化する」をチェック S3 バケット名で、「リストからバケット名を選択します」を選択 「S3 のキープレフィックス - オプション」は空欄 だと実行に成功するのですが、CloudWatch のメトリクスに「CWAgent」が出てきません。
yu_1985

2020/05/24 13:48

新たに実行したコマンドについてはわかりましたが、その前に実行したコマンドについてはどうなんですか…? > Only for 'configure' actions. If 'yes', restarts the agent to use the new configuration. Otherwise the new config will only apply on the next agent restart. と、Optional Restartのところに書いてありますよね? というわけなので、恐らく既に起動中のエージェントをStartしようとしただけかと思います。 Run CommandではRestartというオプションがないようなので、Stop→Startの順にコマンドを実行するか、サーバにログインしてコマンドでstop→startしてください。 また、Run Commandの実行履歴から、インスタンスでコマンドが実行されたときの出力が確認できるので、想定通りにコマンドが実行されたかきちんと確認するようにしてください。 単にコマンドの「成功」「失敗」だけでは想定通りの動作をしていない可能性があります。 これはRun Commandだけではなく、どのプログラムを動かしたときも同じです。
lin.ming

2020/05/26 11:28

Run Command で、Stop→Start したら、メモリ使用率のグラフが出るようになりました。 長い間付き合っていただいてありがとうございます。 これの次の段階で質問があるのですが、後日改めて起票します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問