• 一、Windows下载安装
    • 1、filebeat
    • 2、logstash
  • 二、配置
    • 1、梳理下流程
    • 2、filebeat配置
    • 3、logstash配置
  • 三、filebeat配置多个文件来源
  • 四、相关地址

一、Windows下载安装

1、filebeat

  • 下载:filebeat下载,注意别和es相差太多版本
  • 配置 根目录下的 文件 filebeat.yml
  • 启动
cd D:\ProgramFiles\ELK\filebeat-7.2.0-windows-x86
filebeat.exe -e -c filebeat.yml

2、logstash

  • logstash下载,注意别和es相差太多版本
  • 启动
cd D:\ProgramFiles\ELK\logstash-7.2.0\bin
logstash.bat -f ../logstash_test.conf
  • 配置文件 logstash_test.conf写哪都可以,只要你能够正确指定。我的配置文件写在logstash-7.2.0 根目录,也是bin 的同级目录

二、配置

1、梳理下流程

[ filebeat ] 配置

  • 1、把指定位置paths的日志文件input(输入)到 filebeat
  • 2、从 filebeat 把数据 output(输出)到 logstash

[ logstash ] 配置

  • 3、在logstashinput(输入)filebeat 传过来的数据
  • 4、进行filter数据过滤匹配
  • 5、把数据output(输入)到es

总结:利用 Filebeat 去读取日志发送到 Logstash ,再由 Logstash 对日志分析处理,提取我们需要的项后发送给 Elasticsearch 存储起来, 然后利用 Kibana 去分析获得的日志。

2、filebeat配置

  • filebeat.inputs:- type: log 配置
- type: logenabled: true #设置为truepaths:- E:\test\log\*\[0-9][0-9].log #日志文件地址fields:logtype: testlog # 日志类型,与 logstash中的字段 [fields][logtype] 相呼应multiline.pattern:  '^\[' #我们的日志一条记录可能有多行,在这里要做好正则,把多行日志分割成一条条的记录multiline.negate: truemultiline.match: after
  • Outputs中默认把数据output(输出)到Es,我们注释掉这行hosts: ["localhost:9200"],改成把数据output(输出)到 logstash
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:# Array of hosts to connect to.#hosts: ["localhost:9200"]# Optional protocol and basic auth credentials.#protocol: "https"#username: "elastic"#password: "changeme"#----------------------------- Logstash output --------------------------------
output.logstash:# The Logstash hostshosts: ["localhost:9601"] #自定义一个未被占用的端口,与logstash input中的 beats port 相呼应

3、logstash配置

