需求:将MySQL的数据同步到es中,通过es提供搜索和数据分析服务
网上有很多教程,但是自己在使用过程中还是遇到了很多坑,为了避免遇到同样的问题
下面将自己学习过程和资料整理下来,方便自己查阅,也希望对有同样需求的同学提供帮助
一、logstash介绍 官网地址
功能:集中、转换和存储数据
Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。
说明:由于在国内从官网下载非常慢,所以我推荐使用国内的镜像下载,这里我使用华为开源镜像下载
二、安装logstash
如果是linux系统可以直接下载
tar
包,然后进行解压安装,选择安装与es
相同版本的logstash
我目前使用的es
版本是6.7.0
,所以需要下载logstash 6.7.0
logstash
使用java
开发的,所以需要java
运行环境, 在安装之前需要验证是否配置java
运行环境
1. logstash下载 地址:https://mirrors.huaweicloud.com
搜索logstash2. 下载命令
# 下载logstash
wget https://mirrors.huaweicloud.com/logstash/6.7.0/logstash-6.7.0.tar.gz
# 解压到当前目录
tar -zxvf logstash-6.7.0.tar.gz
3. 验证是否安装成功
# 进入logstash目录
cd logstash-6.7.0
# 执行如下命令验证是否安装成功
bin/logstash -e 'input { stdin { } } output { stdout { } }'
由于logstash 运行需要启动jvm,所以需要等待一段时间,等待启动成功,输出内容如下:
Sending Logstash logs to /nfplus/logstash-6.7.0/logs which is now configured via log4j2.properties
[WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.7.0"}
[INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x2cd25be1 run>"}
aiting for input:
[INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
在输出内容下面输入 hello
,会有如下输出:
hello
{
"@version" => "1",
"message" => "hello",
"@timestamp" => 2020-05-29T06:28:37.021Z,
"host" => "izwz9cte3psk7ixd8kospzz"
}
说明 logstash
安装成功
参考文档:
Logstash 简易教程
https://blog.csdn.net/diaobatian/article/details/98624709
网友评论