更新时间:2024-11-20 GMT+08:00

Logstash配置文件模板介绍

系统模板介绍

Logstash集群预置了常见的几种Logstash配置文件模板,请参见表1

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

名称

描述

具体介绍

redis

从redis数据库导入数据到Elasticsearch类型集群。

redis模板说明

elasticsearch

从Elasticsearch类型集群导入数据到Elasticsearch类型集群。

elasticsearch模板说明

jdbc

从jdbc导入数据到Elasticsearch类型集群。

jdbc模板说明

kafka

从kafka导入数据到Elasticsearch类型集群。

kafka模板说明

beats

从beats导入数据到Elasticsearch类型集群。

dis模板说明

dis

从dis导入数据到Elasticsearch类型集群。

beats模板说明

redis模板说明

从redis数据库导入数据到Elasticsearch类型集群。

input { 
    redis {
        data_type => "pattern_channel" # data_type, one of ["list", "channel", "pattern_channel"]
        key => "lgs-*" # The name of a Redis list or channel.
        host => "xxx.xxx.xxx.xxxx"
        port => 6379
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
        remove_field => ["@timestamp", "@version"] 
    } 
} 

output { 
    elasticsearch { 
        hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host 
        # user => "xxxx" # user name, just for security cluster 
        # password => "xxxx" # password, just for security cluster 
        index => "xxxxxx" # destination _index 
    } 
}
表2 配置项说明

配置项

是否必填

说明

data_type

数据源类型。包括list,channel,pattern_channel。

  • 如果data_type为list,则使用BLPOP密钥。
  • 如果data_type为channel,使用SUBSCRIBE 密钥。
  • 如果data_type为pattern_channel,则使用PSUBSCRIBE密钥。

key

Redis的list或者channel名称。

host

Redis服务器的IP。

port

需要连接的端口号。

默认值:6379

hosts

Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

更多信息请参见Logstash官方文档Redis input plugin

elasticsearch模板说明

从Elasticsearch类型集群导入数据到Elasticsearch类型集群。

input { 
    elasticsearch { 
		# Source ES cluster IP address. When SSL is enabled, please use 7.10.0 and you donot need to add a protocol, otherwise an error is reported.
		hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] 
		# user => "xxxx" # user name, just for security cluster
		# password => "xxxx" # password, just for security cluster
		index => "xxxx,xxx,xxx" # List of indexes to be migrated, separate with commas (,) 
		docinfo => true
		# source ES certificate, the cluster on the cloud this value remains the same. Enter the corresponding path when using a custom certificate. Self-built Logstash cluster, You can download the certs file from the ES cluster details page, enter the corresponding path here. 
		# ca_file => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs"  # for 7.10.0
		# ssl => true # Set to true when SSL is enabled. 
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
		remove_field => ["@timestamp", "@version"] 
	} 
} 

output { 
    elasticsearch { 
		# Destination ES cluster IP address. When SSL is enabled, please use 7.10.0 and you donot need to add a protocol.
		hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"]  
		# user => "xxx" # user name, just for security cluster 
		# password => "xxxx" # password, just for security cluster 
		index => "%{[@metadata][_index]}" # destination _index, this config ensure that the index is consistent with that on the source. You can also specify the index name.
		# document_type => "%{[@metadata][_type]}" # destination _type, this config ensure that the document_type is consistent with that on the source. 
		# document_id => "%{[@metadata][_id]}" # destination _id, if you do not need to retain the original _id, delete this line to improve performance. 
		# source ES certificate, the cluster on the cloud this value remains the same. Enter the corresponding path when using a custom certificate. Self-built Logstash cluster, You can download the certs file from the ES cluster details page, enter the corresponding path here. 
		# cacert => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs"  # for 7.10.0
		# ssl => true # Set to true when SSL is enabled. 
		# ssl_certificate_verification => false # Set to false to ignore the validation server certificate when SSL is enabled.    
	} 
}
表3 配置项说明

配置项

是否必填

说明

hosts

导入数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

导入数据的索引,即用户需要从哪个索引迁移出数据。

docinfo

文档信息。

取值范围:true、false。

如果设置,请在事件中包括Elasticsearch文档信息,例如索引、类型和ID。

ca_file

默认值“/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs”

云上logstash集群保持默认值不变或使用自定义证书时输入相应的自定义证书路径。

自建Logstash集群,可以在开启SSL的ES集群详情页面下载证书文件,在此处输入相应的路径。

ssl

源端Elasticsearch集群启用SSL时,设置为true。

hosts

输出数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

document_type

  • 当docinfo参数配置为true时,此参数生效。
  • 当docinfo参数配置为false时,需要从配置文件中删除此参数。

document_id

  • 当docinfo参数配置为true时,此参数生效。
  • 当docinfo参数配置为false时,需要从配置文件中删除此参数。

cacert

默认值“/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs”

  • 云上logstash集群保持默认值不变或使用自定义证书时输入相应的自定义证书路径。
  • 自建Logstash集群,可以在开启SSL的ES集群详情页面下载证书文件,在此处输入相应的路径。

ssl

目的端Elasticsearch集群启用SSL时,设置为true。

ssl_certificate_verification

设置为false时,启用SSL时将忽略验证服务器证书。

更多信息请参见Logstash官方文档Elasticsearch input plugin

jdbc模板说明

从jdbc导入数据到Elasticsearch类型集群。

input {
    jdbc {
        # for 7.10.0, jdbc_driver_library => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/jars/mariadb-java-client-2.7.0.jar"
        jdbc_driver_library => "xxxxxxxxxxx"
        jdbc_driver_class => "org.mariadb.jdbc.Driver"
        jdbc_connection_string => "jdbc:mariadb://xxx.xxx.xxx.xxx:xxx/data_base_name" 
        jdbc_user => "xxxx"
        jdbc_password => "xxxx"
        statement => "SELECT * from table_name" # This SQL statement determines the data to be input
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
        remove_field => ["@timestamp", "@version"] 
    } 
} 

output { 
    elasticsearch { 
        hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host 
        # user => "xxxx" # user name, just for security cluster 
        # password => "xxxx" # password, just for security cluster 
        index => "xxxxxx" # destination _index 
    } 
}
表4 配置项说明

配置项

是否必填

说明

jdbc_driver_library

JDBC驱动程序库路径。

  • 当Logstash集群版本是7.10.0时,该字段设置为“/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/jars/mariadb-java-client-2.7.0.jar”

目前仅支持上述已有驱动,暂不支持用户自定义上传。

jdbc_driver_class

要加载的JDBC驱动程序类,例如“org.mariadb.jdbc.Driver”

jdbc_connection_string

JDBC连接字符串。

jdbc_user

JDBC用户名。

jdbc_password

JDBC密码。

statement

输入数据的SQL语句。

hosts

输出数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

更多信息请参见Logstash官方文档Jdbc input plugin

kafka模板说明

从kafka导入数据到Elasticsearch类型集群。

input {
    kafka{
        bootstrap_servers=>"xxx.xxx.xxx.xxx:xxxx"
        topics=>["xxxxxxxx"]
        group_id=>"kafka_es_test"
        auto_offset_reset=>"earliest"
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
        remove_field => ["@timestamp", "@version"] 
    } 
} 

output { 
    elasticsearch { 
        hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host 
        # user => "xxxx" # user name, just for security cluster 
        # password => "xxxx" # password, just for security cluster 
        index => "xxxxxx" # destination _index 
    } 
}
表5 配置项说明

配置项

是否必填

说明

bootstrap_servers

Kafka实例的IP和端口号。

topics

要订阅的主题列表。

group_id

该消费者所属的组的标识符。

auto_offset_reset

Kafka中初始偏移量。

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

hosts

输出数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

更多信息请参见Logstash官方文档Kafka input plugin

dis模板说明

从dis导入数据到Elasticsearch类型集群。
input {
    dis {
        # For details, see https://support.huaweicloud.com/usermanual-dis/dis_01_0099.html.
        streams => ["YOUR_DIS_STREAM_NAME"]
        endpoint => "https://dis.xxxxx.myhuaweicloud.com" # xxxxx should be replaced by your region name
        ak => "YOUR_ACCESS_KEY_ID"
        sk => "YOUR_SECRET_KEY_ID"
        region => "YOUR_Region"
        project_id => "YOUR_PROJECT_ID"
        group_id => "YOUR_APP_ID"
        client_id => "YOUR_CLIENT_ID"
        auto_offset_reset => "earliest"
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
        remove_field => ["@timestamp", "@version"] 
    } 
} 

output { 
    elasticsearch { 
        hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host 
        # user => "xxxx" # user name, just for security cluster 
        # password => "xxxx" # password, just for security cluster 
        index => "xxxxxx" # destination _index 
    } 
}
表6 配置项说明

配置项

是否必填

说明

streams

指定在DIS服务上创建的通道名称。

与DIS控制台“购买接入通道”时配置的“通道名称”取值一致。

endpoint

DIS对应Region的数据接口地址。

ak

用户的Access Key。

获取方式请参见检查认证信息

sk

用户的Secret Key。

获取方式请参见检查认证信息

region

将数据上传到指定Region的DIS服务。

project_id

用户所属区域的项目ID。

获取方式请参见检查认证信息

group_id

DIS App名称,用于标识一个消费组,值可以为任意字符串。

client_id

客户端ID,用于标识消费组内的消费者。

起多个pipeline或者多个Logstash实例消费时,需要配置不同的值。比如实例1的值为client1,实例2的值为client2。

auto_offset_reset

指定数据从通道中开始消费的位置,支持:

  • earliest:从通道中最早的数据开始消费。
  • latest:从通道中最新的数据开始消费。

hosts

输出数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

beats模板说明

从beats导入数据到Elasticsearch类型集群。
input {
    beats {
        port => 5044 # port
    }
}

filter {
    # Delete some fields added by Logstash. 
    mutate {
        remove_field => ["@timestamp", "@version"] 
    } 
} 

output { 
    elasticsearch { 
        hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host 
        # user => "xxxx" # user name, just for security cluster 
        # password => "xxxx" # password, just for security cluster 
        index => "xxxxxx" # destination _index 
    } 
}
表7 配置项说明

配置项

是否必填

说明

port

使用Logstash通过Beats连接并索引到Elasticsearch的端口号为5044。

hosts

输出数据的Elasticsearch集群的访问地址。

user

访问Elasticsearch集群的用户名,一般为admin。

仅安全集群需要输入此参数。

password

访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。

仅安全集群需要输入此参数。

index

配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。

不支持配置多条索引。

更多信息请参见Logstash官方文档Beats input plugin