Logstash配置文件模板介绍
系统模板介绍
Logstash集群预置了常见的几种Logstash配置文件模板,请参见表1。
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 } }
配置项 |
是否必填 |
说明 |
---|---|---|
data_type |
是 |
数据源类型。包括list,channel,pattern_channel。
|
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. } }
配置项 |
是否必填 |
说明 |
---|---|---|
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 |
否 |
|
document_id |
否 |
|
cacert |
否 |
默认值“/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs”。
|
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 } }
配置项 |
是否必填 |
说明 |
---|---|---|
jdbc_driver_library |
是 |
JDBC驱动程序库路径。
目前仅支持上述已有驱动,暂不支持用户自定义上传。 |
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 } }
配置项 |
是否必填 |
说明 |
---|---|---|
bootstrap_servers |
是 |
Kafka实例的IP和端口号。 |
topics |
是 |
要订阅的主题列表。 |
group_id |
是 |
该消费者所属的组的标识符。 |
auto_offset_reset |
是 |
Kafka中初始偏移量。
|
hosts |
是 |
输出数据的Elasticsearch集群的访问地址。 |
user |
否 |
访问Elasticsearch集群的用户名,一般为admin。 仅安全集群需要输入此参数。 |
password |
否 |
访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。 仅安全集群需要输入此参数。 |
index |
是 |
配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。 不支持配置多条索引。 |
更多信息请参见Logstash官方文档Kafka input plugin。
dis模板说明
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 } }
配置项 |
是否必填 |
说明 |
---|---|---|
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 |
否 |
指定数据从通道中开始消费的位置,支持:
|
hosts |
是 |
输出数据的Elasticsearch集群的访问地址。 |
user |
否 |
访问Elasticsearch集群的用户名,一般为admin。 仅安全集群需要输入此参数。 |
password |
否 |
访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。 仅安全集群需要输入此参数。 |
index |
是 |
配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。 不支持配置多条索引。 |
beats模板说明
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 } }
配置项 |
是否必填 |
说明 |
---|---|---|
port |
是 |
使用Logstash通过Beats连接并索引到Elasticsearch的端口号为5044。 |
hosts |
是 |
输出数据的Elasticsearch集群的访问地址。 |
user |
否 |
访问Elasticsearch集群的用户名,一般为admin。 仅安全集群需要输入此参数。 |
password |
否 |
访问Elasticsearch集群的密码。此密码为创建集群时设置的密码。 仅安全集群需要输入此参数。 |
index |
是 |
配置为需要迁移数据的索引,即用户需要迁移数据到哪个索引,就配置哪个索引。 不支持配置多条索引。 |
更多信息请参见Logstash官方文档Beats input plugin。