k8s集群搭建efk集群日志收集系统

我在安装部署efk系统的时候,参考了两篇文章,先贴出来。这两篇文章我都有所参考,然后我结合自己安装部署过程中出现的问题特此整理记录,方便具有同样部署需求的朋友做个参考。
https://mp.weixin.qq.com/s/SoelIGIT5lQSgJlE4MYFjg kubernetes搭建EFK日志管理系统
https://www.jianshu.com/p/d6f2034ba62b K8S部署ELK管理集群日志

此k8s集群中使用efk日志系统,其中涉及的组件分别是flunted,elasticsearch,kibana。
组件角色说明:

  • flunted组件:通过容器日志文件来收集、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,核心功能是收集日志数据。
  • elasticsearch组件:对k8s集群中的日志进行索引和存储。
  • kibana组件:一个可视化的数据仪表盘(dashboard),使得开发者和管理人员可以通过访问web界面的形式来查看Elasticsearch中的日志数据,同时它也支持用户自定义查询和过滤条件从而检索出特定的日志数据。
    环境说明:
服务器名称 所属的集群角色
k8s-master 主节点(master节点)
k8s-node1 从节点
k8s-node2 从节点
一、安装部署Elasticsearch集群

1、所有节点执行基本的环境配置

#拉取镜像
docker pull elasticsearch:7.5.0
#由于数据盘挂载到了/data目录上,所以将相关数据文件保存到该目录下  
#注意逐级创建文件夹,目录尽量与此处的一致,这样可以减少一些问题的发生
mkdir /data/es/data  
mkdir /data/es/config 
#开放文件夹权限
chmod 777 /data/es

#调整一个进程可拥有的VMA(虚拟内存区域)的数量,修改配置文件
vim /etc/sysctl.conf
#文件末尾追加内容
vm.max_map_count=262144  
# :wq保存退出配置文件
#启用配置——使配置文件生效
sysctl -p

2、各节点编辑配置文件
k8s-master节点执行以下操作:
编辑修改elasticsearch的配置文件,打开编辑文件vim es.yml

#集群名称
cluster.name: es-cluster
#节点名称
node.name: node-a
#是不是有资格竞选主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 10
#网关地址
network.host: 0.0.0.0
network.publish_host: !!!!自己机器上的k8s-master节点内部IP
#端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["k8s-master节点内部ip","k8s-node1节点内部ip","k8s-node2节点内部ip"]

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: !!!!k8s-master节点内部IP
#数据存储路径  注意依次创建此路径下的文件   当然大家也可以用自己的目录
path.data: /data/share/elasticsearch/data
#日志存储路径
path.logs: /data/share/elasticsearch/data/logs

说明:文件中的path.data以及path.logs字段的值大家可以不和此处该文件的一样,修改为自己设置的数据和日志存储目录即可。需要注意的是,要对这两个文件授予访问权限,使用chmod 777 /data/share/elasticsearch对文件elasticsearch授予访问权限,这样数据存储路径data/share/elasticsearch/data和日志存储路径/data/share/elasticsearch/data/logs均可被此linux服务器上的elasticsearch服务访问。

k8s-node1执行以下操作:
和k8s-master创建的配置文件es.yml文件内容大体类似,只有两个地方需要修改(node.name和network.publish_host字段的值需要修改):

...
#节点名称
node.name: node-b
...
#网关地址
#网关地址
network.host: 0.0.0.0
network.publish_host: !!!!k8s-node1节点内部IP
...

k8s-node2执行以下操作:
和k8s-master创建的配置文件es.yml文件内容大体类似,只有两个地方需要修改(node.name和network.publish_host字段的值需要修改):

...
#节点名称
node.name: node-c
...
#网关地址
#网关地址
network.host: 0.0.0.0
network.publish_host: !!!!k8s-node2节点内部IP
...

3、所有节点启动elasticsearch服务
本步骤通过dokcer run启动elasticsearch容器的方式来实现elasticsearch服务的启动。
所有节点执行启动命令(启动elasticsearch服务):

docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300  \
-v /data/es/config/es.yml:/data/share/elasticsearch/config/elasticsearch.yml  \
-v /data/es/data:/data/share/elasticsearch/data  \
 --name ES elasticsearch:7.5.0

说明:注意启动es服务的时候/data/es/config/es.yml文件与/data/share/elasticsearch/config/elasticsearch.yml文件最好都创建一下,当然这里也可以换成自己目录下的文件,注意,如果换成自己所设置的目录下的文件则要修改启动命令; /data/es/data/data/share/elasticsearch/data也可以修改成自己服务器上所设置的目录,只是注意修改启动命令即可。


elasticsearch服务启动之后大家可以通过docker ps -a查看名称为ES的容器的启动情况,假如该容器异常退出的话,即没有处于正常运行状态,可以通过docker logs -f ES</

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值