«Невозможно определить aws -регион» при запуске локального агента Cloudwatch - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь настроить агент AWS Cloudwatch для запуска на vanilla Ubuntu 18.04 вне AWS. Каждый раз, когда я запускаю его, я получаю эту ошибку:

# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c "file:/path/to/cloudwatch/cloudwatch.json" -s
/opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source file:/path/to/cloudwatch/cloudwatch.json --mode onPrem --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default
Got Home directory: /root
I! Set home dir Linux: /root
Unable to determine aws-region.
Please make sure the credentials and region set correctly on your hosts.
Refer to http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
Fail to fetch the config!

Запуск программы под strace -f показывает, что она пытается прочитать /root/.aws/credentials и затем завершается. Согласно руководству, вот содержимое /root/.aws/credentials:

[AmazonCloudWatchAgent]
aws_access_key_id = key
aws_secret_access_key = secret
region = us-west-2

Если я запусту aws configure get region, он сможет правильно найти регион. Однако агент Cloudwatch не может прочитать его. Вот содержимое common-config.toml (которое также читается для каждой строки).

## Configuration for shared credential.
## Default credential strategy will be used if it is absent here:
##  Instance role is used for EC2 case by default.
##  AmazonCloudWatchAgent profile is used for onPremise case by default.
[credentials]
   shared_credential_profile = "AmazonCloudWatchAgent"
   shared_credential_file = "/root/.aws/credentials"


## Configuration for proxy.
## System-wide environment-variable will be read if it is absent here.
## i.e. HTTP_PROXY/http_proxy; HTTPS_PROXY/https_proxy; NO_PROXY/no_proxy
## Note: system-wide environment-variable is not accessible when using ssm run-command.
## Absent in both here and environment-variable means no proxy will be used.
# [proxy]
#    http_proxy = "{http_url}"
#    https_proxy = "{https_url}"
#    no_proxy = "{domain}"

Вот еще кое-что, что я пробовал:

  • , включающий region (и все значения) в конфигурации в двойных кавычках, за https://forums.aws.amazon.com/thread.jspa?threadID=291589. Это не имело значения.

  • добавление /home/myuser/.aws/config, /home/myuser/.aws/credentials и /root/.aws/config и заполнение их с соответствующими значениями. По сути, эти файлы не читаются.

  • в поисках исходного кода для агента CloudWatch (он не с открытым исходным кодом)

  • AWS_REGION = us-west-2 явно в программной среде (та же ошибка)

  • изменение [AmazonCloudWatchAgent] на [profile AmazonCloudWatchAgent] везде и всех перестановок выше (без разницы)

  • добавление раздела [default] во все файлы конфигурации (без разницы)

  • прямой вызов программы config-downloader, настройка AWS_REGION et c , (та же ошибка)

  • становится пользователем, не являющимся root, и затем вызывает программу, используя sudo вместо вызова программы как пользователя root без sudo.

Я получаю ту же ошибку, что бы я ни пытался. Я установил агент CloudWatch, загрузив «последнюю» версию 23 марта 2020 года в соответствии с этими инструкциями. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html

...