Stream Elasti c BeanStalk регистрирует в Cloud Watch из windows экземпляров EC2 - PullRequest
1 голос
/ 18 июня 2020

Мы размещаем проект ASP. NET Core Web API на Amazon Elasti c BeanStalk (. NET на Windows сервере). В приложении ошибки регистрируются в файловой системе с помощью Serilog. Это отлично работает на локальной машине разработки, где мы можем получить доступ к файлам через файловый проводник. При развертывании в EBS к ним нельзя получить доступ без подключения к экземпляру. Мы настроили Amazon Cloud Watch для получения журналов из инстансов. Однако он загружает только журналы IIS вместе с некоторыми другими журналами, указанными c, в стебель компонента Elasti c. Мы хотели бы транслировать журналы наших пользовательских приложений в Amazon Cloud Watch. Мы нашли следующие два подхода.

  1. Использование приемника Serilog Cloud Watch

    Мы не очень заинтересованы в этом, поскольку мы были бы тесно связаны с сервисами Amazon. (Если другой подход невозможен, нам, возможно, придется полагаться на него)

  2. Настройка папки .ebextensions для включения настраиваемого файла конфигурации

    Их много статей и ответов SO, которые Linux указаны c, но не удалось найти какой-либо ресурс, который помог бы для экземпляров windows. Ниже приведены несколько ссылок, по которым мы прошли.

{ ссылка }

https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/instance-configuration/logs-streamtocloudwatch-linux.config

https://ajithp.com/2017/12/10/setting-up-cloudwatch-for-custom-logs-in-aws-elasticbeanstalk/

После этих статей мы создали файл .ebextensions / logs.config, который выглядел, как показано ниже

files:
  "C:\\Program Files\\Amazon\\ElasticBeanstalk\\config\\publogs.d\\custom_logs.conf":
    content: |
      [C:\CustomLogs\Error]
      log_group_name = `{"Fn::Join":["/", ["/aws/elasticbeanstalk", { "Ref":"AWSEBEnvironmentName" }, "error.log"]]}`
      log_stream_name = custom-logs
      file = C:\CustomLogs\Error\error*
  "C:\\Program Files\\Amazon\\ElasticBeanstalk\\config\\taillogs.d\\custom_logs.conf":
    content: |
      [C:\CustomLogs\Error]
      log_group_name = `{"Fn::Join":["/", ["/aws/elasticbeanstalk", { "Ref":"AWSEBEnvironmentName" }, "error.log"]]}`
      log_stream_name = custom-logs
      file = C:\CustomLogs\Error\error*

Мы также включили сценарии для создания папок и авторизации пула приложений для доступа к ним.

Однако нет изменений в группах / потоках журнала Cloud Watch. Чтобы узнать, созданы ли пользовательские файлы .conf, мы подключились к экземпляру через RDP и можем их увидеть. Мы также могли видеть, что пользовательские файлы журналов создаются в указанной папке. Однако мы не смогли найти, почему агент облачного наблюдения не выбирает пользовательский файл .conf. Мы думаем, что место, в которое мы помещали файл, было неправильным, но не смогли найти альтернативы. Здесь нас ударили, и мы не смогли найти пути вперед. Правильно ли наш подход или мы чего-то упускаем?

Любая помощь в этом будет принята с благодарностью. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...