当前位置: 首页 > 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.xdnf.cn/news/1424053.html

相关文章:

  • 2025年工作后值得考的财会行业证书推荐,尤其是第二个!
  • 从网络层接入控制过渡到应用层身份认证的过程
  • 如何在SptingBoot项目中引入swagger生成API文档
  • HarvardX TinyML小笔记2(番外3:数据工程)
  • 技术速递|构建你的第一个 MCP 服务器:如何使用自定义功能扩展 AI 工具
  • Linux之Shell编程(四)函数、数组、正则
  • PostgreSQL备份指南:逻辑与物理备份详解
  • EPLAN如何添加接触器辅助触头 | 解决触点不足问题详解4----使用部件组
  • 三、Gitee平台使用指南
  • 在Lumerical FDTD中,磁偶极子通常用于激发TE模式,而电偶极子用于激发TM模式(文心一言)
  • chrome好用的浏览器插件
  • 51.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--登录注册扩展
  • UE角色取消被Decal影响
  • 在 PHP 应用中处理限流和 API 节流:扩展、防滥用的最佳实践
  • 【数据可视化-102】苏州大学招生计划全解析:数据可视化的五大维度
  • 预告:AI赋能IT服务管理实践 |2025 “数字化时代的IT服务管理“Meetup-深圳站(9月20日)
  • [吾爱出品] PDF文件加密解密工作,附带源码。
  • GitHub CLI (gh) 全面指南:终端中的 GitHub 工作流革命
  • ServBay 是一款集成式、图形化的本地 Web 开发环境工具,专为 macOS 和 Windows 系统设计
  • 什么是最大熵强化学习?
  • Linux笔记---计算机网络概述
  • Python上下文管理器与资源管理
  • WEEX:从某DEX代币暴涨看加密交易选择
  • 【Linux】模拟实现Shell(下)
  • 快递地址归类排序实现(Java Python)
  • 查看服务器设备是否为物理机
  • Linux内核进程管理子系统有什么第三十九回 —— 进程主结构详解(35)
  • 算法练习——169.多数元素
  • 教育项目管理工具新趋势:可视化与自动化如何提升效率?
  • XGBoost学习笔记