ELK环境搭建ElasticSearch7.8.0+Logstash7.8.0+Kibana7.8.0

ELK 就是 Elasticsearch、Logstash 和 Kibana 三个软件的首字母简写,ELK可以理解为集日志(数据)收集、分析、展示的一个系统。

我这边用的ELK版本是:elasticsearch-7.8.0、kibana-7.8.0-windows-x86、logstash-7.8.0,三个版本要一致才行。我们在elastic中文社区的下载中心可以下载到各个版本的我们需要用到的安装包,下载中心地址:https://elasticsearch.cn/download/

一:Elasticsearch篇

1.yml配置

在confg目录下找到elasticsearch.yml,进行简单的配置

http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true

在config目录下找到jvm.options,设置编码为GBK,不然控制台输出会乱码

-Dfile.encoding=GBK

2.启动 

cd 到bin目录

执行elasticsearch命令,es就启动了

启动成功后访问localhost:9200,返回如下页面

3.安装head插件

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。此插件依赖于nodejs,所以先要安装好node环境

git clone git://github.com/mobz/elasticsearch-head.git

cd 到克隆的head目录下

npm install

npm run start

然后访问http://localhost:9100/

4.安装ik分词器 

ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

我们需要下载和elastic版本一致的ik版本,下载后,解压,放在elastic的plugins目录下,重启elastic即可

二:Logstash篇

1.配置

我们下载,解压我们的logstash安装包后,cd 到lib包下面,把jdbc的驱动包丢进去

2.配置

cd到config目录下,然后新建一个conf文件,写我们数据同步的配置

这里我根据索引的名字建了给文件夹business_order,然后将配置都放在了这个文件夹

mysql.conf里写同步数据的配置

input{
    jdbc{
		# 数据库驱动包存放路径
        jdbc_driver_library => "D:\dev\logstash-7.8.0\lib\driver\mysql-connector-java-8.0.19.jar"
		# 数据库驱动器;
        jdbc_driver_class => "Java::com.mysql.cj.jdbc.Driver"
		# 数据库连接方式
        jdbc_connection_string => "jdbc:mysql://localhost:3306/xfyd_account_web?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
		# 数据库用户名
        jdbc_user => "root"
		# 数据库密码
        jdbc_password => "root"
		# 数据库重连尝试次数
		connection_retry_attempts => "3"
		# 判断数据库连接是否可用,默认false不开启
		jdbc_validate_connection => "true"
		# 数据库连接可用校验超时时间,默认3600s
		jdbc_validation_timeout => "3600"
		# 开启分页查询(默认false不开启)
        jdbc_paging_enabled => "true"
		# 单次分页查询条数(默认100000,若字段较多且更新频率较高,建议调低此值)
        jdbc_page_size => "100000"
		# statement为查询数据sql,如果sql较复杂,建议通过statement_filepath配置sql文件的存放路径
        statement_filepath => "D:\dev\logstash-7.8.0\config\business_order\jdbc.sql"
		#statement => "SELECT * FROM partner_business_order WHERE updated_time >= :sql_last_value order by id asc"

		# 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
		lowercase_column_names => false
		# 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中
		record_last_run => true
		# 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值
		use_column_value => true
		record_last_run => true
		# 查询结果某字段的数据类型,仅包括numeric和timestamp,默认为numeric
		tracking_column_type => numeric
		# 需要记录的字段,用于增量同步,需是数据库字段
		tracking_column => "updated_time"
		# 记录上次执行结果数据的存放位置
		last_run_metadata_path => "D:\dev\logstash-7.8.0\config\business_order\last_value_meta.txt"
		# 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false
		clean_run => false
		# 同步频率(分 时 天 月 年),默认每分钟同步一次
        schedule => "* * * * *"
		
    }
	 
}

output{
	elasticsearch{
			# ES地址,集群中多个地址可用数组形式:hosts => ["localhost:9200"]
			hosts => "localhost:9200"
			# 索引名称
			index => "business_order"
			# 数据唯一索引(建议同数据库表的唯一ID对应)
			document_id => "%{id}"
			#如果设置为true,模板名字一样的时候,新的模板会覆盖旧的模板
			template_overwrite => true 
            template_name => "my_template" #注意这个名字是用来查找映射配置的,尽量设置成全局唯一的
			#映射配置文件的位置
			template => "D:\dev\logstash-7.8.0\config\template\logstash-ik.json"
			#关闭logstash自动管理模板功能 
			manage_template =>  true

		
	}
	

}

然后新建一个last_value_meta.txt的文件,这个里面用来记录上次运行到的标记位置,里面的格式是这样的--- 1608200297371,我们可以在初始同步的时候,指定这个数字。

这里,我们将同步的sql单独写在了jdbc.sql文件里,方便维护。jdbc.sql内容如下:

SELECT id,app_id,order_no,created_by,created_time,updated_by,updated_time,deleted,handle_status,
platform_code,partner_info_id,common_reward,advanced_reward FROM partner_business_order 
WHERE updated_time >= :sql_last_value order by id asc

3.启动

cd到bin目录下

执行命令 logstash -f ../config/business_order/mysql.conf

如果启动失败,可以使用-t命令来查看报错信息,如:logstash -f ../config/business_order/mysql.conf -t

这个启动时间比较久,稍等1分钟,就能看到控制台打印出来我们同步的sql,这样就开始同步数据了。

三:Kibana篇

1.配置

下载,解压kibana后,在config文件夹下,修改kibana.yml

server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

2.启动

cd到bin目录下

执行命令kibana

3.devlTool的使用

我们访问http://localhost:5601,在kibana主页,点击Devtools菜单,然后我们就可以在这里执行elastic的命令了

左边是我们的控制台,选中ya要执行的命令行,然后点击小三角按钮,右边就显示了我们的响应。

至此,我们的elk就搭建完毕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李秀才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值