Logstash 基础

Logstash 插件

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/logstash-input.html

Logstash input 配置


Logstash 作为一个数据管道中间件,支持对各种类型数据的采集与转换,并将数据发送到各种类型的存储库,比如,实现消费 Kafka 数据并且写入到 Elasticsearch,日志文件同步到对象存储 S3 等,MySQL 数据同步到 Elasticsearch 等。

Logstash 的 input 是从数据源获取数据的模块。

读取文件(File)

Logstash 使用一个名叫 FileWatch 的 Ruby Gem 库来监听文件变化。这个库支持 glob 展开文件路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 Logstash 会漏过你的数据。

sincedb 文件中记录了每个被监听的文件的 inodemajor numberminor numberpos

File 配置示例

input
    file {
        path => ["/var/logs/*.log", "/var/logs/message"]
        type => "system"
        start_position => "beginning"
    }
}

File 配置解释

有一些比较有用的配置项,可以用来指定 FileWatch 库的行为:

  • discover_interval

    logstash 每隔多久去检查一次被监听的 path 下是否有新文件。默认值是15秒。

  • exclude

    不想被监听的文件可以排除出去,这里跟 path 一样支持 glob 展开。

  • sincedb_path

    如果你不想用默认的 $HOME/.sincedb(Windows 平台上在 C:\Windows\System32\config\systemprofile\.sincedb),可以通过这个配置定义 sincedb 文件到其他位置。

  • sincedb_write_interval

    logstash 每隔多久写一次 sincedb 文件,默认是15秒。

  • stat_interval

    logstash 每隔多久检查一次被监听文件状态(是否有更新),默认是1秒。

  • start_position

    logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。如果你是要导入原有数据,把这个设定改成 "beginning",logstash 进程就从头开始读取,有点类似 cat,但是读到最后一行不会终止,而是继续变成 tail -F

  1. 通常你要导入原有数据进 Elasticsearch 的话,你还需要  filter/date 插件来修改默认的"@timestamp" 字段值。稍后会学习这方面的知识。
  2. FileWatch 只支持文件的绝对路径,而且会不自动递归目录。所以有需要的话,请用数组方式都写明具体哪些文件。
  3. LogStash::Inputs::File 只是在进程运行的注册阶段初始化一个 FileWatch 对象。所以它不能支持类似 fluentd 那样的 path => "/path/to/%{+yyyy/MM/dd/hh}.log" 写法。达到相同目的,你只能写成 path => "/path/to/*/*/*/*.log"
  4. start_position 仅在该文件从未被监听过的时候起作用。如果 sincedb 文件中已经有这个文件的 inode 记录了,那么 logstash 依然会从记录过的 pos 开始读取数据。所以重复测试的时候每回需要删除 sincedb 文件。
  5. 因为 windows 平台上没有 inode 的概念,Logstash 某些版本在 windows 平台上监听文件不是很靠谱。windows 平台上,推荐考虑使用 nxlog 作为收集端。
Logstash 项目诞生于2009年8月2日。其作者是世界著名的运维工程师 Jordan Sissel,他当时是著名虚拟主机托管商 Dre ...
Lombok是一个Java库,它可以通过注解来简化Java代码的编写,减少样板代码的数量。gradle`文件中:步骤2:安装Lombok插件 ...
Logback 在引入相关的 jar 包后,配置相应的 logback 配置文件即可。 ...
安装和配置Elasticsearch可以分为以下几个步骤:下载Elasticsearch、安装Java、配置Elasticsearch、启动 ...
函数语法input([prompt])参数:prompt(可选):这是一个可选参数,表示要显示给用户的提示信息。如果省略了prompt参数, ...