Logstash配置详解(不断更新)

1. Input Plugin

1.1 从文件输入

从文件读取数据,如常见的日志文件。文件读取通常要解决几个问题:

No. 问题 解决办法
1 文件内容如何只被读取一次?即重启Logstash时,从上次读取的位置继续 sincedb
2 如何即时读取到文件的新内容 定时检查文件是否有更新
3 如何发现新文件并进行读取 定时检查是否有新文件生成
4 如何文件发生了归档(rotation)操作,是否影响当前的内容读取 不影响,被归档的文件内容可以继续被读取

1.1.1 logstash-input-file配置

配置:

配置项 说明
path 数组类型,用于知名读取的文件路径,基于glob匹配语法。
exclude 数组类型,排除不想监听的文件规则,基于glob匹配语法
sincedb_path 字符串类型,记录sinceddb文件路径,默认路径是当前用户的home文件夹
start_position 字符串类型,可以配置为beginning/end,是否从头读取文件
stat_interval 数值类型,单位为秒,定时检查文件是否有更新,默认是1秒
discover_interval 数值类型,单位为秒,定时检查是否有新文件待读取,默认是15秒
ignore_older 数值类型,单位为秒,扫描文件列表时,如果该文件上次更改时间超过设定的时长,则不做处理,但依然会监控是否有新内容,默认关闭
close_older 数值类型,单位为秒,如果监听的文件在超过该设定时间内没有新内容,会被关闭文件句柄,释放资源,但依然会监控是否有新内容,默认3600秒,即1小时

1.1.2 path

例如:

  • /var/log/*.log:匹配/var/log目录下以.log结尾的所有文件
  • /var/log/**/*.log:匹配/var/log所有子目录下以.log结尾的文件
  • /var/log/{app1,app2,app3}/*.log:匹配/var/log目录下app1app2app3子目录中以.log结尾的文件

1.1.3 sincedb

通过logstash-input-file插件导入了一些本地日志文件时,logstash会通过一个名为sincedb的独立文件中来跟踪记录每个文件中的当前位置。这使得停止和重新启动Logstash成为可能,并让它在不丢失在停止Logstashwas时添加到文件中的行数的情况下继续运行。sincedb默认保存在当前用户的Home目录下。

在调试的时候,我们可能希望取消sincedb的记录功能,使文件每次都能从头开始读取。此时,我们可以这样来做:

input {
   
   
    file {
   
   
        path => ["文件路径"]
        start_position => "beginning"
        sincedb_path => "/dev/null"
    }
}

1.2 从HTTP输入

input {
   
   
  http {
   
   
    port => 端口号
  }
}

1.3 从TCP输入

input {
   
   
  tcp {
   
   
    mode => "server"
    host => "0.0.0.0"
    port => 端口号
    codec =<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值