)
一.多行过滤插件多行过滤插件的作用是什么呢首先我们要知道如果没有这个插件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 StackELK中的轻量级日志采集器由 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的配置打开。