更新时间:2026-04-30 GMT+08:00

配置文件模板参考

在构建实时日志处理或大数据迁移流水线时,手动编写复杂的Logstash配置文件不仅耗时,还容易因语法错误导致数据丢失。CSS服务为Logstash集群预置了针对Redis、Elasticsearch、MySQL (JDBC) 、Kafka等主流数据源的配置模板。通过这些经过验证的模板,您只需填入必要的连接信息,即可快速打通从数据源到CSS Elasticsearch或OpenSearch的自动化传输路径,显著降低运维成本。

系统模板介绍

表1 Logstash配置文件的系统模板

系统模板名称

描述

相关说明

redis

从Redis数据库导入数据到Elasticsearch/OpenSearch。

redis模板说明

elasticsearch

从Elasticsearch/OpenSearch集群导入数据到Elasticsearch/OpenSearch。

elasticsearch模板说明

jdbc

从JDBC驱动的MySQL/MariaDB数据库导入数据到Elasticsearch/OpenSearch。

jdbc模板说明

kafka

从Kafka导入数据到Elasticsearch/OpenSearch。

kafka模板说明

beats

从Beats导入数据到Elasticsearch/OpenSearch。

beats模板说明

redis模板说明

从Redis数据库导入数据到Elasticsearch/OpenSearch。

# logstash-input-redis
input {
    redis {
        # Redis数据类型
        data_type => "pattern_channel"
        # Redis列表或通道的名称
        key => "lgs-*"
        host => "xxx.xxx.xxx.xxx"
        port => 6379
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

# logstash-output-elasticsearch
output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引名称
        index => "xxx"
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 目的端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # cacert => "/opt/logstash/extend/certs"    # 用于认证目的端集群的CA证书文件路径
        # ssl_certificate_verification => false     # 目的端集群是否启用安全证书认证
    }
}
表2 配置项说明

配置项

是否必填

说明

logstash-input-redis

data_type

Redis数据类型。

取值范围:

  • list:使用Redis列表(队列)模式,通过BLPOP消费数据。
  • channel:使用发布/订阅模式,通过SUBSCRIBE订阅频道。
  • pattern_channel:使用模糊匹配发布/订阅模式,通过PSUBSCRIBE订阅。

key

Redis列表或通道的名称。

  • 单个名称:直接输入通道名称(如“log”)。
  • 通配符:支持通配符 *(匹配任意字符),如“log-*”表示匹配所有以log-开头的通道。

host

Redis服务器的访问地址。

输入IP地址或域名。

port

Redis服务器监听端口。

logstash-output-elasticsearch

hosts

目的端集群的节点访问地址。支持配置多个IP地址。

取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

事件写入的索引名称,即指定数据写入到哪个索引。

  • 单个索引:直接输入单个索引名称(如“my_index”)。
  • 多个索引:基于字段的动态命名或多个条件输出块来匹配多个索引。

user

访问目的端集群的用户名。

安全模式的集群必填。

password

访问目的端集群的用户名对应的密码。

安全模式的集群必填。

ssl

目的端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

cacert

用于认证目的端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当目的端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当目的端集群是自建或第三方Elasticsearch或OpenSearch时,则将目的端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

ssl_certificate_verification

目的端集群是否启用安全证书认证。

取值范围:

  • true(默认值):使用安全证书认证目的端集群。
  • false:忽略安全证书认证。

更多参数说明请参见Logstash官方文档Redis input pluginElasticsearch output plugin

elasticsearch模板说明

从Elasticsearch/OpenSearch集群导入数据到Elasticsearch/OpenSearch。

# logstash-input-elasticsearch
input {
    elasticsearch {
        # 源端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 待迁移的源索引名称
        index => "xxx,xxx"
        docinfo => true
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 源端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # ca_file => "/opt/logstash/extend/certs"     # 用于认证源端集群的CA证书文件路径
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

# logstash-output-elasticsearch
output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引配置,以下配置表示保留源数据的索引名称、文档类型和文档id
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 目的端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # cacert => "/opt/logstash/extend/certs"       # 用于认证目的端集群的CA证书文件路径
        # ssl_certificate_verification => false        # 目的端集群是否启用安全证书认证
    }
}
表3 配置项说明

配置项

是否必填

说明

logstash-input-elasticsearch

hosts

源端集群的节点访问地址。支持配置多个IP地址。

取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

待迁移的源索引名称。

  • 单个索引:直接输入索引名称(如“my_index”)。
  • 多个索引:用英文逗号分隔多个索引(如“my_index1,my_index2”)。
  • 通配符:支持通配符 *(匹配任意字符),如“myindex*”表示匹配所有以myindex开头的索引。

docinfo

是否保留源文档的元数据信息。

取值范围:

  • true:会将元数据提取到事件的@metadata字段中。
  • false(默认值):只提取文档的_source内容。

user

访问源端集群的用户名。

安全模式的集群必填。

password

访问源端集群的用户名对应的密码。

安全模式的集群必填。

ssl

源端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