# 数据输入:logstash单独使用的话的直接从我们的log文件中输入数据,这里我们从filebeat中输入数据 port 与 Logstash output 中我们配置的端口号相呼应
input {beats {port => 9601}#file {#path => "E:/test/log/*/*.log"#start_position => "beginning"#stat_interval => 3#}
}
# 数据过滤
filter {if [fields][logtype] == "testlog" { # [fields][logtype] 等于 filebeat中的logtype字段if ([message]=~ "正则表达式") { # message就是指原始消息:如果原始消息满足这个正则表达式,则丢弃该记录drop{}}grok {match => {# 尝试匹配message的数据,把匹配到的数据存入es表,字段名如下 为自定义的 timestamp,client_ip,...# message配置:string or array"message" => ["\[%{TIMESTAMP_ISO8601:timestamp}\] %{IP:client_ip} %{USERNAME:method} %{URL:url}%{CUSTOMURIPARAM:param} %{NUMBER:duration}"]}}# 把我们的时间格式 YYYY-mm-dd HH:ii:ss 转化为时间戳的形式,存入到es:替换es的@timestamp字段date {match => ["timestamp", "ISO8601"]target => "@timestamp"}# 由于我们匹配出来了一个timestamp字段,并且替换了es默认的@timestamp字段;所以es的字段timestamp和@timestamp值是想等的,我们删除自己匹配出来的字段timestampmutate{remove_field => ["timestamp"]}}}
# 数据输出
output {if [fields][logtype] == "testlog" { #文件来源是 testlog,对应filebeat的 logtype 字段if "_grokparsefailure" not in [tags]{ #匹配成功,存es的success-log 表elasticsearch {# hosts配置:string or arrayhosts => ["localhost:9200"]index => "success-log-%{+YYYY.MM.dd}"}} else { #匹配失败,存es的error-log 表elasticsearch {hosts => ["localhost:9200"]index => "error-log-%{+YYYY.MM.dd}"}}} #else { #当filebeat有多个日志文件来源时,根据filebeat的 logtype 字段判断要存入哪张es表#elasticsearch {#hosts => ["localhost:9200"]#index => "other-log-%{+YYYY.MM.dd}"#}#}
}

三、filebeat配置多个文件来源

filebeat.inputs:配置多个- type: log即可,然后在logstash中根据字段[fields][logtype]判断文件来源,对不同来源进行不同的操作

[ 示例 ]

# 文件来源1-START
- type: logenabled: truepaths:E:\test\log\*\[0-9][0-9]_test1.log #日志文件地址fields:logtype: testlog1multiline.pattern:  '日志切割正则'multiline.negate: truemultiline.match: after
# 文件来源1-END# 文件来源2-START
- type: logenabled: truepaths:- E:\test\log\*\??_test2.log #日志文件地址fields:logtype: testlog2multiline.pattern:  '日志切割正则'multiline.negate: truemultiline.match: after
# 文件来源2-END
  • 如果你想知道你写的文件路径是否正确,filebeat是否读取到了你的文件地址,请前往文件:filebeat-7.2.0-windows-x86\data\registry\filebeat\data.json查看

四、相关地址

  • logstash文档 - Grok 正则捕获
  • ELK logstash中grok使用if判断消息是否包含某个字符串及以某个字符开头
  • ELK logstash的grok 自带的正则匹配、自定义正则 使用
  • 如果修改了配置,需要删除es重写数据,请参考这篇:ELK filebeat或logstash修改规则之后重写记录到ElasticSearch
  • 如果你不使用filebeat,单独使用logstash,请参考这篇:ELK logstash grok匹配失败存另外的es表

ELK filebeat和logstash使用:配置单个文件来源、配置多个文件来源相关推荐

  1. ELK Stack在多项目情况下filebeat与logstash的多文件配置

    ELK Stack环境的相关搭建可以参考我的上一篇文章 这里配置中涉及到的域名在对应机器上要配置host,kafka的host 假设这里有两个项目:insurance项目,app项目 insuranc ...

  2. ELK教程3:logstash的部署、SpringBoot整合ELK+Filebeat

    本篇文章主要讲解如下安装Logstash,logstash依赖于Java环境,首先安装Java,安装脚本如下: yum install java logstash安装 Logstash的安装脚本如下: ...

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

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

  4. 最全elk7.1.1单机配置: ELK+Filebeat+Kafka!

    ELK单机配置 使用软件版本 applicationName version java 1.8 kafka 2.12-2.2.1 filbeat 7.1.1 logstash 7.1.1 elasti ...

  5. [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置

    步骤/详情 一:下载 注意的是下载版本为免安装版.下载地址: https://www.elastic.co/cn/downloads/elasticsearch 笔者由于当前用的是JDK8选择的是 7 ...

  6. ELK部署(filebeat+kafka+logstash+elasticsearch+kibana)

    部署环境 服务器名 IP 部署服务 yhcs_1 192.168.1.200 filebeat-8.6.2.kafka_2.13-3.4.0 yhcs_2 192.168.1.210 filebeat ...

  7. ELK filebeat paths 参数配置

    一.描述 二.配置 1.文件名不变 2.文件名改变 3.其他 三.文件配置 1.配置多个日志来源 2.参考文章 一.描述 位于:根目录下的filebeat.yml文件 type -> paths ...

  8. ELK+Filebeat 部署安装

    ELK+Filebeat介绍 ELK是Elasticsearch.Logstash.Kibana三大开源框架首字母大写简称(但是后期出现的filebeat(beats中的一种)可以用来替代logsta ...

  9. 企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana)

    企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana) 前言 一.ELK概述 1.ELK日志分析系统 2.ELK日志处理特点 3.Elasticsearch概述 ...

  10. CentOS 6.8下ELK+filebeat+redis 日志分析平台

    转载来源 :ELK+filebeat+redis 日志分析平台 :https://www.jianshu.com/p/bf2793e85d18 一.简介 ELK Stack是软件集合Elasticse ...

最新文章

  1. golang 追加内容到文件
  2. 【PC工具】200416最终百度网盘——最终下载方法及注意事项,代理是什么
  3. Oracle 权限介绍及管理
  4. RabbitMQ支持的消息模型
  5. firedac连接mysql,FireDAC连接数据库
  6. 使用Spring Boot和Spring Security验证JWT
  7. Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
  8. Java数据结构与算法(12) - ch06递归(回文anagram)
  9. matlab与水库调度,蛙跳算法优化水库调度,全局迭代中最优解未更新
  10. Hadoop组件启动的三种方式及配置SSH无密码登入
  11. paip.提升用户体验---免维护列表字段
  12. mysql建三行三列表格_基于另一个表中列的名称在mysql中创建表
  13. MAC 下卸载 MySQL
  14. 【一周头条盘点】中国软件网(2018.1.15~2018.1.19)
  15. 鲍威尔方法c语言程序,鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc
  16. 利用程序设置你的国庆专属头像
  17. Spring实战(第四版)
  18. 如何制订工作计划与工作目标?
  19. 边缘和轮廓检测——计算机视觉的应用
  20. Xcode7 模拟器无法联网问题

热门文章

  1. D - 迷宫游戏 (最短路径)
  2. oracle中select*的性能与全部字段查询 哪个性能好一点_性能优化技巧:TopN
  3. 全国土壤阳离子交换量CEC空间分布数据
  4. Alex and broken contest (字符串)CodeForces - 877A
  5. 计蒜客-最大子阵列 / NYOJ题目44-子串和
  6. matlab连续时间系统复频域分析,实验五连续时间信号与系统的复频域分析的MATLAB实现.doc...
  7. SpringBoot学习——springboot整合Redis实现数据缓存
  8. idea报错:Lambda expressions are not supported at language level '7'
  9. TensorBoard 使用案例
  10. Windows 10自动更新存在严重缺陷 强制升级搞坏用户硬盘!