ELFK集群部署与Logstash的过滤模块

news2024/11/27 8:21:04

ELFK集群部署与Logstash的过滤模块

  • ELFK集群部署与Logstash的过滤模块
    • 一、ELFK集群部署(Filebeat+ELK)
      • Filebeat
        • filebeat 结合 logstash 带来好处:
      • 1.1 部署ELK集群
      • 1.2 安装Filebeat(Apache节点)
      • 1.3 设置 filebeat 的主配置文件
      • 1.4 在 Logstash 组件所在节点上新建一个 Logstash 配置文件
      • 1.5 浏览器访问
    • 二、Logstash的过滤模块
      • 2.1 Filter(过滤模块)中的插件
        • grok插件(通过grok插件实现对字段的分割,使用通配符)

ELFK集群部署与Logstash的过滤模块

一、ELFK集群部署(Filebeat+ELK)

Filebeat

  • 轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。
  • 常应用于 EFLK 架构当中。(如果要使用过滤功能的话,Filebeat不能完全替代logstash,Filebeat没有过滤功能,收集数据后需要发送给 logstash 进行处理)

filebeat 结合 logstash 带来好处:

  1. 通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力。
  2. 从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取。
  3. 将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件。
  4. 使用条件数据流逻辑组成更复杂的处理管道。

部署环境:
node1节点(2C/4G):192.168.44.20 (Elasticsearch)
Node2节点(2C/4G):192.168.44.30 (Elasticsearch)
Apache节点:192.168.44.40 (Logstash Kibana Apache)
Filebeat节点:192.168.44.40 (Filebeat)

1.1 部署ELK集群

ELFK集群环境下,Logstash 组件所在节点的/etc/logstash/conf.d目录下,不需要创建system.conf配置文件,即Logstash不需要收集系统日志,因为系统日志将由filebeat收集后发送给Logstash。(安装filebeat后,Logstash会创建filebeat.conf配置文件获取filebeat传来的数据)

1.2 安装Filebeat(Apache节点)

#上传软件包 filebeat-6.2.4-linux-x86_64.tar.gz 到/opt目录
tar zxvf filebeat-6.2.4-linux-x86_64.tar.gz

#更换目录名称为filebeat
mv filebeat-6.2.4-linux-x86_64/ /usr/local/filebeat

1.3 设置 filebeat 的主配置文件

cd /usr/local/filebeat

cp filebeat.yml{,.bak}

