Агент док-станции DataDog не получает журналы из контейнера приложения - PullRequest
0 голосов
/ 10 марта 2019

У меня есть приложение Golang, оно записывает логи в Stdout с помощью Logrus. Я пытался воссоздать этот https://github.com/DataDog/docker-compose-example сценарий и заменить приложение python своим приложением. Но журналы не приходят в Datadog Dashboad Это docker-compose, я пытаюсь заставить работать

version: "3"
services:
  gos:
    build: goapp
    stdin_open: true
    ports:
      - "6000:6000"
    volumes:
      - /tmp/goapp:/tmp/goapp
      - ./goapp:/code
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DATADOG_HOST=datadog
  web:
    build: web
    command: python app.py
    ports:
     - "5000:5000"
    volumes:
     - ./web:/code # modified here to take into account the new app path
    links:
     - redis
    environment:
     - DATADOG_HOST=datadog # used by the web app to initialize the Datadog library
  redis:
    image: redis
  # agent section
  datadog:
    build: datadog
    links:
     - redis # ensures that redis is a host that the container can find
     - web # ensures that the web app can send metrics
    environment:
     - DD_API_KEY=34f-------63c
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock
     - /proc/:/host/proc/:ro
     - /sys/fs/cgroup:/host/sys/fs/cgroup:ro

Я также попытался выполнить несоставную, но простую установку док-контейнера для агента с помощью этих https://docs.datadoghq.com/logs/log_collection/docker/?tab=containerinstallation инструкций.

Я запускаю свой контейнер приложений golang с

docker run -v /var/run/docker.sock:/var/run/docker.sock:rw -d testgo

с Dockerfile

FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v github.com/Sirupsen/logrus
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/alexellis/href-counter/app .
EXPOSE 6000
LABEL "com.datadoghq.ad.logs"='[{"source": "goapp", "service": "webapp"}]'
CMD ["./app"] 

и агент DD может видеть взлеты и падения контейнеров приложений, но не получает журналы

1 Ответ

0 голосов
/ 14 марта 2019

мне кажется, что в конфигурации службы docker-compose datadog вам не хватает пары переменных среды. А также том, который добавляет реестр для отслеживания журналов из сокета докера. Может быть, попробовать что-то вроде этого, если у вас нет?

  # agent section
  datadog:
    build: datadog
    links:
     - redis # ensures that redis is a host that the container can find
     - web # ensures that the web app can send metrics
    environment:
     - DD_API_KEY=34f-------63c
     - DD_LOGS_ENABLED=true
     - DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
     - DD_AC_EXCLUDE="name:datadog-agent"
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock:ro
     - /proc/:/host/proc/:ro
     - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
     - /opt/datadog-agent/run:/opt/datadog-agent/run:rw

оттуда, если у вас все еще есть проблемы, вы можете обратиться к support@datadoghq.com, чтобы попросить о помощи. Они довольно быстро отвечают.

...