logstash部署(终)
2026/8/29 11:03:10 网站建设 项目流程

.多行过滤插件

多行过滤插件的作用是什么呢?首先我们要知道,如果没有这个插件,logstash是会认为是一行一个日志,但是实际上,一个日志可能是会有很多行的。如果我们没有设置这个,那么日志信息就会分散开,我们收集的都是不完整的信息。

我们将server1中的my-es.log文件拷贝过去,然后配置server5的logstash配置文件。

此时就是设置了多行过滤了,那么同一条日志就会集中再一起,而不会再被分开了。

.grok过滤

Grok 是 Logstash 中最核心、最强大的文本解析过滤插件。它的作用是把非结构化的日志文本(如一行原始的 Nginx 日志),拆解成结构化的字段(如 IP、时间、URL、状态码等),方便后续在 Elasticsearch 中搜索和分析。

通俗来说,Grok 就是 Logstash 的"正则表达式提取器"——它用一种更易读的方式,帮你把一行日志中的各个部分"抓"出来,分别命名。

那么比如我们这里通过httpd服务的日志,来了解这个grok过滤的作用。

我们将Apache服务启动,并且在首页写了一个westos.org,此时我们通过logstash的file插件,访问Apache的access日志,如果有访问,那么就会有日志。我们先访问一下这个网站。

然后此时再配置logstash的配置文件,我们再新建一个。

这里的核心就是filter过滤,grok就是指明使用grok插件过滤,match这里指向message,表示对message进行grok过滤,然后这里的%{HTTPD_COMBINEDLOG}是logstash里面的一个内置预定义模式,就是用来匹配apache和nginx的日志组合形式的。

然后我们用这个配置文件执行一下:

此时我们的日志就是过滤过的了,每一个信息都有对应的名字了。

.filebeat日志采集

1.filebeat采集web服务日志

Filebeat 是 Elastic Stack(ELK)中的轻量级日志采集器,由 Elastic 公司用 Go 语言开发,专门用于读取日志文件并将数据转发到 Elasticsearch 或 Logstash。

简单来说Filebeat 是一个高性能、低资源消耗的日志采集代理,部署在每台需要采集日志的服务器上,负责读取日志文件并可靠地转发到后端。当把数据转发给logstash的时候,我们可以把它理解成logstash的proxy。

比如现在,在另外一台机器上面有一个apache服务,那怎么把这台机器的apache服务集中到我们的elasticsearch上面呢?通过之前的学习,我们知道logstash肯定是可以的,但是logstach是一个Java程序,太“重”了,此时我们就可以部署filebeat服务,这相较于logstash就轻量多了。

现在我们先在server4上安装filebeat,同时部署apache服务。

在安装完成之后,filebeat是有apche这类服务的模板的,输入对应的指令,就可以告诉filebeat使用哪一个日志采集模块。

这里就是把apache模块给打开了。

然后打开当前目录下的apache.yml文件进行配置

指明访问日志文件路径和错误日志文件路径。最后我们将其配置输出到ES中就可以了。配置 /etc/filebeat/filebeat.yml文件,找到里面的ES模块,将output配置成集群里面的一个主机。

最后启动filebeat服务。

在ES上面也可以看到。

2.输出到logstash

这个就是filebeat将数据输出到logstash里面,此时需要logstash通过5044端口接收到filebeat的数据传输。所以我们需要在logstash的配置文件中,加上一个5044端口监听的配置。

然后我们启动logstash服务:

此时Server4上的filebeat指向的还是ES,我们把这个配置修改一下。

将之前的配置注释掉,同时将logstash的配置打开。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询