Сбор журналов Python Datadog из автономного Github Runner

#python #docker #github-actions #datadog #github-actions-self-hosted-runners

#python #docker #github-действия #datadog #github-действия-автономные-бегуны

Вопрос:

Я пытаюсь собирать журналы из заданий cron, выполняемых на наших автономных Github runners, но пока могу видеть только фактические журналы хоста github-runner.

Я создал автономный Github Runner в AWS, работающий на Unbtu, со стандартной конфигурацией.

Мы также установили Datadog agent v7 с их сценарием и базовой конфигурацией и добавили сбор журналов из файлов, используя эти инструкции

Наша конфигурация для сбора журналов приведена ниже.

 curl https://s3.amazonaws.com/dd-agent/scripts/install_script.sh -o ddinstall.sh
export DD_API_KEY=${datadog_api_key}
export DD_SITE=${datadog_site}
export DD_AGENT_MAJOR_VERSION=7
bash ./ddinstall.sh

# Configure logging for GitHub runner
tee /etc/datadog-agent/conf.d/runner-logs.yaml << EOF
logs:
  - type: file
    path: /home/ubuntu/actions-runner/_diag/Worker_*.log
    service: github
    source: github-worker
  - type: file
    path: /home/ubuntu/actions-runner/_diag/Runner_*.log
    service: github
    source: github-runner
EOF
chown dd-agent:dd-agent /etc/datadog-agent/conf.d/runner-logs.yaml

# Enable log collection
echo 'logs_enabled: true' >> /etc/datadog-agent/datadog.yaml
systemctl restart datadog-agent
 

После этих шагов я могу видеть журналы с наших серверов Github runners. Однако на этих бегунах у нас есть несколько заданий python cron, выполняемых в контейнерах Docker, регистрирующихся в стандартный вывод. Я могу видеть эти журналы в пользовательском интерфейсе Github Runner, но они недоступны в Datadog, и это те журналы, которые я действительно хотел бы захватить, чтобы я мог извлекать метрики.

Нужны ли контейнеры docker для скриптов python также для какой-либо специальной настройки datadog? Нужно ли им регистрироваться в файле, который агенты datadog регистрируют как файл журнала в приведенной выше настройке?

Комментарии:

1. Похоже, что агент сбора данных должен быть настроен в каждом из контейнеров docker, чтобы можно было захватывать и отправлять стандартные журналы. В противном случае агент должен собирать только журналы хост-компьютеров, а не контейнеры docker.

2. Ах, это, как ни странно, имеет смысл. Я попробую, Эдвард, и опубликую свои результаты! Спасибо и счастливых праздников