ca_file

用于认证源端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当源端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当源端集群是自建或第三方Elasticsearch或OpenSearch时,则将源端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

logstash-output-elasticsearch

hosts

目的端集群的节点访问地址。支持配置多个IP地址。

取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

事件写入的索引名称,即指定数据写入到哪个索引。

  • 单个索引:直接输入单个索引名称(如“my_index”)。
  • 多个索引:基于字段的动态命名或多个条件输出块来匹配多个索引。

document_type

事件写入的文档类型。

建议将相似的事件写入同一类型中。

document_id

事件写入的文档ID。

如果指定了相同ID,则历史数据会被覆盖。

在数据迁移场景中建议配置本参数,避免数据重复。

user

访问目的端集群的用户名。

安全模式的集群必填。

password

访问目的端集群的用户名对应的密码。

安全模式的集群必填。

ssl

目的端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

cacert

用于认证目的端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当目的端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当目的端集群是自建或第三方Elasticsearch或OpenSearch时,则将目的端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

ssl_certificate_verification

目的端集群是否启用安全证书认证。

取值范围:

  • true(默认值):使用安全证书认证目的端集群。
  • false:忽略安全证书认证。

更多参数说明请参见Logstash官方文档Elasticsearch input pluginElasticsearch output plugin

jdbc模板说明

从JDBC驱动的MySQL/MariaDB数据库导入数据到Elasticsearch/OpenSearch。

# logstash-input-jdbc
input {
    jdbc {
        # JDBC驱动包路径
        jdbc_driver_library => "/opt/logstash/extend/jars/mariadb-java-client-2.7.0.jar"
        jdbc_driver_class => "org.mariadb.jdbc.Driver"
        jdbc_connection_string => "jdbc:mariadb://xxx.xxx.xxx.xxx:xxx/database_name"
        jdbc_user => "xxx"
        jdbc_password => "xxx"
        # SQL查询语句,用于确定同步的数据范围
        statement => "select * from table_name"
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

# logstash-output-elasticsearch
output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引名称
        index => "xxx"
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 目的端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # cacert => "/opt/logstash/extend/certs"       # 用于认证目的端集群的CA证书文件路径
        # ssl_certificate_verification => false        # 目的端集群是否启用安全证书认证
    }
}
表4 配置项说明

配置项

是否必填

说明

logstash-input-jdbc

jdbc_driver_library

JDBC驱动包路径。

CSS服务的Logstash集群已预置MariaDB驱动和MySQL驱动。

取值格式:<默认证书路径>jars/<驱动名称>(如/opt/logstash/extend/jars/mariadb-java-client-2.7.0.jar)

  • 默认证书路径获取方式请参见查看默认证书
  • 驱动名称的取值范围:
    • MariaDB驱动:“mariadb-java-client-2.7.0.jar”“mariadb-java-client-2.4.0.jar”
    • MySQL驱动(仅镜像版本不低于x.x.x_26.1.0_xxx的Logstash集群支持):“mysql-connector-j-9.4.0.jar”“mysql-connector-java-8.0.16.jar”“mysql-connector-java-8.0.30.jar”

jdbc_driver_class

驱动类名。

  • 如果使用的是MariaDB驱动,则驱动类名配置为“org.mariadb.jdbc.Driver”
  • 如果使用的是MySQL驱动,则驱动类名配置为“com.mysql.cj.jdbc.Driver”

jdbc_connection_string

数据库连接字符串。

  • 如果使用的是MariaDB驱动,则取值格式为“jdbc:mariadb://<数据库访问地址>:<监听端口>/<数据库名称>”
  • 如果使用的是MySQL驱动,则取值格式为“jdbc:mysql://<数据库访问地址>:<监听端口>/<数据库名称>”

jdbc_user

访问数据库的用户名。

jdbc_password

用户名对应的密码。

statement

SQL查询语句,用于确定同步的数据范围。

logstash-output-elasticsearch

hosts

目的端集群的节点访问地址。支持配置多个IP地址。

取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

事件写入的索引名称,即指定数据写入到哪个索引。

  • 单个索引:直接输入单个索引名称(如“my_index”)。
  • 多个索引:基于字段的动态命名或多个条件输出块来匹配多个索引。

user

访问目的端集群的用户名。

安全模式的集群必填。

password

访问目的端集群的用户名对应的密码。

安全模式的集群必填。

ssl

目的端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

cacert

用于认证目的端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当目的端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当目的端集群是自建或第三方Elasticsearch或OpenSearch时,则将目的端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

ssl_certificate_verification

目的端集群是否启用安全证书认证。

取值范围:

  • true(默认值):使用安全证书认证目的端集群。
  • false:忽略安全证书认证。

更多参数说明请参见Logstash官方文档Jdbc input pluginElasticsearch output plugin

kafka模板说明

从Kafka导入数据到Elasticsearch/OpenSearch。

