本文章用的 elastic 相关组件版本: 6.4.1
一, 准备
ElasticsearchLogstashKibanajdk 8 (主要根据 logstash 的版本) 下载 mysql-connector-java.jar 找对应 MySQL 的版本具体每个插件的安装方式请查看官方文档, 很简单的, WIN 下的都是绿色版, Linux 的安装目录基本是在 /usr/share/ 对应软件, 配置文件目录在 /etc/ 对应软件下面.
二, 配置
1, Logstash 的配置
input 的配置 https://www.elastic.co/guide/… 增量更新的主要几个参数
use_column_value => true // 是否使用自定义标记列
tracking_column => “id” // 指定的列
record_last_run => true // 是否记录最后运行的指标
last_run_metadata_path => “[path]” // 记录的指标存储路径, 当多个 input 的时候, 这个是必须要设置的, 否则多个 input 会共用一个
jdbc_paging_enabled => true // 是否启用分页查询
jdbc_page_size => “[number]” // 每次查询多少
statement => “SELECT * FROM db_name WHERE id > :sql_last_value” // 记住这里的 :sql_last_value
多个 input 的时候, 需要这个配置 后面的 output 用用 if else 时候需要作为判断依据
type => “”
output 配置 mappingshttps://www.elastic.co/guide/…
template => “mappings 配置的路径, 一般 json 格式 ”
template_name => “”
template_overwrite => true
output 的判断语法
if EXPRESSION {
//…
} else if EXPRESSION {
//…
} else {
//…
}
2, 安全设置 (用户认证相关设置)
修改 Elasticsearch 设置修改 elasticsearch.yml, 添加两个配置项:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
在下面更新 license 的时候, 请将以上设置为 false(也可以不设置为 false, 影响可能不大)
X-PACK 设置: 不过在用这个命令之前, 是需要依赖 x -pack 模块的, Elastic 6.3.x 后面的版本, 就内置了这个模块, 这个模块的使用, 不是免费的, 是收费的, 免费和收费的区别, 网上有破解版, 我暂时用破解版做演示, 请大家还是使用正版吧. 破解版替换完原版文件后, 需要自己去官网申请一个 basic 授权的 license 文件, 这是一个 json 文件, 修改里面的 type 为 platinum,expiry_date_in_millis 为 2855980923000, 然后再在 Kibana 的 Management 的 License Management 的地方上传修改后的 License 文件.
初始化用户及密码命令:elastic/bin/elastic-set-password 这个命令只有两个参数 auto 和 interactive 一个是自动, 一个是交互, 交互的方式就是可以自己设置密码, 自动的我没用过, 这个命令会设置 5 个用户的密码:elastic,kibana,logstash_system,beats_system,apm_system_users, 其中 elastic 这个用户的权限最大.
在完成以上步骤后, 记得重启 Elasticsearch 和 Kibana, 在重启 Kibana 的时候, 会遇到一些 warning 和 error, 先不管 error, 有两个 warning 需要先解决, 后面的 error 自然就没有了. 这两个应该是关于 xpack.reporting.encryptionKey 和 xpack.security.encryptionKey 的. 参考 https://www.elastic.co/guide/… 和 https://www.elastic.co/guide/…
xpack.reporting.encryptionKey: “a_random_string”
xpack.security.encryptionKey: “something_at_least_32_characters”
再重启应该就没有 error 了, 这个时候就可以用之前设置密码的那几个账号登录了, 用 elastic 账号登录, 还可以设置其他几个账号的权限了.
三, 运行 Logstash
logstash -f [指定配置文件的路径.conf]