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
posted @ 2025-06-15 13:03  huangSir-devops  阅读(57)  评论(0)    收藏  举报
作者:你的名字
出处:你的博客链接
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。