【微服务日志收集①】使用FileBeat+Logstash+ES搭建ELK日志系统

使用FileBeat+Logstash+ES搭建ELK日志系统,架构图如下:

在这里插入图片描述

1、 使用docker快速创建ES服务和Kibana服务

前置条件:需要在linux上提前安装好docker和docker-compose

1.1、在linux创建好一个用于存放docker-compose配置文件的文件夹

  • 我的目录是/app/soft-docker-compose/ELK/elasticsearch

1.2、创建一个docker-compose.yml的文件

  • 文件内容如下所示,受限于机器内存所以给ES服务配置的内存参数比较小,大家可根据机器性能自行配置(但最好配置大一些,不然性能可能受限)

    version: '2.2'
    services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1container_name: elasticsearchenvironment:- discovery.type=single-node  # 单节点模式#开启远程访问  
    #      - network.host=0.0.0.0#指定集群通信 IP(避免自动选择)- network.publish_host=192.168.75.128- ES_JAVA_OPTS=-Xms512m -Xmx512m    # 限制堆内存为 512MB- xpack.ml.enabled=false            # 关闭机器学习ports:- "9200:9200"- "9300:9300"volumes:# 数据卷映射:容器内路径固定,宿主机路径可自定义(需权限配置)- elasticsearch-data:/usr/share/elasticsearch/data# 配置文件映射:宿主机路径可自定义,容器内路径固定- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymldeploy:resources:limits:memory: 1g  # 容器总内存上限 1GB
    #    networks:  
    #      - elk_network  # 加入自定义网络kibana:image: docker.elastic.co/kibana/kibana:7.6.1container_name: kibanaenvironment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200  # 替代旧版 ELASTICSEARCH_URL- SERVER_HOST=0.0.0.0- NODE_OPTIONS=--max-old-space-size=256  # Node.js 堆内存限制为 256MB- xpack.monitoring.enabled=false    # 关闭监控- I18N_LOCALE=zh-CN                 # 设置Kibana可视化平台为中文ports:- "5601:5601"depends_on:- elasticsearchvolumes:  - ./kibana.yml:/usr/share/kibana/config/kibana.yml # 挂载Kibana配置文件deploy:resources:limits:memory: 512m  # 容器总内存上限 512MB
    #    networks:  
    #      - elk_network  # 加入自定义网络#networks:  
    #  elk_network:  
    #    driver: bridge    # 使用桥接驱动volumes:elasticsearch-data:# 宿主机数据目录(可选自定义路径,默认由 Docker 管理)# 如需指定宿主机路径,替换为:`- /宿主机路径/elasticsearch-data:/usr/share/elasticsearch/data`
    
  • 保存好后,直接在当前目录下执行命令:docker-compose up -d
    在这里插入图片描述

  • 如果启动有问题,可以根据命令docker logs -f <容器id> 显示出相关服务容器日志,根据错误自行排查解决

2、搭建LogStash服务

