このトピックでは、eventerコンポーネントを使用してKubernetesからイベントを収集し、イベントをLog Serviceに送信する方法について説明します。
Log Serviceでは、kube-eventerまたはK8s Event Centerアプリケーションを使用して、Kubernetesからイベントを収集できます。
- Kube-eventer
Kubernetesイベントコレクションのソースコードの詳細については、『GitHub』をご参照ください。
- K8sイベントセンター (推奨)
Kubernetesイベントデータを収集し、視覚化されたグラフとアラートを設定するには、Log ServiceコンソールにあるK8s event Centerアプリケーションを使用します。 詳しくは、「t1857672.html#task_2389213」をご参照ください。
イベントコレクションの設定
説明
- Container Service for Kubernetes (ACK) を使用する場合は、「t1857672.html#task_2389213」をご参照ください。
- セルフマネージドKubernetesを使用する場合、endpoint、project、logStore、regionId、internal、accessKeyId、およびaccessKeySecretパラメーターを設定する必要があります。
イベント収集の設定例を次に示します。
apiVersion: apps/v1
kind: 配置
メタデータ:
ラベル:
名前: kube-eventer
名前: kube-eventer
名前空間: kube-system
spec:
replicas: 1
セレクタ:
matchLabels:
アプリ: kube-eventer
template:
metadata:
labels:
アプリ: kube-eventer
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
仕様:
dnsPolicy: ClusterFirstWithHostNet
serviceAccount: kube-eventer
コンテナ:
-画像: registry.cn-hangzhou.aliyuncs.com/acs/kube-eventer:v1.2.5-cc7ec54-aliyun
名前: kube-eventer
command:
-"/kube-eventer"
-"-ソース=kubernetes:https://kubernetes.de障害"
## 。slsに送信
## -- sink=sls:https://{endpoint}?project={project}&logStore=k8s-event®ionId={region-id}&internal=false&accessKeyId={accessKeyId}&accessKeySecret={accessKeySecret}
--シンク=sls:https://cn-beijing.log.aliyuncs.com? プロジェクト=k8s-xxxx&logStore=k8s-event®ionId=cn-北京&内部=偽&accessKeyId=xxx&accessKeySecret=xxx
env:
# TZが割り当てられている場合は、TZ値をタイムゾーンとして設定します。
-名前: TZ
値: 「アジア /上海」
volumeMounts:
- name: localtime
mountPath: /etc/localtime
readOnly: true
-name: zoneinfo
mountPath: /usr/share/zoneinfo
readOnly: true
resources:
requests:
cpu: 10m
メモリ: 50Mi
limits:
cpu: 500m
メモリ: 250Mi
volumes:
- name: localtime
hostPath:
path: /etc/localtime
-name: zoneinfo
hostPath:
パス: /usr/share/zoneinfo
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
メタデータ:
名前: kube-eventer
ルール:
- apiGroups:
- ""
resources:
-イベント
verbs:
- get
- list
腕時計
---
apiVersion: rbac。承認。k8s.io/v1
種類: ClusterRoleBinding
メタデータ:
名前: kube-eventer
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
名前: kube-eventer
主題:
- kind: ServiceAccount
名前: kube-eventer
名前空間: kube-system
---
apiVersion: v1
種類: ServiceAccount
メタデータ:
名前: kube-eventer
namespace: kube-system
パラメーター | データ型 | 必須/任意 | 説明 |
---|---|---|---|
endpoint | String | 必須 | Log Service のエンドポイント。 詳細については、「エンドポイント」をご参照ください。 |
project | String | 必須 | Log Service のプロジェクト。 |
logStore | String | 必須 | Log Service の Logstore。 |
internal | String | 自己管理型Kubernetesに必要 | 自己管理型Kubernetesを使用する場合は、値をfalseに設定します。 |
regionId | String | 自己管理型Kubernetesに必要 | Log Service のリージョン ID。 詳細については、「エンドポイント」をご参照ください。 |
accessKeyId | String | Required自己管理Kubernetes | AccessKey ID。 RAM ユーザーの AccessKey ID の使用を推奨します。 |
accessKeySecret | String | 自己管理型Kubernetesに必要 | AccessKeyシークレット。 RAMユーザーのAccessKeyシークレットを使用することを推奨します。 |
サンプルログエントリ
収集されたサンプルログエントリの例を次に示します。
ホスト名: cn-hangzhou.i-***********"
レベル: 正常
pod_id: 2a360760-****
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-****" 、
"resourceVersion":"6129169",
"creationTimestamp":"2019-01-20T07:08:19Z"
},
"involvedObject":{
"kind":"Pod",
"namespace":"kube-system",
"name":"logtail-ds-blkkr",
"uid":"2a360760-****" 、
"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":"
}
ログフィールド | 種類 | 説明 |
---|---|---|
hostname | String | イベントが発生するサーバーのホスト名。 |
level | String | ログエントリのレベル。 有効な値: Normal および Warning。 |
pod_id | String | ポッドの一意の識別子。 このフィールドは、イベントタイプがポッドに関連している場合にのみ使用できます。 |
pod_name | String | ポッドの名前。 このフィールドは、イベントタイプがポッドに関連している場合にのみ使用できます。 |
event_id | JSON | イベントの詳細。 このフィールドの値はJSON文字列です。 |