elasticsearch(ELK)-安装及运行-(基于windows)

1、环境,基于java开发环境(jdk1.8及以上,node.js)
2、首先下载elk三剑客(这里以7.6.2为例子,elk需要版本统一)
连接:https://www.elastic.co/cn/downloads/past-releases#elasticsearch (e)
https://www.elastic.co/cn/downloads/past-releases#logstash (l)
https://www.elastic.co/cn/downloads/past-releases#kibana (k)
3、本着开箱即用的原则.安装完即可使用
接下来逐个讲解:
elasticsearch 安装完即可使用,来到bin目录下双击elasticsearch.bat启动elasticsearch。
如果想分词查询,可下载ik分词器插件,地址https://github.com/medcl/elasticsearch-analysis-ik(7.6.2)
下载完的插件放到plugins/ik目录下。(ik文件夹需要新建,并且需要重新启动elasticsearch,方可生效);
访问 localhost:9200
在这里插入图片描述

logstash 根目录下新建文件夹mysql_es(可因个人喜好命名)
在mysql_es文件夹下新建mysql.conf文件,all.sql 文件(需要同步的sql。)
sql如下
SELECT * from tablea a
WHERE a.index_time CONVERT_TZ(:sql_last_value, ‘+00:00’, ‘+00:00’)
注:index_time 是数据库中的实实在在的一个时间戳,是设计数据库时自己设置的。可根据自己的数据库指定某个字段时间。

官网上下载一个mysql 驱动放到本文件中,我这里使用的是mysql-connector-java-5.1.25.jar。重点:配置mysql.conf 文件

input {
    stdin {
    }
    # 班级
    jdbc {
        type => "test"

        # 数据库
        jdbc_connection_string => "jdbc:mysql://localhost:3306/test?tinyInt1isBit=false&useUnicode=true&characterEncoding=UTF-8&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull"
        jdbc_user => "root"
        jdbc_password => "root"
        jdbc_driver_library => "D:logstashlogstash-7.6.2mysqletc/mysql-connector-java-5.1.25.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"

        codec => plain { charset => "UTF-8"}
		jdbc_default_timezone => "Asia/Shanghai" #时区
        lowercase_column_names => false

        statement_filepath => "D:logstashlogstash-7.6.2mysqletcsqlall.sql"

        jdbc_paging_enabled => "true"
        jdbc_page_size => "5000"

        # 不使用字段值追踪,直接用该次更新的当前时间赋值到:sql_last_value,然后在sql中用创建时间和更新时间 >= :sql_last_value
        use_column_value => false
        tracking_column => index_time
        record_last_run => true
        last_run_metadata_path => "D:logstashlogstash-7.6.2mysql_eslastlast.txt"

        # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
        schedule => "* * * * *"
    }
filter {
    ruby {
        code => "event.timestamp.time.localtime"
    }
    date {
        match => ["time", "yyyy-MM-dd HH:mm:ss"]
    }
	json {
             source => "message"
             remove_field => ["message"]
         }
}

output {
    if [type] == "test" {
        elasticsearch {
            hosts => "localhost:9200"
            # index
            index => "test"
            # 需要关联的数据库中有有一个id字段,对应索引的id号
            document_id => "%{id}
          
        }
    }
	

   


    stdout {
        codec => json_lines
    }
}

配置完需要在bin 目录下新建一个rundefault.bat文件(前缀无所谓)
贴上 logstash -f …/mysql_es/mysql.conf即可双击运行。在黑窗口中可看到sql,如果没有,9层以上是配置错误。需要检查配置。
kibana 拆箱即用,直接运行bin目录下的kibana.bat即可
访问 localhost:5601
在这里插入图片描述
kibana使用的搜索语法
在这里插入图片描述
右侧有数据及代表本地的es已经同步完毕。
也可以下载elasticsearch-head来查看数据是否同步完毕。
4、elasticsearch-head需要前端环境,需要前端依赖。可以自行百度。安装完会有跨域问题。需要配置elasticsearch.yml文件 如下
http.cors.enabled: true
http.cors.allow-origin: “*”
即可解决跨域问题

在这里插入图片描述
安装完访问localhost:9100
在这里插入图片描述
5、可能会遇到的问题
logstash需要执行多个配置文件,将多个conf文件放到同一个目录conf下
然后执行命令 logstash -f …/mysql_es/conf/
x在这里插入图片描述
6、 需要注意的是,windows适合自己本地调试。
logstash 生效时间最快是分钟级。不适合大量数据的应用。
不支持物理删除,物理删除es中还会有数据,无人通知es删除数据。
支持逻辑删除。
logstash 可做增量和全量。
以上就是elk 基于windows的配置。更多玩法需要自己摸索。欢迎交流。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>