ネットワークパフォーマンスのモニタリングのインストール
Datadog の調査レポート: サーバーレスの状態 レポート: サーバーレスの状態

ネットワークパフォーマンスのモニタリングのインストール

ネットワークパフォーマンスのモニタリングには Datadog Agent v6.14 以降が必要です。この製品は eBPF に構築されているため、Datadog では最小要件として基盤プラットフォームに Linux kernel バージョン4.4.0 以降が必要です。

サポート対象のプラットフォーム

  • Ubuntu 16.04 以降
  • Debian 9 以降
  • Fedora 26 以上
  • SUSE 15 以降
  • Amazon AMI 2016.03 以降
  • Amazon Linux 2

CentOS/RHEL 7.6 以降の要件は、kernel 4.4.0 以降では適用外です。

: 現在 Datadog では、Windows プラットフォームおよび macOS プラットフォームのネットワークパフォーマンスのモニタリングをサポートしていません。

次のプロビジョニングシステムはサポート対象です。

セットアップ

ご使用のシステムのセットアップに基づいて、Agent の主要コンフィギュレーションファイルでネットワークパフォーマンスのモニタリングを構成して有効化します。

Datadog Agent を使用してネットワークパフォーマンスのモニタリングを有効化するには、次のコンフィギュレーションを使用します。

  1. v6.14 より前のバージョンの Agent を使用されている場合は、先にライブプロセスの収集を有効化し、このステップは飛ばします。

  2. 下記のシステムプローブのコンフィギュレーションの例をコピーします。

    sudo -u dd-agent cp /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml
  3. /etc/datadog-agent/system-probe.yaml を編集し、有効フラグを true に設定します。

    system_probe_config:
        ## @param enabled - boolean - optional - default: false
        ## Set to true to enable the System Probe.
        #
        enabled: true
  4. システムプローブを起動します。

    sudo service datadog-agent-sysprobe start

    : システムで service コマンドを利用できない場合は、代わりに次のコマンドを実行します。sudo systemctl start datadog-agent-sysprobe

  5. Agent を再起動します

    sudo service datadog-agent restart

    : システムで service コマンドを利用できない場合は、代わりに次のコマンドを実行します。sudo systemctl restart datadog-agent

  6. システムプローブを有効化し、ブート時に起動します。

    sudo service enable datadog-agent-sysprobe

    : システムで service コマンドを利用できない場合は、代わりに次のコマンドを実行します。sudo systemctl enable datadog-agent-sysprobe

Kubernetes を使用してネットワークパフォーマンスのモニタリングを有効化するには、次のコンフィギュレーションを使用します。

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
    name: datadog-agent
    namespace: default
spec:
    template:
        metadata:
            labels:
                app: datadog-agent
            name: datadog-agent
            annotations:
                container.apparmor.security.beta.kubernetes.io/system-probe: unconfined
        spec:
            serviceAccountName: datadog-agent
            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: '<DATADOG_API_KEY>'
                      - name: KUBERNETES
                        value: 'true'
                      - name: DD_HEALTH_PORT
                        value: '5555'
                      - name: DD_PROCESS_AGENT_ENABLED
                        value: 'true'
                      - name: DD_SYSTEM_PROBE_ENABLED
                        value: 'true'
                      - name: DD_SYSTEM_PROBE_EXTERNAL
                        value: 'true'
                      - name: DD_SYSPROBE_SOCKET
                        value: /var/run/s6/sysprobe.sock
                      - name: DD_KUBERNETES_KUBELET_HOST
                        valueFrom:
                            fieldRef:
                                fieldPath: status.hostIP
                  resources:
                      requests:
                          memory: 256Mi
                          cpu: 200m
                      limits:
                          memory: 256Mi
                          cpu: 200m
                  volumeMounts:
                      - name: dockersocket
                        mountPath: /var/run/docker.sock
                      - name: procdir
                        mountPath: /host/proc
                        readOnly: true
                      - name: cgroups
                        mountPath: /host/sys/fs/cgroup
                        readOnly: true
                      - name: debugfs
                        mountPath: /sys/kernel/debug
                      - name: s6-run
                        mountPath: /var/run/s6
                  livenessProbe:
                      httpGet:
                          path: /health
                          port: 5555
                      initialDelaySeconds: 15
                      periodSeconds: 15
                      timeoutSeconds: 5
                      successThreshold: 1
                      failureThreshold: 3
                - name: system-probe
                  image: 'datadog/agent:latest'
                  imagePullPolicy: Always
                  securityContext:
                      capabilities:
                          add:
                              - SYS_ADMIN
                              - SYS_RESOURCE
                              - SYS_PTRACE
                              - NET_ADMIN
                  command:
                      - /opt/datadog-agent/embedded/bin/system-probe
                  env:
                      - name: DD_SYSTEM_PROBE_ENABLED
                        value: 'true'
                      - name: DD_SYSPROBE_SOCKET
                        value: /var/run/s6/sysprobe.sock
                  resources:
                      requests:
                          memory: 150Mi
                          cpu: 200m
                      limits:
                          memory: 150Mi
                          cpu: 200m
                  volumeMounts:
                      - name: procdir
                        mountPath: /host/proc
                        readOnly: true
                      - name: cgroups
                        mountPath: /host/sys/fs/cgroup
                        readOnly: true
                      - name: debugfs
                        mountPath: /sys/kernel/debug
                      - name: s6-run
                        mountPath: /var/run/s6
            volumes:
                - name: dockersocket
                  hostPath:
                      path: /var/run/docker.sock
                - name: procdir
                  hostPath:
                      path: /proc
                - name: cgroups
                  hostPath:
                      path: /sys/fs/cgroup
                - name: s6-run
                  emptyDir: {}
                - name: debugfs
                  hostPath:
                      path: /sys/kernel/debug

<DATADOG_API_KEY>Datadog API キーに置き換えます。

Docker でネットワークパフォーマンスのモニタリングを有効化するには、コンテナ Agent を起動する際に、次のコンフィギュレーションを使用します。

$ docker run -e DD_API_KEY="<DATADOG_API_KEY>" \
-e DD_SYSTEM_PROBE_ENABLED=true \
-e DD_PROCESS_AGENT_ENABLED=true \
      -v /var/run/docker.sock:/var/run/docker.sock:ro \
      -v /proc/:/host/proc/:ro \
      -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-v /sys/kernel/debug:/sys/kernel/debug \
--security-opt apparmor:unconfined \
--cap-add=SYS_ADMIN \
--cap-add=SYS_RESOURCE \
--cap-add=SYS_PTRACE \
--cap-add=NET_ADMIN \
datadog/agent:latest

<DATADOG_API_KEY>Datadog API キーに置き換えます。

その他の参考資料