このトピックでは、eventer コンポーネントを使用して Kubernetes から Log Service にイベントを収集する方法について説明します。 Kubernetes イベントコレクションのソースコードの詳細については、『GitHub』をご参照ください。

コレクションの設定方法

  • Alibaba Cloud Kubernetes を使用の場合は、endpointproject、および logStore パラメーターのみを設定する必要があります。
  • 自作の Kubernetes を使用する場合は、endpointprojectlogStoreregionIdinternalaccessKeyId、および accessKeySecret パラメーターを設定する必要があります。
次のように YAML テンプレートをデプロイします。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: eventer-sls
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: eventer-sls
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      serviceAccount: admin
      containers:
      - name: eventer-sls
        image: registry.cn-hangzhou.aliyuncs.com/ringtail/eventer:v1.6.1.3
        imagePullPolicy: IfNotPresent
        command:
        - /eventer
        - --source=kubernetes:https://kubernetes.default
        - --sink=sls:https://${endpoint}? project=${project}&logStore=${logstore}

パラメーター設定

パラメーター データ型 必須 / 省略可能 説明
endpoint String 必須 Log Service のエンドポイント。 詳細については、「サービスエンドポイント」をご参照ください。
project String 必須 Log Service のプロジェクト。
logStore String 必須 Log Service の Logstore。
internal String 自作の Kubernetes を使用する場合は必須であり、Alibaba Cloud Kubernetes を使用する場合は省略可能です。 Alibaba Cloud Kubernetes の使用有無を指定します。 このパラメーターを false に設定します。
regionId String 自作の Kubernetes を使用する場合は必須であり、Alibaba Cloud Kubernetes を使用する場合は省略可能です。 Log Service のリージョン ID。 詳細については、「サービスエンドポイント」をご参照ください。
accessKeyId String 自作の Kubernetes を使用する場合は必須であり、Alibaba Cloud Kubernetes を使用する場合は省略可能です。 アカウントの AccessKey ID を設定します。 RAM ユーザーの AccessKey ID の使用を推奨します。
accessKeySecret String 自作の Kubernetes を使用する場合は必須であり、Alibaba Cloud Kubernetes を使用する場合は省略可能です。 アカウントの AccessKey Secret を設定します。 RAM ユーザーの AccessKey Secret の使用を推奨します。

ログサンプル:

次のログサンプルは、Log Service によって収集されます。 詳細については、『Kubernetes』をご参照ください。

次の表にログの内容を示します。
ログフィールド データ型 説明
hostname String イベントのホスト名。
level String ログのレベル。 有効な値: Normal および Warning。
pod_id String pod の一意の識別子。 このフィールドは、イベントタイプがポッドに関連している場合にのみ使用できます。
pod_name String ポッドの名前。 このフィールドは、イベントタイプがポッドに関連している場合にのみ使用できます。
eventId JSON JSON 文字列であるイベントの詳細。
hostname: cn-hangzhou.i-***********"
level: Normal
pod_id: 2a360760-1c82-11e9-9ddf-00163e0c7cbe
pod_name: logtail-ds-blkkr
event_id: {  
   "metadata":{  
      "name":"logtail-ds-blkkr. 157b7cc90de7e192",
      "namespace":"kube-system",
      "selfLink":"/api/v1/namespaces/kube-system/events/logtail-ds-blkkr. 157b7cc90de7e192",
      "uid":"2aaf75ab-1c82-11e9-9ddf-00163e0c7cbe",
      "resourceVersion":"6129169",
      "creationTimestamp":"2019-01-20T07:08:19Z"
   },
   "involvedObject":{  
      "kind":"Pod",
      "namespace":"kube-system",
      "name":"logtail-ds-blkkr",
      "uid":"2a360760-1c82-11e9-9ddf-00163e0c7cbe",
      "apiVersion":"v1",
      "resourceVersion":"6129161",
      "fieldPath":"spec.containers{logtail}"
   },
   "reason":"Started",
   "message":"Started container",
   "source":{  
      "component":"kubelet",
      "host":"cn-hangzhou.i-***********"
   },
   "firstTimestamp":"2019-01-20T07:08:19Z",
   "lastTimestamp":"2019-01-20T07:08:19Z",
   "count":1,
   "type":"Normal",
   "eventTime":null,
   "reportingComponent":"",
   "reportingInstance":""
}