K8S搭建ELK(Elasticsearch,Kibana,Logstash和Filebeat)

部署前提:

1、完成K8S集群搭建,搭建参考:

基于ECS云主机搭建k8s集群-详细过程_Soft_Engneer的博客-CSDN博客Kubernetes集群详细部署过程,K8s避坑记录,快速搭建环境并把主要时间花在专注k8s的学习上https://blog.csdn.net/Soft_Engneer/article/details/124517916?spm=1001.2014.3001.55022、完成GlusterFS共享存储部署,搭建参考:

CentOS安装GlusterFS_Soft_Engneer的博客-CSDN博客glusterfs部署及测试https://blog.csdn.net/Soft_Engneer/article/details/124554384?spm=1001.2014.3001.55023、下载部署的镜像包:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.2
docker pull docker.elastic.co/kibana/kibana:7.17.2
docker pull docker.elastic.co/logstash/logstash:7.17.2
docker pull docker.elastic.co/beats/filebeat:7.17.2

一,搭建elasticsearch+kibana

elasticsearch配置文件:

[root@k8s-node01 elk]# more elasticsearch.yml
cluster.name: my-es
node.name: "node-1"
path.data: /usr/share/elasticsearch/data
#path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
#集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析
#discovery.zen.ping.unicast.hosts: ["172.16.30.11", "172.17.77.12"]
#集群节点数
#discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
cluster.initial_master_nodes: ["node-1"]
#增加参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

kibana配置文件:

kibana连接的主机使用了域名,是由有状态应用statefulset创建的Pod

[root@k8s-node01 elk]# more kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: "http://es-kibana-0.es-kibana.kube-system:9200"
kibana.index: ".kibana"

创建elasticsearch和kibana的配置文件configmap:

kubectl create configmap es-config -n kube-system --from-file=elasticsearch.yml
kubectl create configmap kibana-config -n kube-system --from-file=kibana.yml

创建glusterfs存储,用于创建pv:

es-volume存储卷已创建,那么需要创建endpoint和svc:

es-endpoints.yaml

es-glusterfs-svc.yaml

[root@k8s-node01 elk]# more es-endpoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-es
  namespace: kube-system
subsets:
- addresses:
  - ip: 192.168.16.5
  ports:
  - port: 49155
- addresses:
  - ip: 192.168.16.4
  ports:
  - port: 49155
- addresses:
  - ip: 172.17.22.4
  ports:
  - port: 49155
[root@k8s-node01 elk]#
[root@k8s-node01 elk]# more es-glusterfs-svc.yaml
apiVersion: v1
kind: Service
metadat
  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kubernetes是一个用于容器编排和管理的开源平台,而ELK是一套用于日志分析和可视化的工具组合,包括ElasticsearchLogstashKibana。在Kubernetes集群中部署ELK的目的是为了对集群中的日志信息进行收集、存储、分析和展示。 首先,我们需要为ELK组件创建Kubernetes Deployment和Service对象。Deployment定义了应用的副本数量和升级策略,Service提供了一个稳定的网络入口。 然后,我们需要为ElasticsearchLogstashKibana分别创建Pod模板。Pod是Kubernetes中最小的可部署的单元,包含了一个或多个容器。Elasticsearch是用于存储和索引日志的分布式搜索引擎,Logstash用于收集、转换和发送日志数据,Kibana提供了可视化和查询界面。 在Pod模板中,我们需要指定每个容器的镜像、环境变量、容器端口等信息。特别注意的是,在Elasticsearch配置中,我们需要指定节点的名称、集群名称和持久化存储的挂载路径。 接下来,我们需要为每个组件创建Kubernetes Service对象,以便在集群内进行服务发现和负载均衡。Service会为每个Pod分配一个稳定的虚拟IP地址,并将这些地址与Service的名称关联起来。 最后,我们需要为Elasticsearch集群配置存储卷,以便持久化存储数据。Kubernetes支持多种存储卷类型,例如本地存储、网络存储和云存储等。 完成上述步骤后,我们就可以在Kubernetes集群中部署ELK。在部署过程中,Kubernetes会根据我们定义的Deployment和Service对象,自动调度和管理ELK组件的副本数量、网络和存储等资源。这样,我们就可以通过Kibana访问ELK集群,对日志进行搜索、过滤和可视化展示,实现集群日志的实时监控和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值