# logstash-input-kafka
input {
    kafka {
        # Kafka实例的访问地址
        bootstrap_servers => "xxx.xxx.xxx.xxx:xxx"
        # 订阅的Kafka Topic名称
        topics => ["xxx"]
        # 消费者组ID,用于记录消费位点
        group_id => "kafka_es_test"
        # 偏移量重置策略
        auto_offset_reset => "earliest"
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

# logstash-output-elasticsearch
output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引名称
        index => "xxx"
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 目的端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # cacert => "/opt/logstash/extend/certs"       # 用于认证目的端集群的CA证书文件路径
        # ssl_certificate_verification => false        # 目的端集群是否启用安全证书认证
    }
}
表5 配置项说明

配置项

是否必填

说明

logstash-input-kafka

bootstrap_servers

Kafka实例的访问地址。支持配置多个实例地址。

取值格式:"<Kafka实例的IP地址1>:<端口号>, <Kafka实例的IP地址2>:<端口号>"

topics

订阅的Kafka Topic名称。

  • 单个名称:直接输入单个Topic名称(如[“log”])。
  • 多个名称:用英文逗号分隔多个Topic名称(如[“log1”,“log2”])。

group_id

消费者组ID,用于记录消费位点。

auto_offset_reset

偏移量重置策略。

取值范围:

  • earliest:将偏移量自动重置为最早的偏移量。
  • latest:自动将偏移量重置为最新偏移量。
  • none:如果未找到消费者组的先前偏移量,则向消费者抛出异常。
  • anything else:向消费者抛出异常。

logstash-output-elasticsearch

hosts

目的端集群的节点访问地址。支持配置多个IP地址。

支持配置多个节点访问地址,取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

事件写入的索引名称,即指定数据写入到哪个索引。

  • 单个索引:直接输入单个索引名称(如“my_index”)。
  • 多个索引:基于字段的动态命名或多个条件输出块来匹配多个索引。

user

访问目的端集群的用户名。

安全模式的集群必填。

password

访问目的端集群的用户名对应的密码。

安全模式的集群必填。

ssl

目的端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

cacert

用于认证目的端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当目的端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当目的端集群是自建或第三方Elasticsearch或OpenSearch时,则将目的端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

ssl_certificate_verification

目的端集群是否启用安全证书认证。

取值范围:

  • true(默认值):使用安全证书认证目的端集群。
  • false:忽略安全证书认证。

更多参数说明请参见Logstash官方文档Kafka input pluginElasticsearch output plugin

beats模板说明

从Beats导入数据到Elasticsearch/OpenSearch。
# logstash-input-beats
input {
    beats {
        # Logstash监听端口,用于接收Filebeat/Metricbeat发来的数据
        port => 5044
    }
}

filter {
    # 移除一些Logstash事件添加的元数据字段
    mutate {
        remove_field => ["@timestamp", "@version"]
    }
}

# logstash-output-elasticsearch
output {
    elasticsearch {
        # 目的端集群的节点访问地址,无需添加协议
        hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
        # 事件写入的索引名称
        index => "xxx"
        # 安全集群必配 (非安全集群请删除以下配置)
        # user => "xxx"           # 访问集群的用户名
        # password => "xxx"       # 用户名对应的密码
        # 目的端集群启用SSL时,则需额外配置以下信息
        # ssl => true
        # cacert => "/opt/logstash/extend/certs"       # 用于认证目的端集群的CA证书文件路径
        # ssl_certificate_verification => false        # 目的端集群是否启用安全证书认证
    }
}
表6 配置项说明

配置项

是否必填

说明

logstash-input-beats

port

Logstash监听端口,用于接收Filebeat/Metricbeat发来的数据。

要求所选端口(如5044)未被其他进程占用,且Logstash集群的安全组已放通该端口。

logstash-output-elasticsearch

hosts

目的端集群的节点访问地址。支持配置多个IP地址。

取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"]

index

事件写入的索引名称,即指定数据写入到哪个索引。

  • 单个索引:直接输入单个索引名称(如“my_index”)。
  • 多个索引:基于字段的动态命名或多个条件输出块来匹配多个索引。

user

访问目的端集群的用户名。

安全模式的集群必填。

password

访问目的端集群的用户名对应的密码。

安全模式的集群必填。

ssl

目的端集群是否启用SSL。

取值范围:

  • true:使用HTTPS协议传输数据。
  • false:使用HTTP协议传输数据。

cacert

用于认证目的端集群的CA证书文件路径。

取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs)

  • 当目的端集群是CSS服务的Elasticsearch或OpenSearch时,获取默认CA证书的“证书名称”“证书路径”。操作指导请参见查看默认证书
  • 当目的端集群是自建或第三方Elasticsearch或OpenSearch时,则将目的端集群的安全证书上传至Logstash并获取“证书名称”“证书路径”。操作指导请参见上传自定义证书

ssl_certificate_verification

目的端集群是否启用安全证书认证。

取值范围:

  • true(默认值):使用安全证书认证目的端集群。
  • false:忽略安全证书认证。

更多参数说明请参见Logstash官方文档Beats input pluginElasticsearch output plugin