2.1、下载与ES配套的LogStash版本发布包、修改配置文件

  • 官网下载地址:https://www.elastic.co/cn/downloads/past-releases#logstash
  • 解压到ES目录下,并进入Logstash目录
  • 使用命令vim ~/.bash_profile配置环境变量LS_JAVA_HOME
    在文件后追加:export LS_JAVA_HOME=/app/soft-docker-compose/ELK/logstash-7.17.13/jdk
    在这里插入图片描述
  • 接下来对logstash的输入和输出目录进行配置。进入config目录,在目录下直接修改logstash-sample.conf文件即可
    # Sample Logstash configuration for creating a simple
    # Beats -> Logstash -> Elasticsearch pipeline.# 从filebeat输入消息,接收的端口是5044
    input {beats {port => 5044}
    }# 对输入的内容进行格式化处理,这里用grok插件处理非结构化数据
    # COMBINEDAPACHELOG是针对APACHE服务器提供的一种通用的解析格式,也适用于解析Nginx日志
    filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}"}}
    }# 数据的输出,这里将结果输出到本机的elasticsearch中,索引是nginxlog
    output {elasticsearch {hosts => ["http://192.168.75.128:9200"]#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"index => nginxlog		# 本次以收集nginx服务的access.log日志为例user => "elastic"       # 如果es配置了验证需要加这个配置password => "123456"	# 同上,由于我的是内网,暂时不加校验}
    }
    
  • 如上的配置就可以过滤FileBeat收集到的日志了,logstash更详细的配置说明参见官方文档:https://www.elastic.co/guide/en/logstash/7.17

2.2、启动Logstash服务

  • 接下来直接使用命令启动Logstash服务:nohup bin/logstash -f config/logstash-sample.conf --config.reload.automatic &
  • 可以查看当前目录下的nohup.out启动日志,看有无异常

3、搭建Filebeat服务

3.1、下载对应版本的Filebeat发布包、修改filebeat.yml

  • 去官网下载对应版本的filebeat发布包,官网下载地址:https://www.elastic.co/cn/downloads/past-releases#filebeat
  • 解压后,在解压目录下已经提供了一个模版配置文件filebeat.yml,我们需要对其修改,主要是改从文件读取日志不分,还有输出到logstash的部分
    • 先修改文件输入的部分配置:

      # ============================== Filebeat inputs ===============================
      filebeat.inputs:
      - type: filestream# Change to true to enable this input configuration.enabled: true # Paths that should be crawled and fetched. Glob based paths.paths:- /var/log/nginx/access.log	# 需要收集的日志文件路径,可以配多个#- c:\programdata\elasticsearch\logs\*
      
    • 然后修改输出到logstash的部分配置:

      # ------------------------------ Logstash Output -------------------------------
      output.logstash:# The Logstash hostshosts: ["192.168.75.128:5044"]
      

      注意:默认打开的是output.elasticsearch,输入到es,这部分配置要注释掉!我们需要现将日志收集到Logstash对数据进行过滤、分析和统一格式等。当然也可以用Logstash直接收集,但是Logstash服务过重,如果在每个应用上都部署一个Logstash,会给应用服务器增加很大的负担。因此,通常会在应用服务器上,部署轻量级的Filebeat组件。Filebeat可以持续稳定的收集简单数据,比如log日志,统一发给logstash进行收集后,再经过处理存到ES。

    • 更详细的配置参见官方文档: https://www.elastic.co/guide/en/beats/filebeat/7.17/logstash-output.html

3.2、启动Filebeat服务

  • 执行启动命令nohup ./filebeat -e -c filebeat.yml -d "publish" &
  • 进入Kibana可视化平台页面,查询验证ELK日志服务是否OK
    在这里插入图片描述
  • 通过日志在Kibana上统计PV、UV
    在这里插入图片描述

谢谢~ 爱在深秋,peace!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35338.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos 7 安装达梦数据库

一、环境准备 1. 确认操作系统的版本和数据库的版本是否一致 cat /etc/redhat-release 2. 关闭防火墙 查看防火墙状态 firewall-cmd --state 停止firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 3. 修改文件l…

仿“东方甄选”直播商城小程序运营平台

在公域直播流量红利趋于饱和、流量成本大幅攀升的当下&#xff0c;私域直播为企业开辟了新的流量聚集和转化渠道&#xff0c;特别是对于那些希望在私域流量领域取得突破的品牌商家来说&#xff0c;直播场景以其独特的高频互动氛围&#xff0c;相比其他运营方式&#xff0c;展现…

ZED X系列双目3D相机的耐用性与创新设计解析

在工业自动化和学术研究领域&#xff0c;高精度的视觉设备正成为提升效率和质量的关键。ZED X系列AI立体相机&#xff0c;凭借其先进的技术和耐用的设计&#xff0c;为这一领域带来了新的可能。 核心技术&#xff1a;深度感知与精准追踪 ZED X系列的核心技术之一是Neural Dept…

Cursor的使用感受,帮你使用好自动化编程工具,整理笔记

使用感受 说实话&#xff0c;我觉得cursor还是好用的&#xff0c;可能我刚开始使用&#xff0c;没有使用的非常的熟练&#xff0c;运用也没有非常的透彻&#xff0c;总体体验还是不错的&#xff0c;在使用它时&#xff0c;我优先考虑&#xff0c;前端页面功能复用的时候&#…

《C#上位机开发从门外到门内》3-5:基于FastAPI的Web上位机系统

文章目录 一、项目概述二、系统架构设计三、前后端开发四、数据可视化五、远程控制六、系统安全性与稳定性七、性能优化与测试八、实际应用案例九、结论 随着互联网技术的快速发展&#xff0c;Web上位机系统在工业自动化、智能家居、环境监测等领域的应用日益广泛。基于FastAPI…

vue3单独引用element-plus的Infinite Scroll无限滚动;vue3自定义指令

文章目录 1.正常单独使用element-plus其他功能组件2.引入类似与指令的插件3.自定义指令钩子 1.正常单独使用element-plus其他功能组件 引入即可使用 import { ElSelect, ElOption } from "element-plus"2.引入类似与指令的插件 需要先引入&#xff0c;再注册&…

CMake学习笔记(二):变量设值,源文件/文件查找

一_变量设值: 在上一节中我们知道了如何去链接起来多个源文件并且生成可执行文件&#xff0c;但是当我们的源文件过多的时候会导致我们在add_executable里面写很长的一串&#xff0c;所以我们可以使用变量来进行设值: set(<variable> <value>... [PARENT_SCOPE])…

【Function】Azure Function通过托管身份或访问令牌连接Azure SQL数据库

【Function】Azure Function通过托管身份或访问令牌连接Azure SQL数据库 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【Function】Azure Function通过托管身份或访问令牌连接Azu…

案例5_1:单位数码管显示0

文章目录 文章介绍效果图仿真图5_1放置单位数码管 代码5_1.c 文章介绍 效果图 仿真图5_1 复制案例1_2的仿真图&#xff0c;在此基础上修改 注意&#xff1a;栅格大小需要缩小 放置单位数码管 代码5_1.c #include <reg52.h>#define uchar unsigned char #define uint un…

helm部署metricbeat

背景 在Elastic Stack 7.5版本之前&#xff0c;系统默认采用内置服务进行监控数据采集&#xff08;称为内部收集机制&#xff09;&#xff0c;这种设计存在显著局限性&#xff1a; 当ES集群崩溃时自带的节点监控也会随之崩溃&#xff0c;直到集群恢复前&#xff0c;崩溃期间的…

基于 Python 爬取 TikTok 搜索数据 Tiktok爬虫(2025.3.17)

1. 前言 在数据分析和网络爬虫的应用场景中&#xff0c;我们经常需要获取社交媒体平台的数据&#xff0c;例如 TikTok。本篇文章介绍如何使用 Python 爬取 TikTok 用户搜索数据&#xff0c;并解析其返回的数据。 结果截图 2. 项目环境准备 在正式运行代码之前&#xff0c;我…

阿里云、腾讯云云主机如何提升远程桌面安全(VNC登录)

远程桌面连接&#xff08;RDP&#xff09;是管理主机的常用方式&#xff0c;但同时也带来了安全风险。黑客会对远程桌面进行暴力破解攻击和撞库攻击。作为云主机&#xff0c;在远程桌面方面有天然的安全优势&#xff1a;可以关闭远程桌面服务或端口&#xff0c;限制只能通过网页…

【etcd】

一、ETCD 简介 etcd是一个由CoreOS团队开发的开源项目&#xff0c;旨在提供一个高可用的、分布式的、一致的键值存储&#xff0c;用于配置共享和服务发现。尽管它看起来像一个键值存储&#xff0c;但etcd的设计目标远远超出了传统数据库的功能范围。 etcd的核心特性包括&…

深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步

在医疗设备领域&#xff0c;电磁兼容性&#xff08;EMC&#xff09;是确保设备安全、有效运行的关键指标。随着医疗技术的飞速发展&#xff0c;医疗设备日益复杂&#xff0c;其电磁环境也愈发复杂多变。EMC检测测试及整改因此成为医疗设备研发、生产、销售过程中不可或缺的一环…

项目实战系列:基于瑞萨RA6M5构建多节点OTA升级-系统设计<一>

项目背景 原嵌入式控制系统采用分布式模块化架构&#xff0c;由12个功能板卡&#xff08;通信控制、信号采集、驱动执行等&#xff09;组成。系统维护阶段存在以下痛点&#xff1a; 低效的本地烧录机制&#xff1a;各板卡固件升级需通过JTAG接口逐一手动连接JLINK仿真器&#x…

五大方向全面对比 IoTDB 与 OpenTSDB

对比系列第三弹&#xff0c;详解 IoTDB VS OpenTSDB&#xff01; 之前&#xff0c;我们已经深入探讨了时序数据库 Apache IoTDB 与 InfluxDB、Apache HBase 在架构设计、性能和功能方面等多个维度的区别。还没看过的小伙伴可以点击阅读&#xff1a; Apache IoTDB vs InfluxDB 开…

RAGFlow部署与使用(开源本地知识库管理系统,包括kibana配置)

一、RAGFlow 简介 戳我访问RAGFlow RAGFlow 是一款基于深度文档理解构建的开源 RAG&#xff08;Retrieval-Augmented Generation&#xff09;引擎。它可以给我们搭建本地知识库&#xff0c;将用户的知识文档上传到RAGFlow后&#xff0c;通过文档切分、向量入库&#xff0c;在…

HTB 学习笔记 【中/英】《Web 应用 - 布局》P2

&#x1f4cc; 这篇文章讲了什么&#xff1f; 介绍了 Web 应用的架构和布局&#xff0c;包括不同的基础设施、组件、架构模式等。讲解了 常见的 Web 应用部署方式&#xff08;单服务器、多服务器等&#xff09;&#xff0c;并分析了它们的安全性。介绍了 微服务架构&#xff0…

蓝牙系统的核心组成解析

一、硬件层&#xff1a;看得见的物理载体 1. 射频模块&#xff08;Radio Frequency Module&#xff09; 专业描述&#xff1a;工作在2.4GHz ISM频段&#xff0c;支持GFSK/π/4 DQPSK/8DPSK调制方式 功能类比&#xff1a;相当于人的"嘴巴"和"耳朵" 发射端…

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年&#xff0c;全靠夜以继日的勤奋&#xff0c;一天当两天用&#xff0c;抠论文 抠代码 和大模型及具身同事讨论&#xff0c;是目前日常 而具身库里&#xff0c;idp3、π0、lerobot值得反复研究&#xff0c;故&#xff0c;近期我一直在抠π0及l…