LogStash管道配置文件结构详解
概述
参考文档:https://www.elastic.co/guide/en/logstash/7.17/configuration-file-structure.html#list
LogStash 是 Elastic Stack 中的数据处理引擎,用于收集、处理和转发日志数据。其配置文件是驱动 LogStash 工作的核心。
配置文件基本结构
LogStash 配置文件采用简洁的 DSL(领域特定语言),主要由三大核心区块组成:
- input:定义数据来源
- filter:定义数据处理逻辑(可选)
- output:定义数据输出目标
# 这是注释,input定义数据来源
input {
...
}
# filter:定义数据处理逻辑(可选)
filter {
...
}
# output:定义数据输出目标
output {
...
}
配置文件语法规则:
- 每行以key => value格式定义配置项
- 使用#添加注释
- 区块通过缩进或{}包裹(推荐使用{})
示例
插件配置:下面输入部分配置了两个文件输入
input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/apache/access.log"
type => "apache"
}
}
值类型设置
插件可以要求设置的值必须是特定类型,例如布尔值、列表或哈希值。支持以下值类型。
- List
它本身不是一种类型,而是一种属性类型
path => [ "/var/log/messages", "/var/log/*.log" ]
uris => [ "http://elastic.co", "http://example.net" ]
- Boolean
布尔值必须是true或false
ssl_enable => true
- Bytes
字节字段是一个字符串字段,表示有效的字节单位。它方便在插件选项中声明具体的大小。支持国际单位制 (SI) 和二进制 (Binary) 单位。二进制单位以 1024 为基数,国际单位制单位以 1000 为基数。此字段不区分大小写,并且允许在值和单位之间使用空格。如果未指定单位,则整数字符串表示字节数
my_bytes => "1113" # 1113 bytes
my_bytes => "10MiB" # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytes
- Codec
编解码器是用于表示数据的 Logstash 编解码器的名称。编解码器可用于输入和输出。
输入编解码器提供了一种便捷的方式,可以在数据进入输入之前对其进行解码。输出编解码器提供了一种便捷的方式,可以在数据离开输出之前对其进行编码。使用输入或输出编解码器,无需在 Logstash 管道中单独添加过滤器。
codec => "json"
- Hash
哈希是按格式指定的键值对的集合"field1" => "value1"。请注意,多个键值条目用空格而不是逗号分隔。
match => {
"field1" => "value1"
"field2" => "value2"
...
}
# 也可以写成一行
match => { "field1" => "value1" "field2" => "value2" }
- Number
数字必须是有效的数值(浮点数或整数)。
port => 33
本文来自博客园,作者:huangSir-devops,转载请注明原文链接:https://www.cnblogs.com/huangSir-devops/p/18929387,微信Vac666666,欢迎交流

浙公网安备 33010602011771号