ELK filebeat和logstash使用:配置单个文件来源、配置多个文件来源
- 一、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、在
logstash
中input
(输入)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使用:配置单个文件来源、配置多个文件来源相关推荐
- ELK Stack在多项目情况下filebeat与logstash的多文件配置
ELK Stack环境的相关搭建可以参考我的上一篇文章 这里配置中涉及到的域名在对应机器上要配置host,kafka的host 假设这里有两个项目:insurance项目,app项目 insuranc ...
- ELK教程3:logstash的部署、SpringBoot整合ELK+Filebeat
本篇文章主要讲解如下安装Logstash,logstash依赖于Java环境,首先安装Java,安装脚本如下: yum install java logstash安装 Logstash的安装脚本如下: ...
- 搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch
文章目录 一.前置准备 1. 部署总览 2. 技术选型 3. 全局配置 4. 软件下载 5. 操作声明 二.jdk安装 2.1. 上传 2.2. 解压 2.3. 设置环境变量 三.zk集群 3.1. ...
- 最全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 ...
- [基础服务-windows] [ELK] ElasticSearch + Kibana + Logstash 以及插件安装和配置
步骤/详情 一:下载 注意的是下载版本为免安装版.下载地址: https://www.elastic.co/cn/downloads/elasticsearch 笔者由于当前用的是JDK8选择的是 7 ...
- 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 ...
- ELK filebeat paths 参数配置
一.描述 二.配置 1.文件名不变 2.文件名改变 3.其他 三.文件配置 1.配置多个日志来源 2.参考文章 一.描述 位于:根目录下的filebeat.yml文件 type -> paths ...
- ELK+Filebeat 部署安装
ELK+Filebeat介绍 ELK是Elasticsearch.Logstash.Kibana三大开源框架首字母大写简称(但是后期出现的filebeat(beats中的一种)可以用来替代logsta ...
- 企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana)
企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana) 前言 一.ELK概述 1.ELK日志分析系统 2.ELK日志处理特点 3.Elasticsearch概述 ...
- CentOS 6.8下ELK+filebeat+redis 日志分析平台
转载来源 :ELK+filebeat+redis 日志分析平台 :https://www.jianshu.com/p/bf2793e85d18 一.简介 ELK Stack是软件集合Elasticse ...
最新文章
- golang 追加内容到文件
- 【PC工具】200416最终百度网盘——最终下载方法及注意事项,代理是什么
- Oracle 权限介绍及管理
- RabbitMQ支持的消息模型
- firedac连接mysql,FireDAC连接数据库
- 使用Spring Boot和Spring Security验证JWT
- Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
- Java数据结构与算法(12) - ch06递归(回文anagram)
- matlab与水库调度,蛙跳算法优化水库调度,全局迭代中最优解未更新
- Hadoop组件启动的三种方式及配置SSH无密码登入
- paip.提升用户体验---免维护列表字段
- mysql建三行三列表格_基于另一个表中列的名称在mysql中创建表
- MAC 下卸载 MySQL
- 【一周头条盘点】中国软件网(2018.1.15~2018.1.19)
- 鲍威尔方法c语言程序,鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc
- 利用程序设置你的国庆专属头像
- Spring实战(第四版)
- 如何制订工作计划与工作目标?
- 边缘和轮廓检测——计算机视觉的应用
- Xcode7 模拟器无法联网问题
热门文章
- D - 迷宫游戏 (最短路径)
- oracle中select*的性能与全部字段查询 哪个性能好一点_性能优化技巧:TopN
- 全国土壤阳离子交换量CEC空间分布数据
- Alex and broken contest (字符串)CodeForces - 877A
- 计蒜客-最大子阵列 / NYOJ题目44-子串和
- matlab连续时间系统复频域分析,实验五连续时间信号与系统的复频域分析的MATLAB实现.doc...
- SpringBoot学习——springboot整合Redis实现数据缓存
- idea报错:Lambda expressions are not supported at language level '7'
- TensorBoard 使用案例
- Windows 10自动更新存在严重缺陷 强制升级搞坏用户硬盘!