logstash 配置总结
Notice
着重强调一点,官方文档比什么都重要,思维不要困在 xxdemo,查一下文档,很可能只是简单的问题。
logstash6.3版本文档:https://www.elastic.co/guide/en/logstash/6.3/index.html
logstash插件:https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html
简介
Mix, match, and orchestrate different inputs, filters, and outputs to play in pipeline harmony
中间件,采集、过滤、搬运数据。支持多源输入/输出。
Input
JDBC
input {
jdbc {
jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
jdbc_user => "mysql"
parameters => { "favorite_artist" => "Beethoven" }
schedule => "* * * * *"
statement => "SELECT * from songs where artist = :favorite_artist"
}
}
具体参数
jdbc连接配置
Setting Input | type | Required | default | describe |
---|---|---|---|---|
jdbc_connection_string | string | Yes | N/A | jdbc连接 jdbc:mysql://localhost:3306/mydb |
jdbc_default_timezone | string | No | 默认时区,SQL timestamp会默认转成UTC time。jdbc_default_timezone => "Asia/Shanghai" | |
jdbc_driver_class | string | Yes | N/A | 如 jdbc_driver_class => "com.mysql.jdbc.Driver" |
jdbc_driver_library | string | No | 如 jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar",如果不设置会从找本地java classpath中找 | |
jdbc_user | string | Yes | N/A | 数据库用户 |
jdbc_password | password | No | N/A | 数据库密码 |
jdbc_password_filepath | a valid filesystem path | No | N/A | 数据库密码文件存放路径 |
jdbc_pool_timeout | number | No | 5 | 连接池超时时间 默认5s |
jdbc_validate_connection | boolean | No | false | 使用前验证连接,默认不用 |
jdbc_validation_timeout | number | No | 3600 | 验证超时时间3600s |
connection_retry_attempts | number | No | 1 | 尝试重连数据库的最大次数 |
connection_retry_attempts_wait_time | number | No | 0.5 | 尝试重连时休眠的秒数 |
sql 配置
Setting Input | type | Required | default | describe |
---|---|---|---|---|
sequel_opts | hash | No | {} | 可选配置选项 |
statement | string | No | N/A | 执行语句,短sql |
statement_filepath | a valid filesystem path | No | sql语句路径 长sql写sql | |
lowercase_column_names | boolean | No | true | 默认列名转换为小写 |
columns_charset | hash | No | {} | 可指定列的字符集。columns_charset => { "column0" => "ISO-8859-1" } |
parameters | hash | No | {} | 自定义参数数值 "target_id" => "321" |
jdbc_paging_enabled | boolean | No | false | 是否分页,默认不分页。true后采用 limits, offsets 做分页处理,数据量过大会有性能问题。 |
jdbc_page_size | number | No | 100000 | 每页数据量 |
jdbc_fetch_size | number | No | N/A | jdbc fetch 最大值,不设默认为相关数据库驱动设置的默认值。不分页时过大会造成OOM |
schedule | string | No | N/A | sql执行周期,cron表达式,最短间隔1min schedule => "* * * * *"。不设置时 sql只运行一次 |
sql_log_level | string, one of ["fatal", "error", "warn", "info", "debug"] | No | info | sql日志级别 |
sync 配置
Setting Input | type | Required | default | describe |
---|---|---|---|---|
clean_run | boolean | No | false | 设为true,sql_last_value会被忽略,每次start会重新初始化所有数据 |
record_last_run | boolean | No | true | 默认保存最后运行时间 |
last_run_metadata_path | string | No | /home/ph/.logstash_jdbc_last_run | 最后运行时间文件存放地址 |
use_column_value | boolean | No | false | 设为true tracking_column的值就是 :sql_last_value,false 则是last_run_value的时间戳 |
tracking_column | string | No | N/A | 追踪的列(:sql_last_value值),需要use_column_value设为trun |
tracking_column_type | string, one of ["numeric", "timestamp"] | No | numeric | 追踪列的类型,默认数值 |
Output
ES
es cluster 设置及链接
Setting Input | type | Required | default | describe |
---|---|---|---|---|
hosts | uri | No | [//127.0.0.1] | es hosts:"127.0.0.1:9200","127.0.0.2:9200" |
path | string | No | N/A | lives es server(需要设置proxy) |
proxy | uri | No | N/A | 代理地址 |
user | string | No | N/A | es 用户 |
password | password | No | N/A | es password |
sniffing | boolean | No | false | 是否动态发现es cluster nodes。 1.x and 2.x 所有http.enabled的节点, 5.x and 6.x会排除master node |
sniffing_delay | number | No | 5 | sniffing间隔时间 5s |
sniffing_path | string | No | N/A | |
timeout | number | No | 60 | 超时时间 |
pool_max | number | No | 1000 | 线程池最大值 |
pool_max_per_route | number | No | 100 | 每个路由的最大线程池 |
validate_after_inactivity | number | No | 10000 | 执行请求前等待时间超过多少s,验证链接是否过时 |
resurrect_delay | number | No | 5 | |
retry_initial_interval | number | No | 2 | 批处理重试的初始间隔(秒)。每次重试时加倍,直到retry_max_interval |
retry_max_interval | number | No | 64 | 批处理重试之间的最大间隔(秒) |
retry_on_conflict | number | No | 1 | update/upserted冲突重试的次数 |
http_compression | boolean | No | false | 是否开启gzip压缩,es 5.0版本以下默认开启,5.x+版本关闭 |
custom_headers | hash | No | N/A | 自定义http 头信息 |
failure_type_logging_whitelist | array | No | [] | es 错误白名单. |
healthcheck_path | string | No | N/A |
sync 配置
Setting Input | type | Required | default | describe |
---|---|---|---|---|
action | string | No | index | 批处理动作index:文档全局替换,delete:按documentId删除,create:创建,documentId存在则失败,update:更新,documentId不存在则失败 |
doc_as_upsert | boolean | No | false | update模式下,true时documentId不存在会创建新document |
upsert | string | No | "" | upsert 内容 |
bulk_path | string | No | N/A | 批处理路径 path+'_bulk' |
index | string | No | index名 | |
document_id | string | No | N/A | 文档id |
document_type | string | No | N/A | 文档类型 |
parent | string | No | nil | 子文档,关联的父文档的id |
pipeline | string | No | nil | 执行的pipeline name |
routing | string | No | N/A | 路由 |
version | string | No | N/A | |
version_type | string, one of ["internal", "external", "external_gt", "external_gte", "force"] | No | N/A | |
manage_template | boolean | No | true | 默认logstash-%{+YYYY.MM.dd},改为false需要手动管理 |
template | a valid filesystem path | No | N/A | 模板路径 |
template_name | string | No | logstash | 模板名称 |
template_overwrite | boolean | No | false | |
parameters | hash | No | N/A | 查询参数 |
script | string | No | N/A | 更新脚本script => "ctx._source.message = params.event.get('message')" |
script_lang | string | No | painless | 脚本语言,6.0+用其他语言,需要设为"" |
script_type | string, one of ["inline", "indexed", "file"] | No | inline | 脚本类型 |
script_var_name | string | No | event | 脚本变量名称 |
scripted_upsert | boolean | No | false | 设为true,会创建不存在的document |
ssl配置
Setting Input | type | Required | default | describe |
---|---|---|---|---|
ssl | boolean | No | N/A | es 开启https,hosts需要以https://开头 |
ssl_certificate_verification | boolean | No | true | ssl证书验证 |
cacert | a valid filesystem path | No | N/A | .cer or .pem证书路径 |
keystore | a valid filesystem path | No | N/A | .jks or .p12证书路径 |
keystore_password | password | No | N/A | keystore密码 |
truststore | a valid filesystem path | No | N/A | JKS路径 |
truststore_password | password | No | N/A | JKS password |
网友评论