一、安装logstash

1.1安装logstash7.3.2版本

国庆节的前几天下载了elasticsearch和kibana,当时elastic stack系列最新版本还是7.3.2,当时只下载了elasticsearch和kibana的最新版7.3.2练习,今天,项目中需要用到logstash收集数据信息,进入官网,发现就在今天10月2日,官网发布了新版本7.4版本,我们知道使用ELK,需要版本一致,这下好了,发布了7.4版本,一时不知道去哪里下载7.3.2版本了。

找了好久,终于找到了了一个方法:

使用这些url下载目前可以完美解决下载ELK以往版本的问题:

根据所需要的版本,更换版本号,即可下载。

- https://artifacts.elastic.co/downloads/kibana/kibana-6.7.2-linux-x86_64.tar.gz

- https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.2-linux-x86_64.tar.gz

-  https://artifacts.elastic.co/downloads/logstash/logstash-6.7.2.tar.gz

- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.tar.gz

windows版本,将tar.gz替换成zip就可以了。

使用这种方法成功下载了window版本的logstash7.3.2版本。

 1.2 安装logstash-input-jdbc

logstash-input-jdbc 是ruby开发的,先下载ruby并安装
下载地址: https://rubyinstaller.org/downloads/

官网下载选择有好几种,选择不带开发工具的安装包即可,安装ruby2.6.4(x64),这里不需要安装带开发工具的ruby,因为带开发工具的ruby安装包邮100多兆,官网下载非常缓慢,而不带开发工具的版本,只有十几兆,下载相对快一些,使用迅雷要比使用chrome下载快一些。

下载之后是一个exe文件,安装即可。

安装完成查看是否安装成功,在cmd窗口输入:ruby -v

出现版本号2.6.4,安装成功。

logstash7.x版本本身不带logstash-input-jdbc插件,需要手动安装

进入logstash安装目录的bin目录下,输入:logstash-plugin.bat  install logstash-input-jdbc

注意,使用批处理文件logstash-plugin.bat安装插件,logstash的安装路径不能有中文,我今天安装的时候,因为使用的是迅雷下载的,所以文件默认放在了迅雷下载这个目录下,即路径为D:\迅雷下载\logstash-7.3.2\bin

然后安装插件,就会报错:

ArgumentError: invalid byte sequence in US-ASCII =~ at org/jruby/

1.3 创建模板文件
Logstash的工作是从MySQL中读取数据,向ES中创建索引,这里需要提前创建mapping的模板文件以便logstash
使用。
在logstach的config目录创建xiaomifeng1010_template.json,内容如下:
目录是:D:/ELK/logstash-7.3.2/config/xiaomifeng1010_template.json

{"mappings" : {"doc" : {"properties" : {"charge" : {"type" : "keyword"},"description" : {"analyzer" : "ik_max_word","search_analyzer" : "ik_smart","type" : "text"},"end_time" : {"format" : "yyyy-MM-dd HH:mm:ss","type" : "date"},"expires" : {"format" : "yyyy-MM-dd HH:mm:ss","type" : "date"},"grade" : {"type" : "keyword"},"id" : {"type" : "keyword"},"mt" : {"type" : "keyword"},"name" : {"analyzer" : "ik_max_word","search_analyzer" : "ik_smart","type" : "text"},"pic" : {"index" : false,"type" : "keyword"},"price" : {"type" : "float"},"price_old" : {"type" : "float"},"pub_time" : {"format" : "yyyy-MM-dd HH:mm:ss","type" : "date"},"qq" : {"index" : false,"type" : "keyword"},"st" : {"type" : "keyword"},"start_time" : {"format" : "yyyy-MM-dd HH:mm:ss","type" : "date"},"status" : {"type" : "keyword"},"studymodel" : {"type" : "keyword"},"teachmode" : {"type" : "keyword"},"teachplan" : {"analyzer" : "ik_max_word","search_analyzer" : "ik_smart","type" : "text"},"users" : {"index" : false,"type" : "text"},"valid" : {"type" : "keyword"}}}},"template" : "xiaomifeng1010"
}

