ElasticSearch、Logstash服务端搭建过程
ElasticSearch、Logstash服务端搭建过程
miaoshuai 发表于8个月前
ElasticSearch、Logstash服务端搭建过程
  • 发表于 8个月前
  • 阅读 66
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

1、原材料准备

    ElasticSearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.zip

    Kibana:https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-windows-x86.zip

    Logstash:https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.zip

    ElasticSearch-analysis-ik:点击这里下载

2、关系介绍

    ElasticSearch:你懂得

    Kibana:是一个为 ElasticSearch 提供的数据分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

    Logstash:是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。

    x-pack:是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中。在Elasticsearch 5.0.0之前,您必须安装单独的Shield,Watcher和Marvel插件才能获得在X-Pack中所有的功能。因为收费。但是好像可以破解,但是笔者暂时没用。

3、搭建ElasticSearch服务器

    1、将下载的elasticsearch-5.4.1.zip解压到任意目录,笔者的解压目录为(E:\Software\Delvelopment\elasticsearch-5.4.1)

   

    目录介绍:

        bin:启动、安装插件

        config:配置文件目录,其中elasticsearch.yml为配置文件

        data:数据文件

        lib:相关jar

        log:运行的日志文件

        modules:依赖的模块

        plugins:插件

2、启动elasticserach

    cd E:\Software\Delvelopment\elasticsearch-5.4.1\bin (你的解压目录)

    elasticsearch.bat

    

    启动后看到如上信息,红色标注部分是elasticsearch相关端口,其中9200为web端访问端口,9300为restful调用端口

    通过浏览器可以访问:http://192.168.1.81:9200/?pretty

    

4、使用Logstash及其插件logstash-input-jdbc同步数据

    1、将logstash-5.4.1.zip解压到任意目录(笔者的目录为E:\Software\Delvelopment\logstash-5.4.1)

        

    2、在bin目录新建配置文件logstash-simple.conf(也可以放在config目录中,笔者比较懒。),内容如下:    

input { 
  stdin { } 
}
output {
  elasticsearch {
	action => "index"
	hosts => ["localhost:9200"] 
	index => "cms"
	# user => elastic
	# password => changeme
  }
  stdout { codec => rubydebug }
}

    其中output中的elasticsearch是logstash连接elasticsearch的配置信息,详细介绍如下

    hosts:地址及端口号,可以配置多个

    index:索引名称

    user:如果elasticsearch安装的x-pack,需要权限验证需要添加,笔者没有安装,所以注释掉了

    password:密码,注释原因同上

    注意:此处的index名称是logstash需要连接elasticsearch并且创建的索引名称,但是elasticsearch默认没有授权创建。

    需要在elasticsearch的配置文件(elasticsearch.yml)中增加如下配置(最后一行即可):

    action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,cms

    最后一个cms同你index指定的名称一致就可以了

    3、启动logstash

        cd E:\Software\Delvelopment\logstash-5.4.1\bin

        logstash.bat -f logstash-simpe.conf

        启动后输出信息:

        

        此时可以访问elasticsearch 查看创建的cms索引

        访问:http://192.168.1.81:9200/cms/?pretty

        

    说明索引cms已经创建完毕

    3、使用logstash-input-jdbc同步mysql数据

        1、logstash-input-jdbc是个插件,需要先安装,使用命令行安装,如下:

            cd E:\Software\Delvelopment\logstash-5.4.1\bin

            logstash-plugin.bat install logstash-input-jdbc

        2、修改配置文件logstash-simpe.conf

input { 
  stdin { } 
  jdbc {
    jdbc_driver_library => "E:/Software/Delvelopment/logstash-5.4.1/lib/mysql-connector-java-5.1.37.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://**:3306/**?characterEncoding=UTF-8&useSSL=false"
    jdbc_user => "**"
    jdbc_password => "**"
    statement => "SELECT * FROM A WHERE C_UPDATE_DATE > :sql_last_value"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    schedule => "*/3 * * * *"
    type => "a"
  }
}
output {
  elasticsearch {
	action => "index"
	hosts => ["localhost:9200"] 
	index => "cms"
	# user => elastic
	# password => changeme
	document_type => "%{type}"
    document_id => "%{id}"
  }
  stdout { codec => rubydebug }
}

在input元素下增加了jdbc配置,主要用于连接mysql数据库以及要同步的表数据,其中主要配置解释如下:

jdbc_driver_library:数据库驱动所在位置

jdbc_driver_class:驱动类路径

jdbc_connection_string:连接字符串

jdbc_user:数据库账号

jdbc_password:数据库密码

statement:执行的sql语句,其中:sql_last_value表示数据上次同步时间,是内置变量。可以通过它做增量同步

schedule:设置同步频率,本文设置为每3分钟同步一次。可以设置成“* * * * *”表示每分钟同步一次

type:即索引的类型

如果需要同步多张表,可以配置多个jdbc代码块。

针对output元素下的elasticsearch增加的配置做如下说明:

document_type => "%{type}":其中%{type}%是变量,指向的是jdbc中的type
document_id => "%{id}":其中%{id}%是变量,指向的是statement执行的sql语句中查询的列作为文档的主键

3、重启logstash同步数据

    cd E:\Software\Delvelopment\logstash-5.4.1\bin

    logstash-plugin.bat install logstash-input-jdbc

    应该可以看到控制台已经打印初sql语句并且还有查询到的数据,笔者此处不方便截图。

至此,elasticsearch和logstash的简单使用已完毕,Kibana以及Java客户端调用、分词查询等将在下次分享。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 1
码字总数 1118
×
miaoshuai
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: