配置文件模板参考
在构建实时日志处理或大数据迁移流水线时,手动编写复杂的Logstash配置文件不仅耗时,还容易因语法错误导致数据丢失。CSS服务为Logstash集群预置了针对Redis、Elasticsearch、MySQL (JDBC) 、Kafka等主流数据源的配置模板。通过这些经过验证的模板,您只需填入必要的连接信息,即可快速打通从数据源到CSS Elasticsearch或OpenSearch的自动化传输路径,显著降低运维成本。
系统模板介绍
| 系统模板名称 | 描述 | 相关说明 |
|---|---|---|
| redis | 从Redis数据库导入数据到Elasticsearch/OpenSearch。 | |
| elasticsearch | 从Elasticsearch/OpenSearch集群导入数据到Elasticsearch/OpenSearch。 | |
| jdbc | 从JDBC驱动的MySQL/MariaDB数据库导入数据到Elasticsearch/OpenSearch。 | |
| kafka | 从Kafka导入数据到Elasticsearch/OpenSearch。 | |
| beats | 从Beats导入数据到Elasticsearch/OpenSearch。 |
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 # 目的端集群是否启用安全证书认证
}
} | 配置项 | 是否必填 | 说明 |
|---|---|---|
| logstash-input-redis | ||
| data_type | 是 | Redis数据类型。 取值范围:
|
| key | 是 | Redis列表或通道的名称。
|
| host | 是 | Redis服务器的访问地址。 输入IP地址或域名。 |
| port | 否 | Redis服务器监听端口。 |
| logstash-output-elasticsearch | ||
| hosts | 是 | 目的端集群的节点访问地址。支持配置多个IP地址。 取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 事件写入的索引名称,即指定数据写入到哪个索引。
|
| user | 否 | 访问目的端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问目的端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 目的端集群是否启用SSL。 取值范围:
|
| cacert | 否 | 用于认证目的端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| ssl_certificate_verification | 否 | 目的端集群是否启用安全证书认证。 取值范围:
|
更多参数说明请参见Logstash官方文档Redis input plugin和Elasticsearch 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 # 目的端集群是否启用安全证书认证
}
} | 配置项 | 是否必填 | 说明 |
|---|---|---|
| logstash-input-elasticsearch | ||
| hosts | 是 | 源端集群的节点访问地址。支持配置多个IP地址。 取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 待迁移的源索引名称。
|
| docinfo | 否 | 是否保留源文档的元数据信息。 取值范围:
|
| user | 否 | 访问源端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问源端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 源端集群是否启用SSL。 取值范围:
|
| ca_file | 否 | 用于认证源端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| logstash-output-elasticsearch | ||
| hosts | 是 | 目的端集群的节点访问地址。支持配置多个IP地址。 取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 事件写入的索引名称,即指定数据写入到哪个索引。
|
| document_type | 否 | 事件写入的文档类型。 建议将相似的事件写入同一类型中。 |
| document_id | 否 | 事件写入的文档ID。 如果指定了相同ID,则历史数据会被覆盖。 在数据迁移场景中建议配置本参数,避免数据重复。 |
| user | 否 | 访问目的端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问目的端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 目的端集群是否启用SSL。 取值范围:
|
| cacert | 否 | 用于认证目的端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| ssl_certificate_verification | 否 | 目的端集群是否启用安全证书认证。 取值范围:
|
更多参数说明请参见Logstash官方文档Elasticsearch input plugin和Elasticsearch 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 # 目的端集群是否启用安全证书认证
}
} | 配置项 | 是否必填 | 说明 |
|---|---|---|
| logstash-input-jdbc | ||
| jdbc_driver_library | 是 | JDBC驱动包路径。 CSS服务的Logstash集群已预置MariaDB驱动和MySQL驱动。 取值格式:<默认证书路径>jars/<驱动名称>(如/opt/logstash/extend/jars/mariadb-java-client-2.7.0.jar)
|
| jdbc_driver_class | 是 | 驱动类名。
|
| jdbc_connection_string | 是 | 数据库连接字符串。
|
| jdbc_user | 是 | 访问数据库的用户名。 |
| jdbc_password | 是 | 用户名对应的密码。 |
| statement | 是 | SQL查询语句,用于确定同步的数据范围。 |
| logstash-output-elasticsearch | ||
| hosts | 是 | 目的端集群的节点访问地址。支持配置多个IP地址。 取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 事件写入的索引名称,即指定数据写入到哪个索引。
|
| user | 否 | 访问目的端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问目的端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 目的端集群是否启用SSL。 取值范围:
|
| cacert | 否 | 用于认证目的端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| ssl_certificate_verification | 否 | 目的端集群是否启用安全证书认证。 取值范围:
|
更多参数说明请参见Logstash官方文档Jdbc input plugin和Elasticsearch 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 # 目的端集群是否启用安全证书认证
}
} | 配置项 | 是否必填 | 说明 |
|---|---|---|
| logstash-input-kafka | ||
| bootstrap_servers | 是 | Kafka实例的访问地址。支持配置多个实例地址。 取值格式:"<Kafka实例的IP地址1>:<端口号>, <Kafka实例的IP地址2>:<端口号>" |
| topics | 是 | 订阅的Kafka Topic名称。
|
| group_id | 是 | 消费者组ID,用于记录消费位点。 |
| auto_offset_reset | 是 | 偏移量重置策略。 取值范围:
|
| logstash-output-elasticsearch | ||
| hosts | 是 | 目的端集群的节点访问地址。支持配置多个IP地址。 支持配置多个节点访问地址,取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 事件写入的索引名称,即指定数据写入到哪个索引。
|
| user | 否 | 访问目的端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问目的端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 目的端集群是否启用SSL。 取值范围:
|
| cacert | 否 | 用于认证目的端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| ssl_certificate_verification | 否 | 目的端集群是否启用安全证书认证。 取值范围:
|
更多参数说明请参见Logstash官方文档Kafka input plugin和Elasticsearch output plugin。
beats模板说明
# 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 # 目的端集群是否启用安全证书认证
}
} | 配置项 | 是否必填 | 说明 |
|---|---|---|
| logstash-input-beats | ||
| port | 是 | Logstash监听端口,用于接收Filebeat/Metricbeat发来的数据。 要求所选端口(如5044)未被其他进程占用,且Logstash集群的安全组已放通该端口。 |
| logstash-output-elasticsearch | ||
| hosts | 是 | 目的端集群的节点访问地址。支持配置多个IP地址。 取值格式:["<节点IP地址1>:<端口号>", "<节点IP地址2>:<端口号>"] |
| index | 是 | 事件写入的索引名称,即指定数据写入到哪个索引。
|
| user | 否 | 访问目的端集群的用户名。 安全模式的集群必填。 |
| password | 否 | 访问目的端集群的用户名对应的密码。 安全模式的集群必填。 |
| ssl | 否 | 目的端集群是否启用SSL。 取值范围:
|
| cacert | 否 | 用于认证目的端集群的CA证书文件路径。 取值格式:<证书路径><证书名称>(如/opt/logstash/extend/certs) |
| ssl_certificate_verification | 否 | 目的端集群是否启用安全证书认证。 取值范围:
|
更多参数说明请参见Logstash官方文档Beats input plugin和Elasticsearch output plugin。