Logstash 参考指南(File输出插件)

File输出插件

其他版本,请参阅版本化的插件文档

获取帮助

有关插件的问题,请在讨论论坛中打开一个主题,对于bug或特性请求,在Github中打开一个issue,关于Elastic支持的插件列表,请考虑Elastic支持矩阵

描述

该输出将事件写入磁盘上的文件,你可以使用事件中的字段作为文件名和/或路径的一部分。

默认情况下,该输出以json格式为每行写入一个事件,你可以使用类似的line编解码器定制行格式:

output {
 file {
   path => ...
   codec => line { format => "custom format: %{message}"}
 }
}

File输出配置选项

这个插件支持以下配置选项以及后面描述的通用选项。

设置输入类型要求
create_if_deletedbooleanNo
dir_modenumberNo
file_modenumberNo
filename_failurestringNo
flush_intervalnumberNo
gzipbooleanNo
pathstringYes
write_behaviorstringNo

还可以查看所有输出插件支持的通用选项列表。

create_if_deleted

  • 值类型为boolean
  • 默认值为true
  • 如果已配置的文件被删除,但是插件处理了一个事件,插件将重新创建该文件,Default ⇒ true。

dir_mode

  • 值类型为number
  • 默认值为-1
  • 要使用的目录访问模式,注意,由于jruby系统中的bug,linux上忽略了umask:https://github.com/jruby/jruby/issues/3426,将其设置为-1使用默认OS值,示例:“dir_mode”=> 0750

file_mode

  • 值类型为number
  • 默认值为-1
  • 要使用的文件访问模式,注意,由于jruby系统中的bug,linux上忽略了umask:https://github.com/jruby/jruby/issues/3426,将其设置为-1使用默认OS值,示例:"file_mode" => 0640

filename_failure

  • 值类型为string
  • 默认值为"_filepath_failures"
  • 如果生成的路径无效,事件将被保存到这个文件中并且在定义的路径中。

flush_interval

  • 值类型为number
  • 默认值为2
  • 刷新写入日志文件的刷新间隔(以秒为单位),0将刷新每个消息。

gzip

  • 值类型为boolean
  • 默认值为false
  • 在写入磁盘之前,Gzip输出流。

path

  • 这是必需的设置
  • 值类型为string
  • 此设置没有默认值
  • 要写入的文件的路径,这里可以使用事件字段,像/var/log/logstash/%{host}/%{application},还可以使用path选项通过joda时间格式进行基于日期的日志循环,这将使用事件时间戳,如:path => "./test-%{+YYYY-MM-dd}.txt"来创建./test-2013-05-29.txt
  • 如果使用绝对路径,则不能从动态字符串开始,如:/%{myfield}//test-%{myfield}/不是有效路径。

write_behavior

  • 值类型为string
  • 默认值为append
  • 如果append,文件将被打开以追加并且每个新事件将被写入文件的末尾,如果overwrite,文件将在写入之前被截断,并且只有最近的事件才会出现在文件中。

通用选项

所有输出插件都支持以下配置选项:

设置输入类型要求
codeccodecNo
enable_metricbooleanNo
idstringNo

codec

  • 值类型为codec
  • 默认值为"json_lines"
  • 用于输出数据的编解码器,输出编解码器是一种方便的方法,可以在数据离开输出之前对其进行编码,而不需要在你的Logstash管道中使用单独的过滤器。

enable_metric

  • 值类型为boolean
  • 默认值为true
  • 为这个特定的插件实例禁用或启用指标日志记录,默认情况下,我们记录了所有我们可以记录的指标,但是你可以禁用特定插件的指标集合。

id

  • 值类型为string
  • 此设置没有默认值
  • 在插件配置中添加唯一的id,如果没有指定ID,则Logstash将生成一个,强烈建议在配置中设置此ID,当你有两个或多个相同类型的插件时,这一点特别有用。例如,如果你有两个电子邮件输出,在本例中添加一个命名ID将有助于在使用监控API时监控Logstash。

    output {
      file {
        id => "my_plugin_id"
      }
    }

相关推荐