【分布式应用】ELFK集群部署(Filebeat+ELK)Logstash的过滤模块
一、ELFK集群部署(Filebeat+ELK)
ELFK= ES + logstash+filebeat+kibana
实验环境
服务器类型 | 系统和IP地址 | 需要安装的组件 | 硬件方面 |
---|---|---|---|
node1节点 | 192.168.126.21 | JDK、elasticsearch-6.7.2、kibana-6.7.2 | 2核4G |
node2节点 | 192.168.126.22 | JDK、elasticsearch-6.7.2 | 2核4G |
apache节点 | 192.168.126.23 | JDK、apache、logstash-6.7.2、filebeat-6.7.2 | 2核4G |
注意:ELFK各安装包的版本要一致,或相近
实验步骤:
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.7.2-linux-x86_64.tar.gz 到/opt目录tar zxvf filebeat-6.7.2-linux-x86_64.tar.gzmv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeat
1.3 设置 filebeat 的主配置文件
cd /usr/local/filebeatvim filebeat.ymlfilebeat.prospectors:- type: log #指定 log 类型,从日志文件中读取消息enabled: truepaths:- /var/log/messages #指定监控的日志文件- /var/log/*.logtags: ["sys"] #设置索引标签fields: #可以使用 fields 配置选项设置一些参数字段添加到 output 中service_name: filebeatlog_type: syslogfrom: 192.168.126.23--------------Elasticsearch output-------------------(全部注释掉)----------------Logstash output---------------------output.logstash:hosts: ["192.168.126.23:5044"] #指定 logstash 的 IP 和端口#启动 filebeatnohup ./filebeat -e -c filebeat.yml > filebeat.out &#-e:输出到标准输出,禁用syslog/文件输出#-c:指定配置文件#nohup:在系统后台不挂断地运行命令,退出终端不会影响程序的运行
1.4 在 Logstash 组件所在节点上新建一个 Logstash 配置文件
cd /etc/logstash/conf.dvim filebeat.confinput {beats {port => "5044"}}#filebeat发送给logstash的日志内容会放到message字段里面,logstash使用grok插件正则匹配message字段内容进行字段分割
#Kibana自带grok的正则匹配的工具:http://<your kibana IP>:5601/app/kibana#/dev_tools/grokdebugger
# %{IPV6}|%{IPV4} 为 logstash 自带的 IP 常量
filter {grok {match => ["message", "(?<remote_addr>%{IPV6}|%{IPV4})[\s\-]+\[(?<logTime>.*)\]\s+\"(?<method>\S+)\s+(?<url_path>.+)\"\s+(?<rev_code>\d+) \d+ \"(?<req_addr>.+)\" \"(?<content>.*)\""]}
}output {elasticsearch {hosts => ["192.168.126.21:9200","192.168.126.22:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}}#启动 logstashlogstash -f filebeat.conf
5、浏览器访问
浏览器访问 http://192.168.126.21:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
二、Logstash的过滤模块
2.1 Logstash配置文件中的模块
1、input { }
- 指定输入流,通过file、beats、kafka、redis中获取数据
2、filter { }
常用插件:
- grok:对若干个大文本字段进行再分割,分割成一些小字段 (?<字段名>正则表达式) 字段名:正则表示匹配到的内容
- date:对数据中的时间进行统一格式化
- mutate:对一些无用的字段进行剔除,或增加字段
- mutiline:对多行数据进行统一编排,多行合并和拆分
3、ourput { }
- elasticsearch stdout
2.2 Filter(过滤模块)中的插件
而对于 Logstash 的 Filter,这个才是 Logstash 最强大的地方。Filter 插件也非常多,我们常用到的 grok、date、mutate、mutiline 四个插件。
对于 filter 的各个插件执行流程,可以看下面这张图:
grok插件(通过grok插件实现对字段的分割,使用通配符)
这里就要用到 logstash 的 filter 中的 grok 插件。filebeat 发送给 logstash 的日志内容会放到message 字段里面,logstash 匹配这个 message 字段就可以了。
格式:
匹配格式:(?<字段名>正则表达式)# 字段名:正则表达式匹配到的内容
例:
(?<remote_addr>%{IPV6}|%{IPV4} )(?<other_info>.+)#对数据进行分割ip字段名为remote_addr, 其他字段名为other_info(?<remote_addr>%{IPV6}|%{IPV4} )[\s-]+[(?<log_time>.+)](?<other_info>.+)#添加匹配时间字段(?<remote_addr>%{IPV6}|%{IPV4})[\s-]+[(?<log_time>.+)]\s+"(?<http_method>\S+)\s+(?<url-path>.+)"\s+(?<rev_code>\d+)(?<other_info>.+)#分割多个字段
实例:
cd /etc/logstash/conf.d/cp filebeat.conf filter.confvim filter.confinput {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.126.21:9200","192.168.126.22:9200"]index => "{[filter][service_name]}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}}logstash -f filter.conf #启动
【分布式应用】ELFK集群部署(Filebeat+ELK)Logstash的过滤模块相关推荐
- 搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch
文章目录 一.前置准备 1. 部署总览 2. 技术选型 3. 全局配置 4. 软件下载 5. 操作声明 二.jdk安装 2.1. 上传 2.2. 解压 2.3. 设置环境变量 三.zk集群 3.1. ...
- DockerCompose快速部署分布式应用,集群部署微服务
一.什么是DockerCompose? 该文件是一个文本文件,通过指令定义集群中的每个容器如何运行. 二.对比Docker命令: Compose文件:以下的文件就描述了一个项目,其中包含两个容器: 一 ...
- ELK 7.17.5 集群部署及使用
文章目录 一.ElasticSearch 安装 1.elasticsearch 单节点安装 2.elasticsearch 分布式集群安装 3.elasticsearch 配置身份认证 二.Elast ...
- Elasticsearch+Kibana集群部署(3节点)
Elasticsearch+Kibana集群部署(3节点) l i n d o r − − 良民笔记 lindor--良民笔记 lindor−−良民笔记 文章目录 Elasticsearch+Kiba ...
- Elasticsearch在Linux中的单节点部署和集群部署
目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...
- zookeeper的单实例和伪集群部署
原文链接: http://gudaoyufu.com/?p=1395 zookeeper工作方式 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现 ...
- docker集群部署:第3部分:服务
docker集群部署:第3部分:服务 介绍 在第3部分中,我们将扩展应用程序并实现负载平衡. 关于服务 在分布式应用程序中,应用程序的不同部分被称为"服务".例如,一个视频共享站点 ...
- 【Java项目】好客租房——数据库集群部署
前置知识: [Mysql] 系统架构存在的问题 DB Server 目前只是用了单节点服务,如果面对大并发,海量数据存储,单节点的系统架构存在很严重问题,需要实现 Mysql集群 ,来应对大并发.海量 ...
- Elasticsearch7.9集群部署,head插件,canal同步mysql数据到es,亲自测试,无坑
Elasticsearch集群部署 1.服务器规划 10.4.7.11 node1 10.4.7.12 node2 10.4.7.13 node3 1. 集群相关 一个运行中的 Elastics ...
最新文章
- “智源论坛Live”报名 | 清华大学游凯超:领域适配前沿研究--场景、方法与模型选择...
- java json xml app交互_Java 实体 xml 和 json 之间相互转换
- 构建伪Update服务器工具isr-evilgrade
- java线程暂停_Java之线程停止
- 今天的由于他工作很忙的局域网聊天
- 《剑指Offer》 从上往下打印出二叉树
- memcache 防火墙策略
- CodeIgniter典型的表单提交验证代码
- 6 个步骤,搞定 AI 车牌识别器!(附详细分析)
- EEGLAB在MATLAB中的下载、安装教程
- Scrapy豆瓣电影top250(excel保存和图片下载)
- 运放参数的详细解释和分析-压摆率(SR)
- riot账号服务器互通吗,云顶之弈手游和PC数据互通吗账号数据同步分析
- 敏捷DoD和DoR的多种形态
- mysql 赋权_《MySQL数据库》MySQL用户赋权
- Git Conventional Commits (Git代码提交说明规范)
- labview如何加载库_LabVIEW如何方便地调用DLL文件
- MySql怎么附加数据库
- 一级计算机上字处理题的替换题步骤,一级计算机练习题计算机一级计算机基础及+MS+OFFICE+应用(操作题)-试卷6...
- office软件合集