一、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/filebeat​vim 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.d​vim 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.conf​vim 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的过滤模块相关推荐

  1. 搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch

    文章目录 一.前置准备 1. 部署总览 2. 技术选型 3. 全局配置 4. 软件下载 5. 操作声明 二.jdk安装 2.1. 上传 2.2. 解压 2.3. 设置环境变量 三.zk集群 3.1. ...

  2. DockerCompose快速部署分布式应用,集群部署微服务

    一.什么是DockerCompose? 该文件是一个文本文件,通过指令定义集群中的每个容器如何运行. 二.对比Docker命令: Compose文件:以下的文件就描述了一个项目,其中包含两个容器: 一 ...

  3. ELK 7.17.5 集群部署及使用

    文章目录 一.ElasticSearch 安装 1.elasticsearch 单节点安装 2.elasticsearch 分布式集群安装 3.elasticsearch 配置身份认证 二.Elast ...

  4. Elasticsearch+Kibana集群部署(3节点)

    Elasticsearch+Kibana集群部署(3节点) l i n d o r − − 良民笔记 lindor--良民笔记 lindor−−良民笔记 文章目录 Elasticsearch+Kiba ...

  5. Elasticsearch在Linux中的单节点部署和集群部署

    目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...

  6. zookeeper的单实例和伪集群部署

    原文链接: http://gudaoyufu.com/?p=1395 zookeeper工作方式 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现 ...

  7. docker集群部署:第3部分:服务

    docker集群部署:第3部分:服务 介绍 在第3部分中,我们将扩展应用程序并实现负载平衡. 关于服务 在分布式应用程序中,应用程序的不同部分被称为"服务".例如,一个视频共享站点 ...

  8. 【Java项目】好客租房——数据库集群部署

    前置知识: [Mysql] 系统架构存在的问题 DB Server 目前只是用了单节点服务,如果面对大并发,海量数据存储,单节点的系统架构存在很严重问题,需要实现 Mysql集群 ,来应对大并发.海量 ...

  9. 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 ...

最新文章

  1. “智源论坛Live”报名 | 清华大学游凯超:领域适配前沿研究--场景、方法与模型选择...
  2. java json xml app交互_Java 实体 xml 和 json 之间相互转换
  3. 构建伪Update服务器工具isr-evilgrade
  4. java线程暂停_Java之线程停止
  5. 今天的由于他工作很忙的局域网聊天
  6. 《剑指Offer》 从上往下打印出二叉树
  7. memcache 防火墙策略
  8. CodeIgniter典型的表单提交验证代码
  9. 6 个步骤,搞定 AI 车牌识别器!(附详细分析)
  10. EEGLAB在MATLAB中的下载、安装教程
  11. Scrapy豆瓣电影top250(excel保存和图片下载)
  12. 运放参数的详细解释和分析-压摆率(SR)
  13. riot账号服务器互通吗,云顶之弈手游和PC数据互通吗账号数据同步分析
  14. 敏捷DoD和DoR的多种形态
  15. mysql 赋权_《MySQL数据库》MySQL用户赋权
  16. Git Conventional Commits (Git代码提交说明规范)
  17. labview如何加载库_LabVIEW如何方便地调用DLL文件
  18. MySql怎么附加数据库
  19. 一级计算机上字处理题的替换题步骤,一级计算机练习题计算机一级计算机基础及+MS+OFFICE+应用(操作题)-试卷6...
  20. office软件合集

热门文章

  1. 优雅的python_优雅的Python
  2. mysql数据库中的CONCAT_WS函数和CONCAT函数
  3. CodeSmith for MySQL template
  4. oracle中提示12514,【ORACLE】提示ORA-12514错误处理
  5. Java经典编程实例源码及视频专题汇总
  6. SLAM学习-论文综述(二)
  7. JS设计模式——装饰器模式
  8. 用termux运行python代码_没有电脑?不能运行代码?试试用手机搞定
  9. 股票分析报告怎么写?史上最强股票分析报告范文模板帮助你
  10. 【聆思CSK6视觉AI开发套件试用】SDK实用性评测