了解elastic stack中主要组件的职责,掌握如何使完成提取log和搜索log。
beats是轻量型数据采集器,集合了多种单一用途的采集器,向elasticSearch或logstash发送采集的数据。
beats 支持哪些采集器呢?
采集器名称 | 作用 |
filebeat | 日志采集器。安装在服务器端且作为agent,监控log文件,收集log,发送给es或logstash等。 |
metricbeat | 指标采集器。 |
packetbeat | 网络数据采集器。 |
heartbeat | 心跳数据采集器。 |
…… |
采集log数据,需要使用filebeat。所以接下来主要介绍filebeat。
Filebeat Reference [7.15] | Elastic.htmlfilebeat主要涉及两个组件:input与harvester。
input | 负责管理采集器和查找需要读取的所有资源 |
harvester 采集器 | 一个采集器只负责读取一个文件的内容,一行一行的读,发送给output。只要采集器正在运行,则文件描述符一直保持打开状态。 |
filebeat需要记录文件状态吗?
filebeat会记录每个被采集文件的状态并且经常写入到磁盘中(位于filebeat路径/data/registry)。
用于记录最后读取行的offset和确保发送所有行。当output不可用时,filebeat跟踪已发送的最后一行offset,output可用后,继续读取文件并发送。
由于文件可以被移动和重命名,所以文件名和路径不足以唯一标识文件。filebeat会记录一个唯一标识,以判断文件之前是否被采集过。
input 支持哪些信息来源类型呢?
log | 读文件。支持多行。 |
filestream | 读文件。不支持多行。 |
kafka | |
redis | |
…… |
output 支持哪些目标类型呢?
elasticsearch |
logstash |
…… |
服务器端数据处理管道,从多个来源采集数据,转换数据,将数据发送到目的地,如数据库。
数据管道,指定数据从哪里来,数据如何处理,数据去哪里。支持多种类型的input、filter、output。
input | beats | 接受由beats发送的数据 |
filter | grok | 对文本进行解析与结构化。 |
output | elasticsearch |
logstash 有两类配置文件:pipeline配置和setting配置。
pipeline配置,每个conf文件对应一个管道的input-filter-output配置,例如f。
setting配置,控制启动与执行。
管道配置修改后,支持自动加载吗?
当管道配置变更后,logstash会自动重新加载配置。
logstash意识到config变更,则终止该管道的所有input,然后尝试使用新的config创建新的管道。首先验证config中的语法,然后验证所有input和output可以使用。如果验证都ok,则用新管道替换旧的。若验证不通过,则旧的管道继续使用,并且在console输出error。
配置重加载的过程,发生在同一个jvm,即同一个进程。
elasticSearch介绍与使用_陈海龙的格物之路-CSDN博客首先一起了解elasticSearch,然后结合springData,看看如何使用elasticSearch。
kibana对es数据进行可视化,提供了丰富的用户界面。
filebeat
filebeat.inputs:- type: logenabled: truepaths:- D:logslogstash-tutorial-dataset#- /var/log/*.log#- c:programdataelasticsearchlogs*#处理多行,由于filesystem不支持多行,所以选择pe: patternmultiline.pattern: '^[[:space:]]+(at|.{3})[[:space:]]+b|^Caused by:ate: falsemultiline.match: after……output.logstash:hosts: ["localhost:5044"]……
logstash
在config/目录,新增管道配置文件。
input {beats {port => "5044"}
}
filter {grok {# 需要根据实际log,编写正则match => { "message" => "%{COMBINEDAPACHELOG}"}}geoip {source => "clientip"}
}
output {# console输出#stdout { codec => rubydebug }elasticsearch {hosts => [ "localhost:9200" ]index => "logstash-mul-log"}
}
启动指令
logstash -f ../config/l --load.automatic
elasticSearch
安装时指定的config路径/l,例如修改或确认端口。
kibana
截至到此,以上4个组件都启动后,应已开始log的采集了。接下来需要在kibana界面做些配置,以达到log搜索的目标。
前往菜单management->stack management->index management
查看indics列表,logstash发送数据后,indics列表中可以看到index名称,具体名称要看logstash管道文件的配置,如上文logstash-mul-log。
查看index template,可以在Legacy index templates中看到logstash。
前往菜单management->stack management->Index Lifecycle Policies
编辑 logstash-policy,如自动删除多久前数据。
前往菜单management->stack management->Index patterns
新建Index patterns,要求与index template可以匹配。
前往菜单discover
选择感兴趣的index pattern,通过add filter 添加筛选条件,可以添加多个filter,彼此是and关系。
至此,可以对log进行搜索了。
在上述过程中,我认为有如下几个需要注意的位置:
本文发布于:2024-01-29 03:12:55,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170646917612286.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |