以下是在 CentOS7 系统上部署 ELK,采集 pod 日志,采用 yaml 方式,Kibana 以 NodePort 暴露端口的步骤:

  1. 安装 Docker 和 Kubernetes

在 CentOS7 系统上安装 Docker 和 Kubernetes,具体步骤可以参考官方文档。

  1. 安装 Elasticsearch

部署 Elasticsearch,可以采用 yaml 文件方式,具体内容如下:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: elasticsearch
  labels:
    app: elasticsearch
spec:
  serviceName: elasticsearch
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:7.13.3
        ports:
        - containerPort: 9200
          name: rest
        - containerPort: 9300
          name: inter-node
        env:
        - name: discovery.type
          value: single-node
        volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data
      volumes:
      - name: data
        hostPath:
          path: /data/elasticsearch

在 Kubernetes 集群中执行以下命令来创建 Elasticsearch:

kubectl apply -f elasticsearch.yaml
  1. 安装 Logstash

部署 Logstash,可以采用 yaml 文件方式,具体内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: logstash-config
data:
  logstash.conf: |
    input {
      tcp {
        port => 5000
        codec => json
      }
    }
    output {
      elasticsearch {
        hosts => ["elasticsearch:9200"]
      }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: logstash
spec:
  replicas: 1
  selector:
    matchLabels:
      app: logstash
  template:
    metadata:
      labels:
        app: logstash
    spec:
      containers:
      - name: logstash
        image: docker.elastic.co/logstash/logstash:7.13.3
        volumeMounts:
        - name: config
          mountPath: /usr/share/logstash/pipeline/logstash.conf
          subPath: logstash.conf
        ports:
        - containerPort: 5000
      volumes:
      - name: config
        configMap:
          name: logstash-config

在 Kubernetes 集群中执行以下命令来创建 Logstash:

kubectl apply -f logstash.yaml
  1. 安装 Kibana

部署 Kibana,可以采用 yaml 文件方式,具体内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:7.13.3
        env:
        - name: ELASTICSEARCH_HOSTS
          value: http://elasticsearch:9200
        ports:
        - containerPort: 5601
---
apiVersion: v1
kind: Service
metadata:
  name: kibana
spec:
  selector:
    app: kibana
  type: NodePort
  ports:
  - name: http
    port: 5601
    targetPort: 5601

在 Kubernetes 集群中执行以下命令来创建 Kibana:

kubectl apply -f kibana.yaml

部署完成后,可以通过 NodePort 访问 Kibana。在浏览器中输入 http://<Node_IP>:<NodePort> 即可访问 Kibana。在 Kibana 中配置 Index Pattern,即可查看采集到的 pod 日志。

CentOS7系统在kubernete 12015 上部署 ELK采集 pod 日志采用yaml方式kibana以 nodeport 暴露端口。

原文地址: https://www.cveoy.top/t/topic/bHBO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录