Обзор улучшенного состояния не сообщает должным образом о конфигурации мультиконтейнера Docker в AWS Elastic Beanstalk - PullRequest
4 голосов
/ 28 марта 2019

Я загрузил проект, имеющий multi-containers docker platform с двумя контейнерами, скажем xyz и abc в aws elastic-beanstalk.xyz содержит сервер Tomcat.У меня есть следующая конфигурация в моем проекте для Dockerrunner.aws.json файла.

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
    {
      "name": "xyz",
      "image": "<PLACEHOLDER_REPLACED_BY_CICD_TOOLS>",
      "essential": true,
      "memory": 2048,
      "links": [
        "abc"
      ],
      "environment": [
        {
          "name": "ENVIRONMENT",
          "value": "QA"
        },
        {
          "name": "LOG_HOME",
          "value": "/usr/local/tomcat/logs"
        },
        .
        .
        .
      ],
      "mountPoints": [
        {
          "sourceVolume": "awseb-logs-xyz",
          "containerPath": "/usr/local/tomcat/logs"
        }
      ],
      .
      .
    },
    {
      "name": "abc",
      "image": "image123",
      "essential": true,
      .
      .
      .
    }
  ]
}

Но я не могу просмотреть данные в разделе здоровья эластичного бобового стебля.
enter image description here

Что я сделал до сих поррешить эту проблему:

  • Я прочитал (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-serverlogs.html) и узнал, что у эластичного бобового стебля есть специальный формат ведения журнала для работы страницы с несколькими контейнерами.
  • Для тестированияПредположим, я вручную создал файл журнала ошибок в том же формате, обратившись к экземпляру ec2. Файл, который я создал на хосте экземпляра ec2 в расположении /var/log/containers/xyz (где журналы чтения агента работоспособности) также был правильно сопоставлен с местоположением файла журнала tomcat (т.е. /usr/local/tomcat/logs) в xyz док-контейнере.

Но я все еще не вижу изменений в разделе расширенного обзора работоспособности.

1 Ответ

0 голосов
/ 09 апреля 2019

С этого сайта поддержки AWS :

На консоли Elastic Beanstalk убедитесь, что включены расширенные отчеты о работоспособности:

  1. Выберите Конфигурация , а затем на панели Здоровье в разделе Веб-уровень выберите механизм редактирования.
  2. В разделе ЗдоровьеСообщая , убедитесь, что для Тип системы установлено значение Улучшено .

64-битная Amazon Linux 2016.xx vx.xx работаетПлатформа Node.js:

Убедитесь, что настроен правильный прокси-сервер:

  1. Выберите Конфигурация , а затем на Конфигурация программного обеспечения * Панель 1039 * под Веб-уровень , выберите механизм редактирования.

  2. В Параметры контейнера , убедитесь, что у вас есть Прокси-сервер выбран.Если для Прокси-сервера установлено значение none , файл журнала приложения не создается в /var/log/nginx/healthd/ и отчеты о работоспособности не генерируют данные для отображения.

Вы также можетеизмените журналы и расположение Node.js, чтобы они были совместимы с расширенным форматом журнала работоспособности, а затем просмотрите файл конфигурации healthd /etc/healthd/config.yaml.

64-разрядная версия Amazon Linux 2016.xx vx.xx работаетMulticontainer Docker 2.xx.x:

Эта платформа не оснащена прокси-сервером, поэтому необходимо убедиться, что журналы создаются в правильном формате из их контейнеров, и настроить healthd начитать их.Чтобы использовать расширенный мониторинг работоспособности в средах Multicontainer Docker, необходимо настроить healthd для использования этих журналов.

Чтобы предоставить журналы агенту работоспособности, убедитесь в следующем:

  • Журналы в правильном формате

  • Журналы записываются в /var/log/nginx/healthd/

  • В именах журналов используется формат: application.log.$year-$month-$day-$hour

  • Журналы чередуются один раз в час

  • Журналы не усекаются

Примечание : На платформе Node.js, если вы отключите прокси, журналы не создаются в /var/logs/nginx/healthd/.Вы должны либо повторно включить прокси-сервер, либо настроить приложение Node.js для создания журналов в формате /var/logs/nginx/healthd/

. В этом примере Docker-multicontainer-v2.zip код показывает, как управлять расширениями, гдеhealthd конфигурация настроена на чтение другого каталога.[...]

Я думаю, что эта часть может вам помочь:

Если вы не видите информацию о сервере в Обзоре расширенного состояния,проверьте состояние службы healthd на экземпляре и убедитесь, что он работает.Если он не работает, перезапустите службу.

В этом примере кода показано, как проверить состояние службы исправности:

$ ps aux | grep healthd

В этом примере кода показано, как перезапуститьhealthd сервис:

[ec2-user@ip-172-31-39-182 ~]$ sudo initctl restart healthd

...