栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch:7.7.0

elasticsearch:7.7.0

需要使用jdk环境

拉去docker镜像

docker pull elasticsearch:7.7.0

运行
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0

在谷歌中访问http://localhost:9200   出现以下运行成功

二,下载kibana

注意:版本必须和elasticsearch的版本一致

https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-windows-x86_64.zip

运行bin目录下的kibana.bat,启动Kibana的用户界面,访问 http://localhost:5601 

三,安装logstash

必须和elasticsearch版本一直

3.1通过百度云下载
链接:https://mirrors.huaweicloud.com/logstash/?C=N&O=D

3.2  下载好之后进入  然后新建一个mysql文件夹

cmd命令进入bin目录下执行

这里先声明一下:

对于logstash2.x版本是没有集成logstash-jdbc-input插件的需要我们自己去安装,如果你是2.x版本可以参考:http://blog.csdn.net/yeyuma/article/details/50240595 这位老铁的文章;

对于logstash5.x版本他自身已经集成了这个插件,不需要我们去单独安装,直接使用即可,我这里说一下与mysql进行同步的简单配置
 

logstash -e "input { stdin { } } output { stdout {} }"

 运行报错

could not find java; set JAVA_HOME or ensure java is in PATH

配置JAVA_HOME  

我的:

正确的

 然后执行 logstash -e "input { stdin { } } output { stdout {} }" 依然报错

[ERROR] 2022-03-14 19:41:36.950 [main] Logstash - java.lang.IllegalStateExce

这个是因为我的在中文目录下,所以给他换一个没有中文目录就解决拉
报错
F:eslogstash-6.4.3bin>logstash -e "input { stdin { } } output { stdout {} }"
Sending Logstash logs to F:/es/logstash-6.4.3/logs which is now configured via log4j2.properties
[2022-03-15T14:33:03,940][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2022-03-15T14:33:04,011][FATAL][logstash.runner          ] Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.
[2022-03-15T14:33:04,032][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

解决 :
将data下的.lock文件删除
四,安装logstash-input-jdbc插件

cmd命令在bin目录下执行

logstash-plugin install logstash-input-jdbc

出来以下就说明安装成功
Validating logstash-input-jdbc
Installing logstash-input-jdbc
Installation successful

安装插件,成功后会有提示信息

五,新建目录存放配置文件和mysql驱动jar包

 jdbc.conf配置   增量

input {
    stdin {
    }
    jdbc {
      # mysql相关jdbc配置
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/Demo2"
      jdbc_user => "root"
      jdbc_password => "142536"
 
      # jdbc连接mysql驱动的文件目录,可去官网下载:https://dev.mysql.com/downloads/connector/j/
      jdbc_driver_library => "E:/program/logstash-7.3.0/mysql/mysql-connector-java-5.1.17.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
 
      # mysql文件, 也可以直接写SQL语句在此处,如下:
      statement => "SELECt * from geometry"
      #statement_filepath => "/opt/logstash/conf/jdbc.sql"
 
      # 这里类似crontab,可以定制定时操作,比如每10分钟执行一次同步(分 时 天 月 年)
      #schedule => "* * * * * *"
 
    }
}
 
# 此处我不做过滤处理
filter {}
 
output {
    #输出到elasticsearch的配置
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "jdbc_c"
 
        #将"_id"的值设为mysql的autoid字段
        document_id => "%{id}"
        template_overwrite => true
    }
 
    #这里输出调试,正式运行时可以注释掉
    stdout {
        codec => json_lines
    }
}

全量配置

# 读取数据源
input {
 stdin { }
    jdbc {
		# 数据连接地址(你要连接哪个数据库)
        jdbc_connection_string => "jdbc:mysql://localhost:3306/springcloud"
		# 自己数据库用户名
        jdbc_user => "root"
		# 自己数据库密码
        jdbc_password => "root"
		# 驱动位置(自己电脑驱动的位置)
        jdbc_driver_library => "D:installdevelopELKlogstash-7.6.2logstash-7.6.2binmysql-connector-java-5.1.29.jar"
		# 驱动名称
        jdbc_driver_class => "com.mysql.jdbc.Driver"
		
        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"
		
		# 设置执行SQL
		use_column_value => false
		# 设置时区
		jdbc_default_timezone =>"Asia/Shanghai"
		#查询的数据库表
        statement => "SELECt * FROM `userkibana` "
		
		# 设置监听间隔 各字段含义(从左至右)分、时、天、月、年,全为*默认含义为每分钟都更新
        schedule => "* * * * *"
    }
 }

 output {
     stdout {
        codec => json_lines
    }
    elasticsearch {
		# ES位置
        hosts => "localhost:9200"
		# 索引名称
        index => "user1"
		# 文档类型
        document_type => "_doc"
		# 文档ID(指你数据库表中的id,如果没有就不用写)
        document_id => "%{id}"
    }
}

cmd在bin目录下执行

logstash -f ../mysql/jdbc.conf

注意:如果运行报错 删除 F:eslogstash-6.4.3data.lock再次运行即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号