一讲说了es,及Elasticsearch
二讲说一说logstash的安装
三讲说 logstash 的配置以及我们自定义的同步文件配置跟代码的实现
四讲说一下logstash 的ik分词 拼音分词
五讲说一下es的安全问题 这里会讲到 search-guard5
六讲说一下elk使用中我全部踩到的坑 以及怎么解决
最后补充,对于elk来说,作者本人只达到了会用,能解决出现的bug及问题,对于其原理等,还未精通。
对于elk来说,已经是达到了拆箱即用。
在一讲的官网中,下载与es版本相同的logstash,这里我们下载的logstash 为 5.4.0版本
下载好后执行解压命令:
tar -zxvf logstash-5.4.0.tar.gz
对于logstash来说你可以把他理解为一个火车或者一个管道,火车通俗来讲,从某地装煤然后运到某地,先不理某地是哪里,而这里的火车就像logstash一样 起着一个运输的作用。
回归正题,这里我们进入logstash的安装目录下
新建一个存放我们自己自定义配置文件的文件夹这里我起名叫myconf
mkdir myconf
在这个目录下 我们会放三个文件
- mysql文件
- mysql的启动jar
- 自定义的同步文件
我的该目录下是这样的:
mysql的启动jar可以去mysql 的官网下载到 此处就不贴了,因为业务的不同 我这里是要去同步mysql数据库 所以 后边所讲也都为同步mysql数据库为主:
这是我的全量同步自定义文件(单输入单输出,简单的全量同步):
input {
stdin {
}
jdbc {
jdbc_connection_string => "jdbc:mysql://***.***.1.141:3306/acai"
jdbc_user => "root"
jdbc_password => "***"
jdbc_driver_library => "/usr/local/program/logstash/logstash-5.4.0/myconf/mysql-connector-java-5.1.5.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement_filepath => "/usr/local/program/logstash/logstash-5.4.0/myconf/acai_sku.sql"
schedule => "0 1 * * *"
type => "acai_sku"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
stdout {
codec => json_lines
}
elasticsearch {
hosts => "**.**.1.141:9200"
index => "acai_pr_sku"
document_type => "acai_pr_sku_table"
document_id => "%{skuid}"
}
}
document_id => “%{skuid}” sql配置文件的id
然后贴一下mysql文件:
SELECT
aps.sku_id AS skuId,
aps.pruduct_id AS pruductId,
aps.product_image_id AS productImageId,
aps.color_id AS colorId,
aps.sku_name AS skuName,
aps.sku_ad_words skuAdWords,
aps.brand_id AS brandId,
aps.sku_price AS skuPrice,
aps.sku_promotion_price AS skuPromotionPrice,
aps.sku_promotion_type AS skuPromotionType,
aps.sku_marketprice AS skuMarketprice,
aps.sku_serial AS skuSerial,
aps.stock_amount AS stockAmount,
aps.stock_warn_amount AS stockWarnAmount,
aps.spec_name AS specName,
aps.sku_image AS skuImage,
aps.have_gift AS haveGift,
aps.is_own_shop AS isOwnShop,
aps.gmt_create AS gmtCreate,
aps.registmember_price AS registmemberPrice,
aps.authmember_price AS authmemberPrice,
aps.distributor_price AS distributorPrice,
aps.agent_price AS agentPrice,
aps.selfemployed_price AS selfemployedPrice,
aps.is_delete AS isDelete
FROM
acai.acai_pr_sku aps
这是在初期写的配置文件,后边会涉及到(多输入多输出,以及增量同步)
最后说一下logstash的后台启动
1.采用nohup的启动方式
nohup /usr/local/program/logstash-5.4.0/bin/logstash -f /usr/local/program/logstash-5.4.0/myconf-increment/sync-config.conf &
2.正常启动
./logstash -f ../myconf/sync-config.conf
启动正常后,就会显示 logstash 在读取你的mysql配置文件,这时候再去es里看 就会看到你同步好的软件,我这里没有装es的显示插件es-head,这里推荐谷歌上存在的es插件 也是 es-head 在谷歌的应用商店里可以搜索的到,很方便。
翻不了墙的童鞋可以自行百度,谷歌es-head插件,在更多工具–>扩展程序,拖拽安装就好,截图为证: