一、安装ElasticSearch

安装前提:

  • 已经部署好 K8s 集群
  • 安装好网络组件(flannel 或 calico)
  • 关闭防火墙

1.下载并部署Elastic-Operator

下载 Elastic-Operator 的 yaml 文件,并存放在 elastic-operator.yaml 中:

  1. [root@k8s-master-108 ~]# curl -o elastic-operator.yaml https://download.elastic.co/downloads/eck/1.0.1/all-in-one.yaml

在 master 节点中,输入以下命令:

[root@k8s-master-108 ~]# kubectl apply -f elastic-operator.yaml
customresourcedefinition.apiextensions.k8s.io/apmservers.apm.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/elasticsearches.elasticsearch.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/kibanas.kibana.k8s.elastic.co created
clusterrole.rbac.authorization.k8s.io/elastic-operator created
clusterrolebinding.rbac.authorization.k8s.io/elastic-operator created
namespace/elastic-system created
statefulset.apps/elastic-operator created
serviceaccount/elastic-operator created
validatingwebhookconfiguration.admissionregistration.k8s.io/elastic-webhook.k8s.elastic.co created
service/elastic-webhook-server created
secret/elastic-webhook-server-cert created

检查安装部署情况

[root@k8s-master-108 ~]# kubectl get pods -o wide --all-namespaces
NAMESPACE        NAME                                       READY   STATUS                  RESTARTS   AGE    IP               NODE           NOMINATED NODE   READINESS GATES
elastic-system   elastic-operator-0                         1/1     Running                 1          22h    10.244.155.65    k8s-node-110   <none>           <none>

要等到 STATUS 变为 Running 状态,且 READY 变为 1/1 时,才算部署完毕。
部分情况下,可能出现长时间后 STATUS 依然未改变为 Running 状态,可通过以下代码查看 pod 部署情况。

[root@k8s-master-108 ~]# kubectl describe pod elastic-operator-0 -n elastic-system
Name:         elastic-operator-0
Namespace:    elastic-system
Priority:     0
Node:         k8s-node-110/10.10.103.110
Start Time:   Wed, 18 Aug 2021 20:21:30 +0800
Labels:       control-plane=elastic-operator
              controller-revision-hash=elastic-operator-598df7bc9d
              statefulset.kubernetes.io/pod-name=elastic-operator-0
Annotations:  cni.projectcalico.org/podIP: 10.244.155.65/32
              cni.projectcalico.org/podIPs: 10.244.155.65/32
Status:       Running
IP:           10.244.155.65
IPs:
  IP:           10.244.155.65
Controlled By:  StatefulSet/elastic-operator
Containers:
  manager:
    Container ID:  docker://4f8768db81cad154d00a0cdf68b28d4e2d448a36ddc63a98f0673b4af88d8377
    Image:         docker.elastic.co/eck/eck-operator:1.0.1
    Image ID:      docker-pullable://docker.elastic.co/eck/eck-operator@sha256:fa4fbf738f8f81c39d1a4a0172209f1641ed0115488f16c91dcc4a9a16f42531
    Port:          9443/TCP
    Host Port:     0/TCP
    Args:
      manager
      --operator-roles
      all
      --log-verbosity=0
    State:          Running
      Started:      Wed, 18 Aug 2021 20:23:05 +0800
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Wed, 18 Aug 2021 20:22:31 +0800
      Finished:     Wed, 18 Aug 2021 20:23:04 +0800
    Ready:          True
    Restart Count:  1
    Limits:
      cpu:     1
      memory:  150Mi
    Requests:
      cpu:     100m
      memory:  50Mi
    Environment:
      OPERATOR_NAMESPACE:  elastic-system (v1:metadata.namespace)
      WEBHOOK_SECRET:      elastic-webhook-server-cert
      WEBHOOK_PODS_LABEL:  elastic-operator
      OPERATOR_IMAGE:      docker.elastic.co/eck/eck-operator:1.0.1
    Mounts:
      /tmp/k8s-webhook-server/serving-certs from cert (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from elastic-operator-token-zqxxw (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  cert:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  elastic-webhook-server-cert
    Optional:    false
  elastic-operator-token-zqxxw:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  elastic-operator-token-zqxxw
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:          <none>

2.创建ElasticSearch集群

在命令行中,输入以下命令(要注意,不可以使用 tab 缩进,要使用空格,且空格数不能有偏差):

cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 7.6.2
  nodeSets:
  - name: default
    count: 1
    config:
      node.master: true
      node.data: true
      node.ingest: true
      node.store.allow_mmap: false
EOF

输入完毕,输入如下代码,检查我们部署情况。

[root@k8s-master-108 ~]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
quickstart-es-default-0   0/1     Pending   0          131m
这里由于缺失 pv 和 pvc ,因此会一直处于 Pending 状态,可以通过 describe 代码查看具体状态。
[root@k8s-master-108 ~]# kubectl describe pod quickstart-es-default-0

因此,我们需要在 master 节点下,创建 pvc 和 pv 。在 master 的任意目录下,创建文件 pvc.yml 。

[root@k8s-master-108 ~]# vi pvc.yml

pvc.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-pv0
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  claimRef:
    namespace: default
    name: elasticsearch-data-quickstart-es-default-0
  hostPath:
    path: "/mnt/data"

部署 pvc.yml

[root@k8s-master-108 ~]# kubectl apply -f pvc.yml

检查 PV 和 PVC 安装情况。

[root@k8s-master-108 ~]# kubectl get pv
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                                STORAGECLASS   REASON   AGE
data-pv0   2Gi        RWO            Recycle          Bound    default/elasticsearch-data-quickstart-es-default-0   manual                  22h
[root@k8s-master-108 ~]# kubectl get pvc
NAME                                         STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
elasticsearch-data-quickstart-es-default-0   Bound    data-pv0   2Gi        RWO                           23h
重新检查 pod 状态
[root@k8s-master-108 ~]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
quickstart-es-default-0          1/1     Running   0          23h

STATUS 已经改变为 Running 状态,READY 也已经为 1/1 了。ElasticSearch 到这里就安装完毕了。

3.请求ElasticSearch访问

在上面安装 ElasticSearch 的时候,已经部署了一个 ClusterIP 的服务:

[root@k8s-master-108 ~]# kubectl get service quickstart-es-http
NAME                 TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
quickstart-es-http   NodePort   10.108.248.211   <none>        9200:31308/TCP   23h
我们需要获取默认用户 elastic 的密码:
[root@k8s-master-108 ~]# PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode)
[root@k8s-master-108 ~]# echo $PASSWORD
w9rxvkpdnh6grg96nwgn9b9b
通过向 ElasticSearch 发送请求,我们可以验证是否可以使用(这里的 10.108.248.211,要和上面 ClusterIP 中 CLUSTER-IP 要一致,9200 为 PORT(S) 前面的端口号。)
[root@k8s-master-108 ~]# curl -u "elastic:$PASSWORD" -k "https://10.108.248.211:9200"
{
  "name" : "quickstart-es-default-0",
  "cluster_name" : "quickstart",
  "cluster_uuid" : "6XAP-egkR_SdBU2Di49KSQ",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

如结果与上文一致,则代表部署成功。
我们检查一下在 namespace 为 default 的情况下,运行的所有服务。

[root@k8s-master-108 ~]# kubectl -n default get svc
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes              ClusterIP   10.96.0.1        <none>        443/TCP          14d
quickstart-es-default   ClusterIP   None             <none>        <none>           23h
quickstart-es-http      ClusterIP   10.108.248.211   <none>        9200:31308/TCP   23h

可以看见,quickstart-es-http 是一个 ClusterIP 的服务,要对外暴露自己的端口,我们需要将其改为 NodePort 的服务。

[root@k8s-master-108 ~]# kubectl edit svc quickstart-es-http

找到 ports 部分,修改为下图状态。(nodePort 为外部访问端口地址,将 type 修改为 NodePort )。
image.png
修改完后,输入 :wq! 保存退出。
我们再检查一遍服务的状态:

[root@k8s-master-108 ~]# kubectl -n default get svc
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes              ClusterIP   10.96.0.1        <none>        443/TCP          14d
quickstart-es-default   ClusterIP   None             <none>        <none>           23h
quickstart-es-http      NodePort    10.108.248.211   <none>        9200:31308/TCP   23h
quickstart-es-http 已经改变为 NodePort 模式。打开同一个网络中的浏览器,输入地址 [https://10.10.103.108:31308](https://10.10.103.108:31308) ,即可访问。<br />地址中,10.10.103.108 为 master 的 IP ,31308 为 quickstart-es-http 的 PORT(S) 后面的端口号。一定要 https 进入,否则无法使用证书。<br />进入地址后,会弹出警告,可点击高级,强行进入网站。进入后,会弹出窗口要求输入账号密码。<br />默认账号为 elastic ,密码可通过在 master 中输入如下代码获取。
[root@k8s-master-108 ~]# kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode
w9rxvkpdnh6grg96nwgn9b9b

image.png
进入后如上图显示,即表示成功部署。


二、安装Kibana

1.下载并部署Kibana

在 master 节点上,输入如下代码,可安装并部署 Kibana 。

cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: quickstart
spec:
  version: 7.6.2
  count: 1
  elasticsearchRef:
    name: quickstart
EOF

由于网络原因,需要较长时间下载,公司网络下约需要半小时到四十分钟。

[root@k8s-master-108 ~]# kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
quickstart-es-default-0          1/1     Running   0          23h
quickstart-kb-6db7bc7464-qwcrs   1/1     Running   0          4h10m

同理,如果 STATUS 转为 Running 状态,READY 为 1/1 ,则代表部署完成。(注意,这里的 quickstart-kb-6db7bc7464-qwcrs 不会安装在 master 节点上,需要保证以安装网络插件 flannel 或 calico ,否则会出现 STATUS 已经是 Running 状态了,而 READY 还是 0/1 的情况。关于网络插件,这里推荐使用 calico )
部署完毕后,可以通过如下代码检查,如果全部 HEALTH 都为 green 或 yellow ,则代表部署成功,如果部署失败,需要通过 describe 来检查失败原因。

[root@k8s-master-108 ~]# kubectl get elasticsearch
NAME         HEALTH   NODES   VERSION   PHASE   AGE
quickstart   yellow   1       7.6.2     Ready   23h
[root@k8s-master-108 ~]# kubectl get kibana
NAME         HEALTH   NODES   VERSION   AGE
quickstart   green    1       7.6.2     4h41m

同时要检查服务是否成功运行。

[root@k8s-master-108 ~]# kubectl get service quickstart-kb-http
NAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
quickstart-kb-http   NodePort   10.96.145.248   <none>        5601:31884/TCP   4h41m
[root@k8s-master-108 ~]# kubectl get pod --selector='kibana.k8s.elastic.co/name=quickstart'
NAME                             READY   STATUS    RESTARTS   AGE
quickstart-kb-6db7bc7464-qwcrs   1/1     Running   0          4h19m

我们还需要修改 quickstart-kb-http 的服务 TYPE,需要通过如下代码进入修改界面:

[root@k8s-master-108 ~]# kubectl edit service quickstart-kb-http

将 type 修改为 NodePort 模式。
image.png
修改完毕后,输入 :wq! 保存设置。检查是否设置成功:

[root@k8s-master-108 ~]# kubectl get service quickstart-kb-http
NAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
quickstart-kb-http   NodePort   10.96.145.248   <none>        5601:31884/TCP   4h46m
如果 TYPE 改为 NodePort ,则代表修改成功。

2.请求Kibana访问

在与集群同一个网络下的主机中,在浏览器输入地址 https://10.10.103.108:31884/login 。其中, 10.10.103.108 为 master 的 IP ,31884 为 quickstart-kb-http 服务中,PORT(S) 后面的端口号。同样,需要注意开头必须是 https ,且结尾有个 login 的路由路径。
进入后,与 ElasticSearch 一样,初始账号为 elastic ,密码通过如下代码获取:

[root@k8s-master-108 ~]# kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
w9rxvkpdnh6grg96nwgn9b9b

image.png
至此,Kibana 安装部署完毕。


三、安装Filebeat

1.下载Filebeat配置文件

通过下列代码获取 Filebeat 的配置文件:

[root@k8s-master-108 ~]# curl -L -O https://raw.githubusercontent.com/elastic/beats/master/deploy/kubernetes/filebeat-kubernetes.yaml

2.修改命名空间

下载完后,必须通过修改配置文件,才能部署。通常情况下,Filebeat 中所有的应用都是安装在 kube-system 的 namespace 下,但由于我们的 ElasticSearch 和 Kibana 安装在 default 下,因此需要将配置文件中的所有 namespace 的值改为 default 。

[root@k8s-master-108 ~]# vi filebeat-kubernetes.yaml

image.png
由于篇幅原因,这里只截了一张图,实际上远不止这一个地方有 namespace ,需要将所有的 namespace 的值修改为 default 。

3.修改版本

由于我们的 ElasticSearch 和 Kibana 为 7.6.2 版本的,因此我们的 Filebeat 也需要选择 7.6.2 版本适配。因此修改 yaml 文件中对应位置。
image.png
由于网络原因,7.6.2 可能无法下载,可以改为 7.5.2 版本,也是适配的。

4.配置证书

另外,我们还需要为访问 ElasticSearch 配置必要的证书来访问它,因此需要修改配置文件中 ConfigMap metadata 为 filebeat-config 的部分。
image.png
添加红色框框圈出来的部分。

5.挂载证书

这个证书在当前容器中还不存在,我们还需要如下部分来配置这个证书。
首先我们找到 DaemonSet 这个部分:

apiVersion: apps/v1
kind: DaemonSet
并做如下的修改:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22291554/1629426587914-b042a374-e4a8-4f97-b788-c91487773c9b.png#clientId=ubef4f154-c834-4&from=paste&height=701&id=u6c82f278&margin=%5Bobject%20Object%5D&name=image.png&originHeight=605&originWidth=486&originalType=binary&ratio=1&size=52180&status=done&style=none&taskId=u477d18d7-7a98-434f-83d4-e98e7788cd8&width=563)<br />红色部分为我们需要添加的部分。

6.配置ElasticSearch服务

根据上面的 DaemonSet 的配置,我们要找到 ELASTICSEARCH_HOST 部分。它需要配置为 ElasticSearch 的服务。先使用下面的命令找到所有的服务:

[root@k8s-master-108 ~]# kubectl get svc
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes              ClusterIP   10.96.0.1        <none>        443/TCP          14d
quickstart-es-default   ClusterIP   None             <none>        <none>           36h
quickstart-es-http      NodePort    10.108.248.211   <none>        9200:31308/TCP   36h
quickstart-kb-http      NodePort    10.96.145.248    <none>        5601:31884/TCP   17h
其中,quickstart-es-http 就是 Kubernetes 内部可以访问 ElasticSearch 的一个服务,如果要写入到 ElasticSearch ,必须启用这个服务。因此要修改如下红色部分(依然是 filebeat-kubernetes.yaml 文件)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22291554/1629426741940-998f0334-b8fa-47e1-8ed3-fd1375a0917e.png#clientId=ubef4f154-c834-4&from=paste&height=408&id=u267c1ff8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=308&originWidth=363&originalType=binary&ratio=1&size=21898&status=done&style=none&taskId=ud993e7d0-a26b-4567-8568-9b2e071caa2&width=480.5)<br />这里的 ELASTICSEARCH_HOST 是 quickstart-es-http 的地址,可以用 https://quickstart-es-http 来代替,而 ELASTICSEARCH_PASSWORD 为 ElasticSearch 默认账号 elastic 的密码。<br />到这里我们就配置完成了,可以通过 :wq! 保存并退出。

7.安装Filebeat

上文我们配置完了 Filebeat 的配置文件,然后需要通过 apply 来部署它:

[root@k8s-master-108 ~]# kubectl create -f filebeat-kubernetes.yaml
configmap/filebeat-config created
daemonset.apps/filebeat created
clusterrolebinding.rbac.authorization.k8s.io/filebeat created
rolebinding.rbac.authorization.k8s.io/filebeat created
rolebinding.rbac.authorization.k8s.io/filebeat-kubeadm-config created
clusterrole.rbac.authorization.k8s.io/filebeat created
role.rbac.authorization.k8s.io/filebeat created
role.rbac.authorization.k8s.io/filebeat-kubeadm-config created
serviceaccount/filebeat created
然后,我们可以通过下列命令来查看 pods:
[root@k8s-master-108 ~]# k get pods
NAME                             READY   STATUS              RESTARTS   AGE
filebeat-lmmk5                   0/1     ContainerCreating   0          36s
filebeat-v94bh                   0/1     ContainerCreating   0          36s
quickstart-es-default-0          1/1     Running             0          37h
quickstart-kb-6db7bc7464-qwcrs   1/1     Running             0          18h

等到 STATUS 转为 Running ,READY 转为 1/1 ,即表明部署完成。

8.在Kibana中监测数据

打开 Kibana ,转到 Dev Tools 页面,通过如下代码可以查询是否连接成功。

GET _cat/indices

image.png
执行后,可以在右边看到 filebeat 已经被监测了。
image.png
为 filebeat 创建一个 index pattern ,并在 Discover 里进行查看。
image.png
image.png
image.png
image.png
然后稍等一会儿,就创建完成了。
image.png
回到 Discovery 界面,即可查看各项数据
image.png
image.png

四、安装Fluent-bit

1.下载Fluent-bit配置文件

通过下列代码获取 Fluent-bit 配置文件:

kubectl apply -f https://gist.githubusercontent.com/egernst/d8f20021db724ba831a2552ba02027fe/raw/e843dc1049adfc71cec49e7ca60ee73385b3b2fb/fluent-bit-role-sa.yaml
kubectl apply -f https://gist.githubusercontent.com/egernst/d8f20021db724ba831a2552ba02027fe/raw/79ef513c6c8eae656a039fe0ae9a466426e597f1/fluent-bit-configmap.yaml
kubectl apply -f https://gist.githubusercontent.com/egernst/d8f20021db724ba831a2552ba02027fe/raw/3c112c444bb41ab63fb8815337891baf5cfdc4cd/fluent-bit-ds.yaml

2.配置ConfigMap

通过下列代码进入修改 ConfigMap :

[root@k8s-master-108 elk]# vi fluent-bit-configmap.yaml

将下列圈红位置,修改成正确的值
image.png
说明:1.Host 为 ElasticSearch 的主机 IP ;2.Port 为 ElasticSearch 的主机中,ElasticSearch 开放端口;3.HTTP_User 为 ElasticSearch 的默认账号;4. HTTP_Passwd 为 ElasticSearch 的默认账号对应密码。
另外,还需要更改 parsers.conf 配置,通过 cri 向每条日志添加时间戳。
image.png
前文中,tail 的解析器同样也需要将 Parser 修改为 cri 。
image.png
到这里我们就将 ConfigMap 配置完成了,可以通过 :wq! 保存并退出。

3.配置DaemonSet

通过下列代码进入修改 DaemonSet:

[root@k8s-master-108 elk]# vi fluent-bit-ds.yaml
修改红色方框内的内容<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22291554/1629788854392-f50e80bc-41c9-44a5-b9d2-0752f8824af7.png#clientId=uc531202a-6819-4&from=paste&height=353&id=u667e38e3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=318&originWidth=327&originalType=binary&ratio=1&size=22827&status=done&style=none&taskId=ud8aad5ec-860c-452e-a759-d01d5534c6c&width=362.5)<br />这里的 ELASTICSEARCH_HOST 是 quickstart-es-http 的地址,可以用 https://quickstart-es-http 来代替,而 ELASTICSEARCH_PASSWORD 为 ElasticSearch 默认账号 elastic 的密码。

4.安装Fluent-bit

通过下面代码安装 Fluent-bit :

[root@k8s-master-108 elk]# kubectl apply -f fluent-bit-configmap.yaml
[root@k8s-master-108 elk]# kubectl apply -f fluent-bit-ds.yaml 
[root@k8s-master-108 elk]# kubectl apply -f fluent-bit-role-sa.yaml

等到 fluent-bit 的 STATUS 和 READY 转变为 Running 和 1/1 即可。

[root@k8s-master-108 elk]# kubectl get pods -o wide
NAME                             READY   STATUS        RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
filebeat-drk5h                   1/1     Running       0          4d4h    10.10.103.109    k8s-node-109   <none>           <none>
filebeat-pttnf                   0/1     Pending       0          23h     <none>           ke-node-113    <none>           <none>
filebeat-tl5pf                   1/1     Running       0          4d4h    10.10.103.110    k8s-node-110   <none>           <none>
fluent-bit-fhrzk                 0/1     Terminating   0          21h     <none>           k8s-node-111   <none>           <none>
fluent-bit-gqbtc                 1/1     Running       0          34m     172.17.0.2       ke-node-113    <none>           <none>
fluent-bit-gxdsw                 1/1     Running       0          21h     10.244.219.73    master         <none>           <none>
fluent-bit-h4c72                 1/1     Running       0          21h     10.244.243.164   k8s-node-109   <none>           <none>
fluent-bit-rzhbw                 1/1     Running       1          3h18m   10.244.155.77    k8s-node-110   <none>           <none>
quickstart-es-default-0          1/1     Running       0          3h57m   10.244.155.76    k8s-node-110   <none>           <none>
quickstart-kb-6db7bc7464-qwcrs   1/1     Running       0          4d22h   10.244.243.139   k8s-node-109   <none>           <none>

5.在Kibana中监测数据

打开 Kibana ,转到 Dev Tools 页面,通过如下代码可以查询是否连接成功。

GET _cat/indices

image.png
执行后,可以在右边看到 Fluent-bit 已经被监测了。
image.png
为 Fluent-bit 创建一个 index pattern ,并在 Discover 里进行查看。
image.png
image.png
image.png
image.png
image.png
上图即为创建完成。然后在 Discover 中监测数据即可。
image.png
image.png