File输出插件
- 插件版本:v4.2.5
- 发布于:2018-06-28
- 更新日志
其他版本,请参阅版本化的插件文档。
获取帮助
有关插件的问题,请在讨论论坛中打开一个主题,对于bug或特性请求,在Github中打开一个issue,关于Elastic支持的插件列表,请考虑Elastic支持矩阵。
描述
该输出将事件写入磁盘上的文件,你可以使用事件中的字段作为文件名和/或路径的一部分。
默认情况下,该输出以json格式为每行写入一个事件,你可以使用类似的line
编解码器定制行格式:
output {
file {
path => ...
codec => line { format => "custom format: %{message}"}
}
}
File输出配置选项
这个插件支持以下配置选项以及后面描述的通用选项。
设置 | 输入类型 | 要求 |
---|---|---|
create_if_deleted |
boolean | No |
dir_mode |
number | No |
file_mode |
number | No |
filename_failure |
string | No |
flush_interval |
number | No |
gzip |
boolean | No |
path |
string | Yes |
write_behavior |
string | No |
还可以查看所有输出插件支持的通用选项列表。
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
,文件将在写入之前被截断,并且只有最近的事件才会出现在文件中。
通用选项
所有输出插件都支持以下配置选项:
设置 | 输入类型 | 要求 |
---|---|---|
codec |
codec | No |
enable_metric |
boolean | No |
id |
string | No |
codec
- 值类型为codec
- 默认值为
"json_lines"
- 用于输出数据的编解码器,输出编解码器是一种方便的方法,可以在数据离开输出之前对其进行编码,而不需要在你的Logstash管道中使用单独的过滤器。
enable_metric
- 值类型为boolean
- 默认值为
true
- 为这个特定的插件实例禁用或启用指标日志记录,默认情况下,我们记录了所有我们可以记录的指标,但是你可以禁用特定插件的指标集合。
id
- 值类型为string
- 此设置没有默认值
-
在插件配置中添加唯一的
ID
,如果没有指定ID,则Logstash将生成一个,强烈建议在配置中设置此ID,当你有两个或多个相同类型的插件时,这一点特别有用。例如,如果你有两个电子邮件输出,在本例中添加一个命名ID将有助于在使用监控API时监控Logstash。output { file { id => "my_plugin_id" } }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。