1.4 配置mysql.conf
在logstash的config目录下配置mysql.conf文件供logstash使用,logstash会根据mysql.conf文件的配置的地址从
MySQL中读取数据向ES中写入索引。
参考https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html
配置输入数据源和输出数据源。

input {stdin {}jdbc {jdbc_connection_string => "jdbc:mysql://localhost:3306/xiaomifeng1010?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"# the user we wish to excute our statement asjdbc_user => "root"jdbc_password => "123456"# the path to our downloaded jdbc driver  jdbc_driver_library => "C:\Users\MSI\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar"# the name of the driver class for mysqljdbc_driver_class => "com.mysql.jdbc.Driver"jdbc_paging_enabled => "true"jdbc_page_size => "50000"#要执行的sql文件#statement_filepath => "/conf/course.sql"statement => "select * from course_pub where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)"#定时配置schedule => "* * * * *"record_last_run => truelast_run_metadata_path => "D:/ELK/logstash-7.3.2/config/logstash_metadata"}
}output {elasticsearch {#ES的ip地址和端口hosts => "localhost:9200"#hosts => ["localhost:9200","localhost:9202","localhost:9203"]#ES索引库名称index => "xc_course"document_id => "%{id}"document_type => "doc"template =>"D:/ELK/logstash-7.3.2/config/xiaomifeng1010_template.json"template_name =>"xiaomifeng1010"template_overwrite =>"true"}stdout {#日志输出codec => json_lines}
}

说明:
1、ES采用UTC时区问题
ES采用UTC 时区,比北京时间早8小时,所以ES读取数据时让最后更新时间加8小时
where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)
2、logstash每个执行完成会在D:/ELK/logstash-7.3.2/config/logstash_metadata记录执行时间下次以此
时间为基准进行增量同步数据到索引库。

配置数据源以及查询的表:

DROP TABLE IF EXISTS `course_pub`;CREATE TABLE `course_pub` (`id` varchar(32) NOT NULL COMMENT '主键',`name` varchar(32) NOT NULL COMMENT '课程名称',`users` varchar(500) NOT NULL COMMENT '适用人群',`mt` varchar(32) NOT NULL COMMENT '大分类',`st` varchar(32) NOT NULL COMMENT '小分类',`grade` varchar(32) NOT NULL COMMENT '课程等级',`studymodel` varchar(32) NOT NULL COMMENT '学习模式',`teachmode` varchar(32) DEFAULT NULL COMMENT '教育模式',`description` text NOT NULL COMMENT '课程介绍',`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '时间戳logstash使用',`charge` varchar(32) NOT NULL COMMENT '收费规则,对应数据字典',`valid` varchar(32) NOT NULL COMMENT '有效性,对应数据字典',`qq` varchar(32) DEFAULT NULL COMMENT '咨询qq',`price` float(10,2) DEFAULT NULL COMMENT '价格',`price_old` float(10,2) DEFAULT NULL COMMENT '原价格',`expires` varchar(32) DEFAULT NULL COMMENT '过期时间',`start_time` varchar(32) DEFAULT NULL COMMENT '课程有效期-开始时间',`end_time` varchar(32) DEFAULT NULL COMMENT '课程有效期-结束时间',`pic` varchar(500) DEFAULT NULL COMMENT '课程图片',`teachplan` text NOT NULL COMMENT '课程计划',`pub_time` varchar(32) DEFAULT NULL COMMENT '发布时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `course_pub` */insert  into `course_pub`(`id`,`name`,`users`,`mt`,`st`,`grade`,`studymodel`,`teachmode`,`description`,`timestamp`,`charge`,`valid`,`qq`,`price`,`price_old`,`expires`,`start_time`,`end_time`,`pic`,`teachplan`,`pub_time`) values ('297e7c7c62b888f00162b8a7dec20000','test_java基础33','java爱好者d','1-3','1-3-3','200002','201002',NULL,'test_java基础33test_java基础33test_java基础33','2018-04-27 22:57:24','203002','204002','32432',55.00,NULL,NULL,NULL,NULL,'group1/M00/00/02/wKhlQFrQfNqAL0d_AALDG1Ia4xE439.png','','2018-04-26 16:57:23'),('297e7c7c62b888f00162b8a965510001','test_java基础','test_java基础','1-3','1-3-2','200001','201001',NULL,'test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2test_java基础2','2018-04-27 22:57:24','203001','204001','443242',NULL,NULL,NULL,NULL,NULL,'group1/M00/00/00/wKhlQFrZS2aACA0LAAAxkpcK7CQ874.jpg','java基础语法 ','2018-04-25 19:11:35'),('297e7c7c62b8aa9d0162b8ab13910000','java基础3','java基础3','1-3','1-3-2','200001','201001',NULL,'java基础3java基础3java基础3java基础3java基础3java基础3','2018-04-27 22:57:24','203001','204001',NULL,NULL,NULL,NULL,NULL,NULL,'group1/M00/00/00/wKhlQFrZS2aACA0LAAAxkpcK7CQ874.jpg','','2018-04-26 17:10:55'),('402885816243d2dd016243f24c030002','大数据','具有一定的java基础','1-6','1-6-1','200001','201001',NULL,'111111大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据大数据','2018-05-26 16:49:33','203002','204001',NULL,99.00,199.00,NULL,NULL,NULL,'group1/M00/00/02/wKhlQFrQfNqAL0d_AALDG1Ia4xE439.png','第一节 ','2018-04-25 19:11:35'),('4028858162e0bc0a0162e0bfdf1a0000','人工智能+python','小白','1-6','1-6-5','200002','201001',NULL,'人工智能+python非常不错!!!','2018-04-27 22:57:24','203002','204002','45323453',198.00,NULL,NULL,NULL,NULL,'group1/M00/00/00/wKhlQFrZS2aACA0LAAAxkpcK7CQ874.jpg','','2018-04-25 19:11:35'),('4028e581617f945f01617f9dabc40000','Bootstrap开发框架','','1-1','1-1-1','200002','201001',NULL,'Bootstrap是由Twitter推出的一个前台页面开发框架,在行业之中使用较为广泛。此开发框架包含了大量的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的精美界面效果。','2018-05-05 19:24:41','203002','204001','4455432',0.01,NULL,NULL,NULL,NULL,'group1/M00/00/01/wKhlQFqO0OGAFyhGAAA-8SWa8Qc537.jpg','计算机原理 计算机硬件 计算机软件 计算机编程入门 java语法介绍 Hello World 数据库编程 操作系统原理 操作系统类型介绍 操作系统原理 ','2018-04-25 19:11:35'),('4028e58161bcf7f40161bcf8b77c0000','spring cloud实战','所有人','1-3','1-3-2','200003','201001','','本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。','2018-04-27 22:57:24','203002','204002','54354353',0.01,NULL,NULL,NULL,NULL,'group1/M00/00/01/wKhlQFqO2HqAA6sPAAArlhJed-w088.jpg','微服务架构入门 为什么要使用微服务:单体架构的特点 为什么要使用微服务:微服务的优缺点 spring cloud 基础入门 为什么要选择spring cloud? 为什么springcloud要设计一套新的版本升级规则? 实战-Spring Boot 为什么越来越多的开发者选择使用spring boot?它解决了什么问题? spring boot的入门例子 注册中心Eureka 微服务架构为什么需要注册中心,它解决了什么问题?  一个Eureka注册中心的入门例子 ','2018-04-25 19:11:35'),('4028e58161bd22e60161bd23672a0001','Javascript之VueJS','所有人','1-1','1-1-9','200002','201001','','Vue系列课程:从Vue1.0讲到Vue2.0,从理论讲到实战,理论与案例巧妙结合,让课程更容易理解!','2018-04-27 16:57:24','203002','204001','4324322',0.01,NULL,NULL,NULL,NULL,'group1/M00/00/01/wKhlQFqO4MmAOP53AAAcwDwm6SU490.jpg','Vuejs 第一讲 第一节 vue基础、常用指令、bootstrap+vue的简易留言 第二节 属性和事件、模板、交互、案例 Vuejs 第二讲 第一节 计算属性的使用、vue实例的简单方法、提高循环的性能,让重复数据显示出来 第二节 自定义过滤器、自定义指令 、自定义键盘事件、数据的监听 Vuejs 第三讲 ','2018-04-25 19:11:35'),('4028e58161bd3b380161bd3bcd2f0000','Redis从入门到项目实战','','1-3','1-3-2','200002','201001',NULL,'redis在当前的大型网站和500强企业中,已被广泛应用。 redis是基于内存的key-value数据库,比传统的关系型数据库在性能方面有非常大的优势。 肖老师这套视频,精选了redis在实际项目中的十几个应用场景。通过本课程的学习,可以让学员快速掌握redis在实际项目中如何应用。 作为架构师,redis是必须要掌握的技能!','2018-05-16 18:55:36','203002','204001','32432432',0.01,NULL,NULL,NULL,NULL,'group1/M00/00/01/wKhlQFqO5yqAQMozAAAqor3lyz0082.jpg','第一章:redis简介 第一节 NoSQL简介 第二节 认识Redis 第二章:redis的安装与配置 第三章:Redis数据操作 第四章:Redis进阶操作 第五章:Redis主从配置 ','2018-04-25 19:11:35');

创建的数据库xiaomifeng1010,数据表course_pub

1.5 测试
启动logstash.bat:
直接在cmd窗口输入logstash.bat会报错:

sending Logstash's logs to D:/ELK/logstash-7.3.2/logs which is now configuredvia log4j2.propertiesERROR: Pipelines YAML file is empty. Location: D:/kibana/logstash-7.3.2/config/pipelines.ymlusage:bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]bin/logstash --modules MODULE_NAME [-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.VARIABLE_NAME=VALUE"] [-t] [-w COUNT] [-l LOG]bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG]bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]bin/logstash --help[2018-12-14T16:16:10,809][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

会提示pipeline.yml文件为空白,该文件默认情况下,全文注释,所以直接启动logstash.bat,找不到pipeline,报错。

打开pipeline.yml文件

然后再次启动logstash.bat

开始测试mysql.conf文件

数据已经全部查询出来了

安装logstash7.3.2遇到的坑及解决方案相关推荐

  1. linux 查看显卡信号_Ubuntu 16.04安装nvidia显卡驱动以及各种坑(包含解决方案)

    首先,nvidia显卡驱动可有3种安装方法,ppa源命令行安装.安装CUDA时顺便安装驱动(没测试过不多详解)和手动run文件进行安装(本人run文件安装).(以安装nvidia-450版本为例) 0 ...

  2. ELasticSearch安装使用过程中遇到的坑的解决方案,以及使用Kibana操作ELasticSearch

    一.安装elasticsearch和kibana 安装elasticsearch和kibana,我现在使用的是windows版本的,安装其实也不难,具体的安装教程可以参照这两篇博客,写的安装步骤也很详 ...

  3. 【转载】python3安装scrapy之windows32位爬坑

    python3安装scrapy之windows32位爬坑 原创 2016年11月06日 01:38:08 标签: scrapy / windows / python / 开源框架 / 网络爬虫 早就听 ...

  4. linux-ubuntu 安装mysql5.7.19的一些坑

    2019独角兽企业重金招聘Python工程师标准>>> linux-ubuntu 安装mysql5.7.19的一些坑 在linux下安装MySQL有很多介绍,流程大同小异,但往往一些 ...

  5. win10想说爱你不容易——安装.net3.5也是一个坑(已有完美解决方法)

    win10想说爱你不容易--安装.net3.5也是一个坑(已有完美解决方法) 参考文章: (1)win10想说爱你不容易--安装.net3.5也是一个坑(已有完美解决方法) (2)https://ww ...

  6. 安装logstash-7.9.3和filebeat-7.9.3

    软件来自上篇文章:cent os7 安装elasticsearch-7.9.3(伪集群)和kibana-7.9.3 上传 logstash-7.9.3和filebeat-7.9.3 到 /usr/lo ...

  7. kali2021.1安装pdtools挤牙膏式爬坑日记

    kali2021.1安装pdtools挤牙膏式爬坑日记 本人电脑为macOS Big Sur 11.1 parallels Desktop为16.1.1 首先,感谢两位大佬的博客,由于我出现的问题比较 ...

  8. 暗影骑士擎Pro 之 安装Ubuntu18.04 双系统 踩坑记录(一)

    ​ 最近新买了个笔记本,即文章名字:Acer的暗影骑士擎Pro.考虑到学校附近也有几家宏基的官方售后店,万一出问题售后也好解决,然后就买了.因为我研究生阶段主要都用Ubuntu,所以必然得给他装个双系 ...

  9. 树莓派4 安装OPENCV3全过程(各种踩坑和报错)

    树莓派4 安装OPENCV3全过程(各种踩坑和报错) 说明 第一步更换源 第二部:存储空间的一些说明和操作 第三步:增加交换空间 第四步:下载工具及包 第五步:设置编译编译参数 第六步:开始编译 第六 ...

最新文章

  1. Python面试题集合
  2. python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
  3. Linux用户态协议栈好处,关于用户态协议栈的思考
  4. 微信小程序——添加按钮格式
  5. 对拉格朗日乘子法与KKT的理解
  6. YBTOJ洛谷P2042:维护数列(平衡树)
  7. 找不到android的sdk,CircleCI – 找不到Android Studio项目的SDK位置
  8. 微服务升级_SpringCloud Alibaba工作笔记0002---理解反应式编程中的背压(Backpressure)机_流的逆向压力
  9. golang json string remove field
  10. Redis cluster Hget hash field value异常分析案例--一个空格带来的惨案
  11. MySQL8.0.26的时候解压libs文件出现错误:依赖检测失败:mariadb-libs 被 mysql-community-libs-8.0.26-1.el7.x86_64 取代
  12. VCN中文编程平台的优势(三)——企业的社会责任
  13. assign和weak之间的区别
  14. 计算机网络路由器配置实验怎么做,计算机网络路由器配置实验
  15. 等腰杨辉三角C语言实现
  16. matlab导入示波器multisim,Multisim中示波器的使用方法
  17. C++代码秀(你干嘛!!!哎呦!!!)
  18. php防止恶意刷新与刷票的方法
  19. layui数据表格中导出所有数据的简易解决办法
  20. ASP.NET多文件批量打包下载

热门文章

  1. win8系统电脑中病毒了怎么办,如何解决win8电脑中毒
  2. 非平衡电桥电阻计算_绝缘检测电桥法中的几个重要概念
  3. python django异步访问_初试Ajax异步请求(基于Django框架)
  4. 力扣——Pow(x, n)
  5. onmouseover+onmouseout :表格隔行变色
  6. JavaScript:变量提升作用域
  7. Opencv之python使用zxing识别二维码
  8. 自动生成相机标定轨迹
  9. 计算机技能测试题6,2016年10月自考计算机网络技术练习题及答案(6)
  10. mysql获取一行中多列的最大值_SQL 获取一行中多个字段的最大值