本文共 1720 字,大约阅读时间需要 5 分钟。
Logstash 是一个开源数据收集引擎,专注于实时数据管道功能。它能够将来自不同数据源的数据动态聚合并标准化,输出到指定目标。
Logstash 的核心功能基于其管道结构,包括输入、过滤和输出三个主要模块。
输入模块主要负责数据源的接收。常用输入方式包括:
filebeat.yml
中设置输出到Logstash的配置,此处不详细展开。过滤器用于对收集到的数据进行后处理。常用工具包括Grok、Regex等,供开发者根据需求定义数据格式转换规则。例如,使用Grok对Apache访问日志进行解析。
输出模块定义数据处理后的存储目标。常见场景:
logstash-%{+YYYY.MM.dd}
)。通过命令行执行Logstash处理功能:
logstash -e "input { stdin { } } output { stdout { codec => rubydebug } }"
创建或定位Logstash配置文件(路径可根据系统调整):
config/logstash.conf
文件。input { file { path => ["D:\nginx\nginx-1.16.1\logs\access.log"] type => "nginx_access" start_position => "beginning" } beats { port => "5044" }}filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }}output { stdout { codec => "rubydebug" } elasticsearch { hosts => ["localhost:9200"] index => "logstash-%{+YYYY.MM.dd}" }}
3.启动Logstash:
logstash -f config/logstash.conf --config.test_and_exit --config.reload.automatic
使用参数:
-f
:指定配置文件或目录。--config.test_and_exit
:在配置文件解析前进行验证。--config.reload.automatic
:启动后自动重载配置。运行完成后,Logstash会实时接收并处理访问日志,并将结果输出至命令窗口和Elasticsearch。
Logstash处理示例输入,显示输出到命令窗口和Elasticsearch的结果。命令窗口结果:
{ "@timestamp" => "2020-11-07T05:44:03.379Z", "message" => "Hello Tom\r", "host" => "LAPTOP-7PMRBJTK", "@version" => "1"}
Elasticsearch中数据将按日期索引存储,易于日后检索和分析。
转载地址:http://ohsgz.baihongyu.com/