当前位置: 首页 > news >正文

基于docker-compose搭建EFK(Elasticsearch+fluentd+kibana)的日志平台

文章目录

  • 前言
  • 一、EFK是什么(来自百度AI)?
  • 二、版本选择
  • 三、es+kibana部署
    • 3.1 docker-compose安装、docker安装
    • 3.2 docker安装
    • 3.3 路径准备
    • 3.4 es.yaml准备
    • 3.5 运行服务
  • 四、fluent的安装
    • 4.1 安装包下载
    • 4.2 安装
    • 4.3 增加k8s日志配置为例
    • 其他
  • 五、登陆kibana查看采集结果,配置index
  • 总结


前言

手上的项目需要搭建一个日志平台收集业务和k8s的日志,看了下大家都用EFK,就自己试着搭建一下。


一、EFK是什么(来自百度AI)?

EFK是一套由Elasticsearch、Filebeat和Kibana组成的开源日志收集与分析系统,用于高效存储、检索和可视化日志数据。

‌核心组件与功能‌

  • Elasticsearch‌。
    分布式搜索和分析引擎,负责日志的存储、索引和实时检索,支持全文与结构化查询。‌
    特点包括高扩展性、近实时数据处理和强大的聚合分析能力。‌‌

  • Filebeat‌。
    轻量级日志采集工具,替代传统Logstash,资源占用更低,专用于收集和转发日志至Elasticsearch或Logstash。‌

  • Kibana‌。
    数据可视化平台,提供交互式图表、仪表盘和搜索界面,便于用户直观分析日志数据。‌

二、版本选择

手上的项目有多套生产环境,但是主要是centos7.9和ubuntu2204。最终确定使用fluent 4.5.2-1,这是centos7上的最后一个版本,在ubuntu2204上也支持。
同时选择配套的es8.8.0

  • ES版本:8.8.0
  • kibana版本:8.8.0
  • fluent版本:4.5.2-1
  • docekr-compose版本:1.29.2
  • fluent-plugin-elasticsearch版本:5,.3.0

三、es+kibana部署

3.1 docker-compose安装、docker安装

docker-compose的部署参考链接: https://blog.csdn.net/baidu_35848778/article/details/142636644

3.2 docker安装

centos链接: https://blog.csdn.net/baidu_35848778/article/details/142630050
ubuntu
ubuntu链接: https://blog.csdn.net/baidu_35848778/article/details/126833898

3.3 路径准备

mkdir -p /data/monitor/01-es-data
mkdir -p /data/monitor/02-es-data
mkdir -p /data/monitor/03-es-data
chmod 755 -R /data/monitor/01-es-data
chmod 755 -R /data/monitor/02-es-data
chmod 755 -R /data/monitor/03-es-data

3.4 es.yaml准备

version: "3.7"services:es01:image: docker.1ms.run/elasticsearch:8.8.0container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- TAKE_FILE_OWNERSHIP=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536volumes:- /data/monitor/01-es-data:/usr/share/elasticsearch/dataports:- 9200:9200networks:- es-networkes02:image: docker.1ms.run/elasticsearch:8.8.0container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- TAKE_FILE_OWNERSHIP=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536volumes:- /data/monitor/02-es-data:/usr/share/elasticsearch/datanetworks:- es-networkes03:image: docker.1ms.run/elasticsearch:8.8.0container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- TAKE_FILE_OWNERSHIP=true- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536volumes:- /data/monitor/03-es-data:/usr/share/elasticsearch/datanetworks:- es-networkkibana:image: docker.1ms.run/kibana:8.8.0container_name: kibanaenvironment:- SERVER_NAME=kibana- ELASTICSEARCH_HOSTS=http://es01:9200- XPACK_MONITORING_ENABLED=true- I18N_LOCALE=zh-CN ports:- 5601:5601networks:- es-networkdepends_on:- es01networks:es-network:driver: bridge

3.5 运行服务

docker-compose -f ./es.yaml up -d
docker-compose -f ./es.yaml ps

在这里插入图片描述

四、fluent的安装

4.1 安装包下载

下载地址:https://www.fluentd.org/download/fluent_package
有时候能打开,有时候打不开 应该还是国内网络的限制,但是下面的wget命令没有问题
在这里插入图片描述

# rpm
wget http://packages.treasuredata.com.s3.amazonaws.com/4/redhat/7/x86_64/td-agent-4.5.2-1.el7.x86_64.rpm
# deb
wget https://s3.amazonaws.com/packages.treasuredata.com/4/ubuntu/jammy/pool/contrib/t/td-agent/td-agent_4.5.2-1_amd64.deb

