Kubernetes1.13.0+Elasticsearch:6.5.3+Filebeat:6.5.3+Elasticsearch-head(基于PVC来实现+有状态服务)

版权声明:本文为博主原创文章,可以转载分享,希望大家相互学习,共同进步 https://blog.csdn.net/shenhonglei1234/article/details/85109762


Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。

Filebeat :轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 shipper 端的第一选择。

elasticsearch-head将是一款专门针对于elasticsearch的客户端工具.

1. 通过yaml来安装elasticsearch+pv

(最好下载源文件,避免格式错误)
yaml下载链接:https://pan.baidu.com/s/1CoCUnr2ZrJPr4nJhXxJqbQ 密码:8qz7
StatefulSet是为了解决有状态服务的问题(对应Deployments和ReplicaSets是为无状态服务而设计)。

在这里插入图片描述
要先执行StatefulSet ,内容如下:
注意:
1 .image: 10.10.31.205/k8s/elasticsearch:6.5.3 ;
2.storageClassName: szy-cloud-nfs-1

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: elasticsearch
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - env:
        - name: discovery.type
          value: single-node
        - name: cluster.name
          value: docker-cluster
        image: 10.10.31.205/k8s/elasticsearch:6.5.3
        name: elasticsearch
        ports:
        - containerPort: 9200
        - containerPort: 9300
        volumeMounts:
        - mountPath: /usr/share/elasticsearch/data
          name: esdata
      restartPolicy: Always
  volumeClaimTemplates:
  - metadata:
      name: esdata
    spec:
      accessModes: ["ReadWriteOnce"]
      volumeMode: Filesystem
      resources:
        requests:
          storage: 1Gi
      storageClassName: szy-cloud-nfs-1

再执行Service ,内容如下:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: elasticsearch
  name: elasticsearch
spec:
  ports:
  - name: "9200"
    port: 9200
    targetPort: 9200
  - name: "9300"
    port: 9300
    targetPort: 9300
  selector:
    app: elasticsearch
  type: NodePort
status:
  loadBalancer: {}

效果查看,NAMESPACE一定是kube-system
StatefulSet

[root@test01 ~]# kubectl get StatefulSet --all-namespaces
NAMESPACE     NAME            READY   AGE
kube-system   elasticsearch   1/1     6h10m

service

[root@test01 ~]# kubectl get service -n kube-system
NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE
elasticsearch          NodePort    10.110.225.212   <none>        9200:32306/TCP,9300:32737/TCP   6h12m

同时还能看到PV
在这里插入图片描述
我们的日志通过Filebeat收集,并写在这里:
/data/kube-system-esdata-elasticsearch-0-pvc-5bd84bbc-0365-11e9-8d69-00505681317e
在这里插入图片描述

2. 通过yaml来安装filebeat

yaml下载链接:https://pan.baidu.com/s/1CoCUnr2ZrJPr4nJhXxJqbQ 密码:8qz7

创建后,查看效果如下:

[root@test01 ~]# kubectl get ConfigMap,DaemonSet,ClusterRoleBinding,ServiceAccount -n kube-system | grep filebeat


configmap/filebeat-config                      1      6h12m
configmap/filebeat-inputs                      1      6h12m
daemonset.extensions/filebeat                  3         3         3       3            3           <none>                            6h12m

clusterrolebinding.rbac.authorization.k8s.io/filebeat                                               6h12m
serviceaccount/filebeat                             1         6h12m
[root@test01 ~]# 

创建filebeat时,应注意以下两点:
1.image: 10.10.31.205/k8s/filebeat:6.5.3
2. env:集群内部通信,所以用elasticsearch,端口用9200
- name: ELASTICSEARCH_HOST
value: “elasticsearch”
- name: ELASTICSEARCH_PORT
value: “9200”
在这里插入图片描述

可以查看filebeat收集的日志,存储在es所持久化的目录如下:

/data/kube-system-esdata-elasticsearch-0-pvc-5bd84bbc-0365-11e9-8d69-00505681317e

elasticsearch-head 安装与配置

https://github.com/mobz/elasticsearch-head
在这里插入图片描述

然后再根据自己的业务需要,将日志,通过api来展示在自己平台内:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shenhonglei1234/article/details/85109762