Jam*_*ady 6 logging kubernetes datadog devops
我们按照这些说明使用 DataDog 的操作符在 Kubernetes 1.22 集群中设置 DataDog。这是通过 helm 安装的,没有任何自定义。
Operator、集群代理和每节点代理 Pod 均按预期运行。我们知道代理能够与 DataDog 端点成功通信,因为我们的新集群显示在 DataDog 的基础设施列表视图中。
然而,来自我们应用程序 Pod 的日志没有出现在 DataDog 中,我们正在努力找出原因。
我们确实确认了一些明显的事情:
agent.log.enabled
在我们的代理规范中是正确的(下面包含完整的 YAML)。/var/log/pods/
,并且包含我们期望的日志行。因此,代理与 DataDog UI 中可用的日志之间似乎出现了问题。有谁对如何调试这个有任何想法?
我们的代理配置:
apiVersion: datadoghq.com/v1alpha1
kind: DatadogAgent
metadata:
name: datadog
namespace: datadog
spec:
agent:
apm:
enabled: false
config:
tolerations:
- operator: Exists
image:
name: "gcr.io/datadoghq/agent:latest"
log:
enabled: true
process:
enabled: false
processCollectionEnabled: false
clusterAgent:
config:
admissionController:
enabled: true
mutateUnlabelled: true
clusterChecksEnabled: true
externalMetrics:
enabled: true
image:
name: "gcr.io/datadoghq/cluster-agent:latest"
replicas: 1
clusterChecksRunner: {}
credentials:
apiSecret:
keyName: api-key
secretName: datadog-secret
appSecret:
keyName: app-key
secretName: datadog-secret
features:
kubeStateMetricsCore:
enabled: false
logCollection:
enabled: true
orchestratorExplorer:
enabled: false
Run Code Online (Sandbox Code Playgroud)
以下是 DataDog 代理之一的环境变量:
DD_API_KEY : secretKeyRef(datadog-secret.api-key)
DD_CLUSTER_AGENT_AUTH_TOKEN : secretKeyRef(datadog.token)
DD_CLUSTER_AGENT_ENABLED : true
DD_CLUSTER_AGENT_KUBERNETES_SERVICE_NAME : datadog-cluster-agent
DD_COLLECT_KUBERNETES_EVENTS : false
DD_DOGSTATSD_ORIGIN_DETECTION : false
DD_DOGSTATSD_SOCKET : /var/run/datadog/statsd/statsd.sock
DD_EXTRA_CONFIG_PROVIDERS : clusterchecks endpointschecks
DD_HEALTH_PORT : 5555
DD_KUBERNETES_KUBELET_HOST : fieldRef(v1:status.hostIP)
DD_LEADER_ELECTION : false
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL : false
DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE : true
DD_LOGS_ENABLED : true
DD_LOG_LEVEL : INFO
KUBERNETES : yes
Run Code Online (Sandbox Code Playgroud)
如果您能够看到指标,那么对于日志我可以看到两个可能的原因
helm upgrade -i datadog --set datadog.apiKey=mykey datadog/datadog --set datadog.logs.enabled=true
Run Code Online (Sandbox Code Playgroud)
US
.helm upgrade -i datadog --set datadog.apiKey=my-key datadog/datadog --set datadog.site=us5.datadoghq.com
Run Code Online (Sandbox Code Playgroud)
如果这两个正确,请确保 pod 写入日志 stdout/sterror
因为默认情况下日志路径似乎是正确的
- name: logpodpath
mountPath: /var/log/pods
mountPropagation: None
Run Code Online (Sandbox Code Playgroud)
除此之外,您还需要将要从中收集日志的容器列表列入白名单,或者您可以将以下 ENV 设置为 true,它应该可以工作并收集所有日志。
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1891 次 |
最近记录: |