ElasticSearch(二)Logstash的基础使用

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

第二周了,今天我们来讲一下Logstash的使用。

    首先,我们打开ES,使用postman新建一个索引user,在postman里使用PUT方式向localhost:9200/user发送请求。看到返回信息:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "user"
}

说明索引建立成功了,如果没有建立成功,可能是因为ES没有开启自动创建索引,修改一下config/elasticsearch.yml里的配置,把action.auto_create_index设置为true。重新执行一下上面的操作。

    这个时候我们看一下user索引里的数据,在postman里使用get方式,发送localhost:9200/user/_search?q=*&pretty查看user索引下的所有数据。可以看到,在user索引下,并没有任何数据。

    我们要读取的表结构为:

CREATE TABLE `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `account` varchar(40) DEFAULT NULL,

  `password` varchar(40) DEFAULT NULL,

  `name` varchar(20) DEFAULT NULL,

  `sex` varchar(15) DEFAULT NULL,

  `head_src` varchar(40) DEFAULT NULL,

  `question` int(11) DEFAULT NULL,

  `answer` varchar(100) DEFAULT NULL,

  `signature` varchar(40) DEFAULT NULL,

  `grade` int(11) DEFAULT NULL,

  `code` varchar(100) NOT NULL,

  `state` tinyint(1) unsigned zerofill NOT NULL,

  `permission` tinyint(1) DEFAULT NULL,

  `date` date DEFAULT NULL,

  PRIMARY KEY (`id`),

  UNIQUE KEY `account` (`account`)

) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 STATS_PERSISTENT=1;

(大学里自己做的系统里的表,注释都没有,技术不过关啊)

    接下来,我们进入Logstash文件夹里,新建一个ConnectionJar文件夹,在这个文件夹里放入mysql连接的jar包,可以去Maven仓库里面去下一个,这里我就不放链接了。

    然后我们打开Logstash根目录下的bin文件夹,创建conf文件夹,在这个文件夹里,我们创建mysql.conf文件。打开conf文件,设置文件编码为ANSI(非常重要!!非常重要!!非常重要!!)。

    配置文件的内容可以这么写:   

input {

    # 标准输入形式,暂时用不到

    stdin {

    }

    # JDBC设置

    jdbc {

    # 数据库连接

    jdbc_connection_string => "jdbc:mysql://localhost:3306/retina"

    jdbc_user => "root"

    jdbc_password => "123456"

    # Jar包的位置

    jdbc_driver_library => "D:\elasticSearch\logstash-7.6.0\ConnectionJar\mysql-connector-java-5.1.40-bin.jar"

    jdbc_driver_class => "com.mysql.jdbc.Driver"

 

    # 是否使用列数据

    use_column_value => true

    # 追踪的列,与use_column_value必须同时使用

    tracking_column => id

    # 是否开启记录最后一次运行数据

    record_last_run => true

    # 记录数据的保存位置

    last_run_metadata_path=>"D:\elasticSearch\logstash-7.6.0\bin\conf\station_parameter.txt"

    # 是否开启分页

    jdbc_paging_enabled => "true"

    # 分页数据大小

    jdbc_page_size => "50000"

    # SQL语句,也可以使用以下的文件形式

    # statement_filepath => "D:\elasticSearch\logstash-7.6.0\bin\conf\information.sql"

    statement => "select * from user where id > :sql_last_value "

    # 定时执行的时间,这个在我的一篇博客里提到https://my.oschina.net/u/4109273/blog/3042086

    schedule => "* * * * *"

    # 索引的名称

    type => "user"

  }

}

# 拦截器设置,本篇中没有用到,就不解释了

filter {}



# 输出配置

output {

    elasticsearch {

       # ES的地址

       hosts => "localhost:9200"

       # 使用的索引

       index => "user"

       # 文档使用的ID列

       document_id => "%{id}"

    }

}

但是!不能使用上面的配置,会报错的,因为文件里不能出现中文,所有我们要把所有的注释删掉!

但是!不能使用上面的配置,会报错的,因为文件里不能出现中文,所有我们要把所有的注释删掉!

但是!不能使用上面的配置,会报错的,因为文件里不能出现中文,所有我们要把所有的注释删掉!(可用的配置信息我写在最后)

然后我们在bin文件里打开cmd,运行.\logstash -f .\conf\mysql.conf命令。看到这样的截图,就说明Logstash已经在进行数据处理了。

然后我们看一下user索引下的数据,可以看到,数据已经写入了,再对比一下user表的数据,可以看到,所有的user数据已经写入ES了。至此,logstash的基础使用已经可以了。

配置信息:

input {

    stdin {

    }

    jdbc {

    jdbc_connection_string => "jdbc:mysql://localhost:3306/retina"

    jdbc_user => "root"

    jdbc_password => "123456"

    jdbc_driver_library => "D:\elasticSearch\logstash-7.6.0\JDBC\mysql-connector-java-5.1.40-bin.jar"

    jdbc_driver_class => "com.mysql.jdbc.Driver"

 

    use_column_value => true

    tracking_column => id

    record_last_run => true

    last_run_metadata_path=>"D:\elasticSearch\logstash-7.6.0\bin\conf\station_parameter.txt"

    jdbc_paging_enabled => "true"

    jdbc_page_size => "50000"

    statement => "select * from user where id > :sql_last_value "

    schedule => "* * * * *"

    type => "user"

  }

}

filter {}



output {

    elasticsearch {

       hosts => "localhost:9200"

       index => "user"

       document_id => "%{id}"

    }

}

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:

(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

发布了141 篇原创文章 · 获赞 17 · 访问量 8161

猜你喜欢

转载自blog.csdn.net/JKX_geek/article/details/104881224