【GKE/Datadog】最低限のログ検知
ログレベルが errorの時は、slackに通知させる仕組みを作っていきたいと思います。
使用するサービス
- GKE
- Datadog
- Slack
実装
Datadog
下記yamlファイルを apply
すれば良いです。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: datadog-agent
spec:
selector:
matchLabels:
app: datadog-agent
template:
metadata:
labels:
app: datadog-agent
name: datadog-agent
spec:
containers:
- image: datadog/agent:latest
imagePullPolicy: Always
name: datadog-agent
ports:
- containerPort: 8125
name: dogstatsdport
protocol: UDP
- containerPort: 8126
name: traceport
protocol: TCP
env:
- name: DD_API_KEY
value: [API KEY]
- name: DD_COLLECT_KUBERNETES_EVENTS
value: "true"
- name: DD_LEADER_ELECTION
value: "true"
- name: KUBERNETES
value: "yes"
- name: DD_KUBERNETES_KUBELET_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: DD_LOGS_ENABLED # 追加
value: "true"
- name: DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL # 追加
value: "true"
- name: DD_CRI_SOCKET_PATH
value: /host/var/run/docker.sock
- name: DOCKER_HOST
value: "unix:///host/var/run/docker.sock"
- name: DD_AC_EXCLUDE
value: "name:datadog-agent"
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
volumeMounts:
- name: dockersocketdir
mountPath: /host/var/run
- name: procdir
mountPath: /host/proc
readOnly: true
- name: cgroups
mountPath: /host/sys/fs/cgroup
readOnly: true
- name: pointerdir # 追加
mountPath: /opt/datadog-agent/run
livenessProbe:
exec:
command:
- ./probe.sh
initialDelaySeconds: 15
periodSeconds: 5
volumes:
- hostPath:
path: /var/run
name: dockersocketdir
- hostPath:
path: /proc
name: procdir
- hostPath:
path: /sys/fs/cgroup
name: cgroups
- hostPath: # 追加
path: /var/lib/datadog-agent/run
name: pointerdir
Datadog でログ出力
以前記事に書いた通りにdatadogをクラスタに適応しても、コンテナのログはDatadogには集まりません。
以前下記で書いた yaml
に実装を追加する必要があります。
コメントで追加と書いている箇所が、それに該当します。
【GKE】DatadogでGKEを監視する - Qiita
追加箇所
env:
(...)
- name: DD_LOGS_ENABLED
value: "true"
- name: DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
value: "true"
volumeMounts:
(...)
- name: pointerdir
mountPath: /opt/datadog-agent/run
(...)
volumes:
(...)
- hostPath:
path: /var/lib/datadog-agent/run
name: pointerdir
どこを確認すべきか
Logs → GettingStartedをクリックし、追加で付与すべきyamlの実装を確認します。
Container → Kubernetesを選択します。
issue
pointerdir
で書かれているところは、上記のdatadog管理画面上の実装とは少し違うので、注意が必要です。
- hostPath:
path: /var/lib/datadog-agent/run
name: pointerdir
kubernetes logging, datadog-agent RunContainerError · Issue #3370 · DataDog/datadog-agent · GitHub
Author And Source
この問題について(【GKE/Datadog】最低限のログ検知), 我々は、より多くの情報をここで見つけました https://qiita.com/wqwq/items/18ee1b802e9a245f3eae著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .