开始使用Datadog监视Docker容器时的注意事项


关于本文

我想将放置在AWS EC2(操作系统为Amazon Linux 2)上的气流的日志收集留给datadog,当我根据教程进行设置时,它实际上在一瞬间就结束了,因此请留下深刻的注释。 datadog代理使用参考文章 1之后的docker映像版本。
要进行设置,我在官方文档 2中向最简单的脚本添加了一些环境变量。

我做了

只需运行下面的shell脚本。就是这样

init_dd-agent.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash -eu

DOCKER_CONTENT_TRUST=1 \
docker run  -d --name datadog-agent -v /var/run/docker.sock:/var/run/docker.sock:ro \
                                    -v /proc/:/host/proc/:ro \
                                    -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
                                    -e DD_API_KEY=$MY_DD_API_KEY \
                                    -e DD_TAGS="<your-tag1> <your-tag2>" \
                                    -e DD_LOGS_ENABLED=true \
                                    -e DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true \
                                    -e DD_AC_EXCLUDE="name:datadog-agent" \
                                    -e SD_BACKEND="docker" \
                                    -e NON_LOCAL_TRAFFIC=false \
                                    datadog/agent:latest

如果它正在正常运行,则datadog代理容器应该正在运行,因此请运行docker ps命令进行检查。
另外,请确保在执行该过程后,服务器指标和日志在datadog上运行。

设定点

就个人而言,除了官方文档外,datadog-agent github存储库中还有各种说明 3,因此,让我们根据要监视的目标找到最佳选择。

  • 当然,DD_API_KEY是必需的设置。从datadog管理屏幕中获取它,并将其放在环境变量中。

  • 通过在以空格分隔的DD_TAGS中插入标签,可以改善datadog屏幕上的可搜索性。请选择您喜欢的名称,例如部门名称。

  • 通过将DD_LOGS_ENABLED设置为true,日志将在Datadog的Logs下发送。如果未设置,则仅服务器指标将被链接。

  • DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL通过将其设置为true,可以获取所有容器的执行日志。如果您在具有datadog代理的服务器上运行容器应用程序,并且想要收集其日志,请将其设置为true。

  • 通过设置DD_AC_EXCLUDE,可以指定不收集日志的容器。在这种情况下,进行设置是因为未收集datadog-agent本身的日志。

参考文章

  • Datadog使Docker监控愉快吗?

  • Datadog官方文档?

  • DataDog / docker-dd-agent?