4.2 安装

使用本地安装方式安装即可

# centos
yum localinstall ./td-agent-4.5.2-1.el7.x86_64.rpm
# ubuntu
apt install ./td-agent_4.5.2-1_amd64.deb

修改service用户到root
/usr/lib/systemd/system/td-agent.service

[Service]
User=root
Group=root

启动服务

systemctl enable td-agent
systemctl daemon-reload
systemctl restart td-agent

4.3 增加k8s日志配置为例

我这里只是简单的收集一下,那种比较高级的收集和筛选后续有机会的话再搞
/etc/td-agent/td-agent.conf

# kube
# kube-apiserver
<source>@type tailpath /var/log/containers/kube-apiserver*.logpos_file /var/log/td-agent/pos/k8s/kube-apiserver.log.postag kube-apiserverformat jsontime_format %Y-%m-%dT%H:%M:%S.%NZ
</source># kube-controller
<source>@type tailpath /var/log/containers/kube-controller*.logpos_file /var/log/td-agent/pos/k8s/kube-controller.log.postag kube-controllerformat jsontime_format %Y-%m-%dT%H:%M:%S.%NZ
</source># kube-scheduler
<source>@type tailpath /var/log/containers/kube-scheduler*.logpos_file /var/log/td-agent/pos/k8s/kube-scheduler.log.postag kube-schedulerformat jsontime_format %Y-%m-%dT%H:%M:%S.%NZ
</source><match **>@type elasticsearchhost xxx.xxx.xxx.xx(IP)port 9200type_name _doclogstash_format truelogstash_prefix xxxx-${tag}

其他

查看支持的es版本,版本信息不一致的话,日志推不上去

# 查看支持的es版本
td-agent-gem list elasticsearch

在这里插入图片描述

五、登陆kibana查看采集结果,配置index

访问数据视图界面,配置数据视图
http://IP:5601/app/management/kibana/dataViews
在这里插入图片描述
discover页面查看日志
在这里插入图片描述

总结

简单搭建,后续有需求再搞细节,这里用的是没有证书的,按照自己的场景配置证书就可以了。

http://www.dtcms.com/a/361931.html

相关文章:

  • 【高等数学】第十章 重积分——第五节 含参变量的积分
  • python3中的除法/ (会把int变成float)向下取整//(不会改变int类型) 和 直接舍弃小数,向0截断
  • JVM性能监控工具的使用
  • python中的分代垃圾回收机制的原理【python进阶二、2】
  • 基于uni-app的校园综合服务平台开发实战
  • uni-app支持单多选、搜索、查询、限制能否点击组件
  • 掌握CRISPE框架:结构化提示词设计的终极指南
  • 【溜冰场轮滑计时计费扣次软件有哪些?】分享常见的几款软件,佳易王软件系列#软件功能解析操作教程
  • Tiny RDM:一个现代化轻量级的Redis桌面客户端
  • 盟接之桥说制造:浅谈本分和做正确的事情
  • 前端微前端架构深度实践:从单体应用到微前端的完整架构解决方案
  • 携程旅行 web 验证码 分析
  • GET、POST、添加、编辑
  • python爬虫之selenium库进阶(小白五分钟从入门到精通)
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(23):文法+单词第7回5+考え方3
  • 为什么要使用RocketMQ半消息
  • 使用C#语言 基于FTP协议进行文件夹上传下载
  • 【Android】Span富文本简介
  • 苹果 Safari 地址栏可能被超大光标视觉欺骗
  • 阿里云OSS架构示意图与流程
  • AR眼镜在警务安防的应用方案
  • 前沿科技竞速:脑机接口、AI芯片与半导体生态上的新突破
  • 线性回归中梯度下降与正规方程以及拟合问题与正则化
  • 【职业】算法与数据结构专题
  • 【Flink】DataStream API (二)
  • 收藏!VSCode 开发者工具快捷键大全
  • 计算机毕设推荐:基于python的农产品价格数据分析与预测的可视化系统的设计与实现 基于Python农产品管理系统【源码+文档+调试】
  • 基于单片机汽车防盗系统/汽车安全防丢系统
  • 企业级主流日志系统架构对比ELKK Stack -Grafana Stack
  • 解决「图片导出功能需要 Chromium 浏览器支持,但未找到」的完整方案