博客
关于我
logstash使用
阅读量:764 次
发布时间:2019-03-21

本文共 1720 字,大约阅读时间需要 5 分钟。

Logstash 是一个开源数据收集引擎,专注于实时数据管道功能。它能够将来自不同数据源的数据动态聚合并标准化,输出到指定目标。

使用说明

Logstash 的核心功能基于其管道结构,包括输入、过滤和输出三个主要模块。

1.1 输入配置

输入模块主要负责数据源的接收。常用输入方式包括:

  • 文件输入:通过配置指定文件路径(如访问日志)来读取数据。注意事先安装并启动Nginx,确保对应日志文件的可访问性。
  • Filebeat 插件:使用Filebeat进行文件收集(推荐使用,如果需要更强的日志管理和扩展功能),在filebeat.yml中设置输出到Logstash的配置,此处不详细展开。

1.2 过滤配置

过滤器用于对收集到的数据进行后处理。常用工具包括Grok、Regex等,供开发者根据需求定义数据格式转换规则。例如,使用Grok对Apache访问日志进行解析。

1.3 输出配置

输出模块定义数据处理后的存储目标。常见场景:

  • 标准输出(如示例所示):适用于简单的命令行执行。
  • Elasticsearch:将处理后的数据存储至Elasticsearch实例。需确保Elasticsearch服务已启动,配置中需设定对应的端口和索引名称(如logstash-%{+YYYY.MM.dd})。

命令行使用示例

通过命令行执行Logstash处理功能:

  • 在Logstash所在路径的\bin文件夹打开命令提示符。
  • 使用以下命令启动Logstash:
    logstash -e "input { stdin { } } output { stdout { codec => rubydebug } }"
  • 输入数据(如"Hello Tom"),Logstash会输出解析后的日志信息。
  • 配置文件使用方法

    创建或定位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/

    你可能感兴趣的文章
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>