すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Windows ノードからアプリケーションログを収集するために Logtail を使用する

最終更新日:Apr 03, 2025

Logtail を使用して、Windows ノードからアプリケーションログを収集できます。このトピックでは、Windows ノードからアプリケーションログを収集するために Logtail を使用する方法について説明します。

前提条件

制限事項

Logtail を使用して収集できるのは、標準出力に出力されるアプリケーションログのみです。アプリケーションログがログファイルに出力される場合、または Windows ロギングサービスを使用して出力される場合は、LogMonitor を使用して Windows ノードから標準出力にアプリケーションログを出力することをお勧めします。詳細については、「LogMonitor」および「LogMonitor の概要」をご参照ください。

Windows ノードに Logtail V1.1.x をインストールする

重要

Logtail V1.1.x は、Windows ノード上の権限を持つプロキシプロセスに依存しています。Logtail V1.1.x は、windows.alibabacloud.com/deployment-topology=2.0 ラベルが付いた Windows ノードにのみデプロイできます。

次の YAML テンプレートを使用して、Logtail を Windows ノードに DaemonSet としてデプロイします。

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    k8s-app: logtail-ds-windows
  name: logtail-ds-windows
  namespace: kube-system
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: logtail-ds-windows
  template:
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ""
      labels:
        app: logtail-ds-windows
    spec:
      hostNetwork: true
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet
              - key: beta.kubernetes.io/os
                operator: In
                values:
                - windows
              - key: windows.alibabacloud.com/deployment-topology
                operator: In
                values:
                - "2.0"
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet
              - key: kubernetes.io/os
                operator: In
                values:
                - windows
              - key: windows.alibabacloud.com/deployment-topology
                operator: In
                values:
                - "2.0"
      containers:
      - name: logtail
        # v1.1+ からは、以下のボリューム構成を使用してください。 // Japanese comment
        command:
        - pwsh.exe
        - -NoLogo
        - -NonInteractive
        - -File
        - entrypoint.ps1
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CONTAINER_NAME
          value: "logtail"
        # --- logtail ファイル構成の生成を構成する --- # // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_PATH" は logtail の構成パスを指定します。 // Japanese comment
        ## パスが空白の場合、構成は // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_ITEM__" 接頭辞の環境変数を使用して生成されます。 // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_ITEM__" は、構成項目のタイプを表示するためにタイプインジケーターと組み合わせる必要があります。以下のインジケーターはオプションです。 // Japanese comment
        ## -       INT__ : 64 ビット符号付き整数。 // Japanese comment
        ## -      UINT__ : 64 ビット符号なし整数。 // Japanese comment
        ## -      DOUB__ : 64 ビット浮動小数点数。 // Japanese comment
        ## -      BOOL__ : ブール値。 // Japanese comment
        ## -       STR__ : 文字列、デフォルトタイプ。 // Japanese comment
        ## - {<TYPE>}S__ : 縦棒で区切られたフォーマットの <TYPE> の配列。 // Japanese comment
        ## P.S: "ALICLOUD_LOGTAIL_CONFIG_ITEM__" を万能薬として扱わないでください。 // Japanese comment
        ## 構成が複雑すぎる場合は、 // Japanese comment
        ## 詳細な構成ファイルを "ALICLOUD_LOGTAIL_CONFIG_PATH" にマウントしてください。 // Japanese comment
        - name: ALICLOUD_LOGTAIL_CONFIG_PATH
          valueFrom:
            configMapKeyRef:
              key: log-config-path
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__DOUB__CPU_USAGE_LIMIT
          valueFrom:
            configMapKeyRef:
              key: cpu-core-limit
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__MEM_USAGE_LIMIT
          valueFrom:
            configMapKeyRef:
              key: mem-limit
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__MAX_BYTES_PER_SEC
          valueFrom:
            configMapKeyRef:
              key: max-bytes-per-sec
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__SEND_REQUESTS_CONCURRENCY
          valueFrom:
            configMapKeyRef:
              key: send-requests-concurrency
              name: alibaba-log-configuration
        # --- logtail 構成を構成する --- # // Japanese comment
        ## "ALICLOUD_LOG_REGION" は Alibaba Cloud のリージョンを指定します。 // Japanese comment
        ## 空白の場合、リージョンは自動的に検出されます。 // Japanese comment
        ## "ALICLOUD_LOG_USER_ID" は "ALIYUN_LOGTAIL_USER_ID" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスの UID を指定します。 // Japanese comment
        ## "ALICLOUD_LOG_PROJECT" は "ALICLOUD_LOG_DEFAULT_PROJECT" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスのプロジェクトを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_MACHINE_GROUP" は "ALIYUN_LOGTAIL_USER_DEFINED_ID" // Japanese comment
        ## および "ALICLOUD_LOG_DEFAULT_MACHINE_GROUP" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスのマシングループを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_ENDPOINT" は Alibaba Cloud SLS サービスのエンドポイントを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_ECS_FLAG" は ECS フラグをログに記録するかどうかを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_DOCKER_ENV_CONFIG" // Japanese comment
        ## "ALICLOUD_LOG_ENV_TAGS" は "ALIYUN_LOG_ENV_TAGS" と同じで、 // Japanese comment
        ## 記録される環境変数を指定します。 // Japanese comment
        ## これは縦棒で区切られたリストの形式です。 // Japanese comment
        - name: ALICLOUD_LOG_REGION
          value: ""
        - name: ALICLOUD_LOG_USER_ID
          valueFrom:
            configMapKeyRef:
              key: log-ali-uid
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_PROJECT
          valueFrom:
            configMapKeyRef:
              key: log-project
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_MACHINE_GROUP
          valueFrom:
            configMapKeyRef:
              key: log-machine-group
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_ENDPOINT
          valueFrom:
            configMapKeyRef:
              key: log-endpoint
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_ECS_FLAG
          value: "true"
        - name: ALICLOUD_LOG_DOCKER_ENV_CONFIG
          value: "true"
        - name: ALICLOUD_LOG_ENV_TAGS
          value: _node_name_|_node_ip_|working_ip
        - name: _node_name_
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: _node_ip_
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: working_ip
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        # 次のイメージアドレスの cn-hangzhou を、クラスターがデプロイされているリージョンに置き換えます。 // Japanese comment
        image: registry-cn-hangzhou-vpc.ack.aliyuncs.com/acs/logtail-windows:v1.1.30-aliyun.1
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: 1
            memory: 1Gi
          requests:
            cpu: 100m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - name: addon-token
          mountPath: 'c:/var/addon'
        - name: host-binary
          mountPath: 'c:/host/opt/ilogtail/bin'
        - name: project-wins-pipe
          mountPath: \\.\pipe\rancher_wins
      terminationGracePeriodSeconds: 30
      priorityClassName: system-node-critical
      restartPolicy: Always
      tolerations:
      - operator: Exists
      volumes:
      - name: addon-token
        secret:
          secretName: addon.log.token
          items:
            - key: addon.token.config
              path: token-config
      - name: host-binary
        hostPath:
          path: 'c:/opt/ilogtail/bin'
          type: DirectoryOrCreate
      - name: project-wins-pipe
        hostPath:
          path: \\.\pipe\rancher_wins
  updateStrategy:
    type: RollingUpdate

Windows ノードに Logtail V1.0.x をインストールする

重要

このバージョンは、Kubernetes 1.18.x 以前の ACK クラスターにのみ適用されます。

次の YAML テンプレートを使用して、Windows ノードに Logtail をデプロイし、Logtail を DaemonSet として実行します。

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    k8s-app: logtail-ds-windows
  name: logtail-ds-windows
  namespace: kube-system
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: logtail-ds-windows
  template:
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ""
      labels:
        app: logtail-ds-windows
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet
              - key: beta.kubernetes.io/os
                operator: In
                values:
                - windows
              - key: windows.alibabacloud.com/deployment-topology
                operator: DoesNotExist
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet
              - key: kubernetes.io/os
                operator: In
                values:
                - windows
              - key: windows.alibabacloud.com/deployment-topology
                operator: DoesNotExist
      containers:
      - name: logtail
        command:
        - powershell.exe
        - -NoLogo
        - -NonInteractive
        - -File
        - entrypoint.ps1
        env:
        # --- logtail ファイル構成の生成を構成する --- # // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_PATH" は logtail の構成パスを指定します。 // Japanese comment
        ## パスが空白の場合、構成は // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_ITEM__" 接頭辞の環境変数を使用して生成されます。 // Japanese comment
        ## "ALICLOUD_LOGTAIL_CONFIG_ITEM__" は、構成項目のタイプを表示するためにタイプインジケーターと組み合わせる必要があります。以下のインジケーターはオプションです。 // Japanese comment
        ## -       INT__ : 64 ビット符号付き整数。 // Japanese comment
        ## -      UINT__ : 64 ビット符号なし整数。 // Japanese comment
        ## -      DOUB__ : 64 ビット浮動小数点数。 // Japanese comment
        ## -      BOOL__ : ブール値。 // Japanese comment
        ## -       STR__ : 文字列、デフォルトタイプ。 // Japanese comment
        ## - {<TYPE>}S__ : 縦棒で区切られたフォーマットの <TYPE> の配列。 // Japanese comment
        ## P.S: "ALICLOUD_LOGTAIL_CONFIG_ITEM__" を万能薬として扱わないでください。 // Japanese comment
        ## 構成が複雑すぎる場合は、 // Japanese comment
        ## 詳細な構成ファイルを "ALICLOUD_LOGTAIL_CONFIG_PATH" にマウントしてください。 // Japanese comment
        - name: ALICLOUD_LOGTAIL_CONFIG_PATH
          valueFrom:
            configMapKeyRef:
              key: log-config-path
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__DOUB__CPU_USAGE_LIMIT
          valueFrom:
            configMapKeyRef:
              key: cpu-core-limit
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__MEM_USAGE_LIMIT
          valueFrom:
            configMapKeyRef:
              key: mem-limit
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__MAX_BYTES_PER_SEC
          valueFrom:
            configMapKeyRef:
              key: max-bytes-per-sec
              name: alibaba-log-configuration
        - name: ALICLOUD_LOGTAIL_CONFIG_ITEM__UINT__SEND_REQUESTS_CONCURRENCY
          valueFrom:
            configMapKeyRef:
              key: send-requests-concurrency
              name: alibaba-log-configuration
        # --- logtail 構成を構成する --- # // Japanese comment
        ## "ALICLOUD_LOG_REGION" は Alibaba Cloud のリージョンを指定します。 // Japanese comment
        ## 空白の場合、リージョンは自動的に検出されます。 // Japanese comment
        ## "ALICLOUD_LOG_USER_ID" は "ALIYUN_LOGTAIL_USER_ID" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスの UID を指定します。 // Japanese comment
        ## "ALICLOUD_LOG_PROJECT" は "ALICLOUD_LOG_DEFAULT_PROJECT" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスのプロジェクトを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_MACHINE_GROUP" は "ALIYUN_LOGTAIL_USER_DEFINED_ID" // Japanese comment
        ## および "ALICLOUD_LOG_DEFAULT_MACHINE_GROUP" と同じで、 // Japanese comment
        ## Alibaba Cloud SLS サービスのマシングループを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_ENDPOINT" は Alibaba Cloud SLS サービスのエンドポイントを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_ECS_FLAG" は ECS フラグをログに記録するかどうかを指定します。 // Japanese comment
        ## "ALICLOUD_LOG_DOCKER_ENV_CONFIG" // Japanese comment
        ## "ALICLOUD_LOG_ENV_TAGS" は "ALIYUN_LOG_ENV_TAGS" と同じで、 // Japanese comment
        ## 記録される環境変数を指定します。 // Japanese comment
        ## これは縦棒で区切られたリストの形式です。 // Japanese comment
        - name: ALICLOUD_LOG_REGION
          value: ""
        - name: ALICLOUD_LOG_USER_ID
          valueFrom:
            configMapKeyRef:
              key: log-ali-uid
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_PROJECT
          valueFrom:
            configMapKeyRef:
              key: log-project
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_MACHINE_GROUP
          valueFrom:
            configMapKeyRef:
              key: log-machine-group
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_ENDPOINT
          valueFrom:
            configMapKeyRef:
              key: log-endpoint
              name: alibaba-log-configuration
        - name: ALICLOUD_LOG_ECS_FLAG
          value: "true"
        - name: ALICLOUD_LOG_DOCKER_ENV_CONFIG
          value: "true"
        - name: ALICLOUD_LOG_ENV_TAGS
          value: _node_name_|_node_ip_|working_ip
        - name: _node_name_
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: working_ip
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: _node_ip_
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        # 次のイメージアドレスの cn-hangzhou を、クラスターがデプロイされているリージョンに置き換えます。 // Japanese comment
        image: registry-cn-hangzhou-vpc.ack.aliyuncs.com/acs/logtail-windows:v1.0.20
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: 1
            memory: 1Gi
          requests:
            cpu: 100m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - name: docker-pipe
          mountPath: \\.\pipe\docker_engine
        - name: docker-data
          mountPath: c:/ProgramData/docker
          readOnly: true
        - mountPath: c:/logtail_host
          name: root
          readOnly: true
      terminationGracePeriodSeconds: 30
      priorityClassName: system-node-critical
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      tolerations:
      - operator: Exists
      volumes:
      - name: docker-pipe
        hostPath:
          path: \\.\pipe\docker_engine
      - name: docker-data
        hostPath:
          path: c:/ProgramData/docker
          type: Directory
      - name: root
        hostPath:
          path: c:/
          type: Directory
  updateStrategy:
    rollingUpdate:
      maxUnavailable: 10%
    type: RollingUpdate

Logtail をテストするためにアプリケーションをデプロイする

Logtail を Windows ノードにデプロイした後、次のテンプレートを使用してアプリケーションをデプロイし、アプリケーションを使用して Logtail をテストします。

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: logtail-test
  name: logtail-test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: logtail-test
  template:
    metadata:
      labels:
        app: logtail-test
    spec:
      containers:
      - name: nanoserver
        image: mcr.microsoft.com/windows/servercore:1809
        command: ["powershell.exe"]
        args: ["ping -t 127.0.0.1 -w 10000"]  // ping -t 127.0.0.1 -w 10000 を実行 // Japanese comment
        env:
      ######### 環境変数を指定する ########### // Japanese comment
        - name: aliyun_logs_logtail-stdout
          value: stdout
        - name: aliyun_logs_logtail-tags
          value: tag1=v1
      ################################# // Japanese comment
      nodeSelector:
        beta.kubernetes.io/os: windows
      tolerations:
      - effect: NoSchedule
        key: os
        operator: Equal
        value: windows

アプリケーションがデプロイされた後、ログデータを表示できます。詳細については、「ログクエリと分析のガイド」をご参照ください。