vim filebeat.yml
filebeat.prospectors:
- type: log         #指定 log 类型,从日志文件中读取消息
  enabled: true      #修改为true
  paths:
    - /var/log/messages       #指定监控的日志文件
    - /var/log/*.log
  tags: ["fulebeat"]		#设置索引标签
  fields:           #可以使用 fields 配置选项设置一些参数字段添加到 output 中
    service_name: httpd
    log_type: access       #日志类型
    from: 192.168.44.40     #源地址

在这里插入图片描述

output.logstash:
  hosts: ["192.168.44.40:5044"]      #指定 logstash 的 IP 和端口

#启动 filebeat
nohup ./filebeat -e -c filebeat.yml > filebeat.out &   #nohup放入后台启动,并且不会因为终端退出而结束进程

#-e:输出到标准输出,禁用syslog/文件输出
#-c:指定配置文件
#nohup:在系统后台不挂断地运行命令,退出终端不会影响程序的运行

在这里插入图片描述

1.4 在 Logstash 组件所在节点上新建一个 Logstash 配置文件

cd /etc/logstash/conf.d

cp system.conf filebeat.conf
#复制出一个新的配置文件,对新的配置文件进行修改

#修改文件filebeat。conf
vim filebeat.conf
input {
    beats {
        port => "5044"    #原本是使用文件读取数据,现改为用filebeat读取
    }
}
output {
    elasticsearch {
        hosts => ["192.168.44.20:9200","192.168.44.30:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"  #用过filebeat.yml配置文件定义的字段获取名字
    }
    stdout {
        codec => rubydebug   #设置为能输出到屏幕上
    }
}

#启动 logstash
logstash -f filebeat.conf

1.5 浏览器访问

浏览器访问http://192.168.44.20:9100/ 。
在这里插入图片描述
浏览器访问 http://192.168.44.40:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。

在这里插入图片描述
在这里插入图片描述

二、Logstash的过滤模块

1、input {}

  • 指定输入流,通过file、beats、kafka、redis中获取数据

2、filter {}
常用插件:

  • grok:对若干个大文本字段进行再分割,分割成一些小字段 (?<字段名>正则表达式) 字段名:正则表示匹配到的内容
  • date:对数据中的时间进行统一格式化
  • mutate:对一些无用的字段进行剔除,或增加字段
  • mutiline:对多行数据进行统一编排,多行合并和拆分

3、ourput {}

  • elasticsearch stdout

2.1 Filter(过滤模块)中的插件

而对于 Logstash 的 Filter,这个才是 Logstash 最强大的地方。Filter 插件也非常多,我们常用到的 grok、date、mutate、mutiline 四个插件。

对于 filter 的各个插件执行流程,可以看图:
在这里插入图片描述

grok插件(通过grok插件实现对字段的分割,使用通配符)

这里就要用到 logstash 的 filter 中的 grok 插件。filebeat 发送给 logstash 的日志内容会放到message 字段里面,logstash 匹配这个 message 字段就可以了。

格式:
匹配格式:(?<字段名>正则表达式) #字段名:正则表达式匹配到的内容

实例1:

 (?<remote_addr>%{IPV6}|%{IPV4} )(?<other_info>.+)
 #对数据进行分割ip字段名为remote_addr, 其他字段名为other_info

实例2:

 (?<remote_addr>%{IPV6}|%{IPV4} )[\s-]+[(?<log_time>.+)](?<other_info>.+)
 #添加匹配时间字段

实例3:

#分割多个字段
 (?<remote_addr>%{IPV6}|%{IPV4})[\s-]+[(?<log_time>.+)]\s+"(?<http_method>\S+)\s+(?<url-path>.+)"\s+(?<rev_code>\d+)(?<other_info>.+)

实例4:

 cd /etc/logstash/conf.d/
 cp filebeat.conf filter.conf
 ​
 vim filter.conf
 input {
     beats {
         port => "5044"
     }
 }
 filter {
   grok {
      match =>["message","(?<remote_addr>%{IPV6}|%{IPV4} )[\s-]+[(?<log_time>.+)]\s+"(?<http_method>\S+)\s+(?<url-path>.+)"\s+(?<rev_code>\d+)(?<other_info>.+)"]
   }
 }
 output {
     elasticsearch {
         hosts => ["192.168.44.20:9200","192.168.44.30:9200"]
         index => "{[filter][service_name]}-%{+YYYY.MM.dd}"
     }
     stdout {
         codec => rubydebug
     }
 }
  logstash -f filter.conf   #启动

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TimeSformer:Is Space-Time attention all you need for video understanding?

【实践】CV领域的Transformer模型TimeSformer实现视频理解 - 飞桨AI Studio本项目选取CV中的transformer模型TimeSformer进行项目开发&#xff0c;在UCF101数据集上训练、验证、评估 - 飞桨AI Studiohttps://aistudio.baidu.com/aistudio/projectdetail/3413254?contributionT…

Zookeeper系列文章-Curator

之前我们讲解了Zookeeper安装与Zookeeper常用命令讲解 linux安装Zookeeper3.5.7详解_兜兜转转m的博客-CSDN博客 Zookeeper系列文章—入门_兜兜转转m的博客-CSDN博客 由于我们需要利用Java进行开发&#xff0c;因此我们使用Curator对Zk进行操控 导入依赖&#xff0c;由于使用…

作业-11.22

1、TCP服务器和客户端交互 服务器 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <string.h> #include <unistd.h> #define ERR_MSG(msg) do{\ …

Java基础—反射

反射 我们来探讨Java中的一些动态特性&#xff0c;包括反射、注解、动态代理、类加载器等。利用这些特性&#xff0c;可以优雅地实现一些灵活通用的功能&#xff0c;它们经常用于各种框架、库和系统程序中&#xff0c;比如&#xff1a; 1&#xff09;14.5节介绍的Jackson&…

MAC苹果电脑关闭系统完整性保护SIP

苹果电脑从 macOS 10.11 开始引入了系统完整性保护机制SIP&#xff08;System Integrity Protection&#xff09;&#xff0c;目的是帮助普通用户避免恶意 app 通过用户授权的方式获得所有系统权限。通过 System Integrity Protection&#xff0c;苹果实现了对第三方软件的限制…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.14 SpringBoot 整合 quartz

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.14 SpringBoot 整合 quartz5.14.1 任务【定时任务…

Linux-cut

cut命令介绍 cut命令将文件的每一行剪切字节&#xff0c;字符和字段&#xff0c;并将这些字节&#xff0c;字符和字段写到标准输出 提取列&#xff0c;cut命令不能提取空格&#xff0c;可以是制表符或者其他字符 cut [选项][文件] 选项&#xff1a; -b&#xff1a;以字节为单…

2.5、信道的极限容量!

2.5、信道的极限容量&#xff01; 2.5.1、因素影响 由于信号在传输过程中会受到各种因素的影响 例如&#xff1a;这是一个数字信号 当它通过实际的信道后&#xff0c;波形会产生失真。 失真不严重时&#xff0c;在输出端还可根据已失真的波形还原出发送的码元 当失真严重…

G1D20-AnacondaCSKE综述AttacKG终于配好环境啦KG book CTF

先下一个anaconda emmmpipenv install requirements.txt好像不太好用&#xff0c;还不如pycharm中的自动安装 先读论文啦~ 一、CS KE综述 &#xff08;一&#xff09;NER systems 1、判别式模型&生成式模型 判别式模型&#xff1a;学习P&#xff08;Y|X&#xff09;&am…

C语言-结构体(7)

目录 思维导图&#xff1a; 1. 结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 结构成员的类型 1.4 结构体变量的定义和初始化 2. 结构体成员的访问 3. 结构体传参 写在最后&#xff1a; 思维导图&#xff1a; 1. 结构体的声明 1.1 结构的基础知识 结构是一些…

python一键去PDF水印,只需十行代码,超级简单...

用python制作去除 pdf 文件水印脚本前因后果去除水印原理代码剖析1、先查看PDF文档中的水印rgb值是多少2、pdf转换成图片&#xff0c;并去除水印3、图片转为pdf代码整合总结前因后果 弟弟最近要考试&#xff0c;临时抱佛脚在网上找了一堆学习资料复习&#xff0c;这不刚就来找…

机器学习-sklearn-高斯混合模型-学习笔记

文章目录前言一、如何估计参数二、二分类原生代码实现三、sklearn实现模型总结前言 学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV1rB4y1v7dA/?spm_id_from333.788&vd_sourceaf83080eba7b379d3fda36e341bdb195 使用高斯混合模型的原因&#xff1a; 模…

03137计算机网络原 - 物理层

物理层 基础概念 OSI模型最底层 功能 为在链路实体间传送比特流而对物理连接的 接通 维持 和 拆除 提供机械,电气,功能和规程方面的方法作用 尽可能屏蔽现有多种多样的硬件设备,传输媒体和通信手段的差异。确保原始数据可以在各种物理媒介上传输任务特性 机械特性 指明接…

Linux环境变量与程序地址空间

Linux环境变量与程序地址空间 文章目录Linux环境变量与程序地址空间1.环境变量1.1 环境变量概念与深入理解1.2 代码获取环境变量的方法1.3 系统调用获取和设置环境变量的方法2.程序地址空间2.1 程序地址空间图(准确来说是进程地址空间图)2.2 程序地址空间的验证2.3 进程地址空间…

概率论中的几个重要悖论问题

1. 蒙提霍尔问题&#xff08;三门问题&#xff09; 三门问题&#xff08;Monty Hall problem&#xff09;亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论&#xff0c;大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔&#xff08;Monty Hall&…

【笑小枫的SpringBoot系列】【十八】SpringBoot中的Properties配置

本文简介&#x1f3a8; 随着我们的演示功能越来越多&#xff0c;里面的配置也越来越多&#xff0c;我们怎么更好的来管理这些配置呢&#xff1f; 实际项目中&#xff0c;我们肯定会有开发环境、测试环境、生产环境&#xff0c;我们又该怎么便捷的配置这些环境呢&#xff1f; …

CANopen之SDO,PDO

一、简述 CAN 总线是一种串行通信协议&#xff0c;具有较高的通信速率的和较强的抗干扰能力&#xff0c;可以作为现场总线应用于电磁噪声较大的场合。由于 CAN 总线本身只定义ISO/OSI 模型中的第一层&#xff08;物理层&#xff09;和第二层&#xff08;数据链路层&#xff09…

nodejs+mysql网上书店图书销售购物商城系统vue

系统功能 此系统的功能分为用户模块和管理员模块&#xff1a; 1、用户后台功能模块包括&#xff1a;首页、个人中心、订单评价管理、我的收藏管理、订单管理模块。 2、前台首页功能模块包括&#xff1a;首页、图书信息、图书资讯、个人中心、后台管理、购物车、在线聊天模块。 …

SAP MDG —— 更好地理解你的数据变更

概念 在SAP MDG on SAP S/4HANA 2021中&#xff0c;SAP发布了一种全新的数据分析框架&#xff1a;变更请求中的主数据变更分析。依赖该框架&#xff0c;你可以为你的最终用户提供强大的数据分析功能&#xff0c;以深度洞悉变更请求中到底变化了哪些数据。 使用这些分析功能&a…

Thinkphp6 分布式事务异常处理 1440 XAER_DUPID: The XID already exists

Mysql分布式事务&#xff0c;前提条件 MySQL中只有当隔离级别设置为Serializable的时候才能使用分布式事务。 执行两个命令确认环境 show variables like innodb_support_xa;show variables like %tx_iso%;异常信息 根据官方分布式示例 public function test(){Db::transa…