# 《Seckill秒杀系统》第107章:快速搭建ELK环境并导入配置
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★☆☆☆
- 本章重点:掌握快速搭建ELK环境的方式方法,并通过规范日志的输出格式,设置规范化的ELK配置,并能够将日志治理的方案和实现方式灵活应用到自身实际项目中。
大家好,我是冰河~~
日志治理是秒杀系统建设过程中非常重要的一环,通过日志治理,我们不仅可以快速查看系统的运行情况,更能够快速了解到系统出问题的故障点,并能够直观的观测到系统的性能瓶颈,进而快速处理系统问题和优化系统性能。
# 一、前言
在前面的文章中,我们系统的讲述了日志治理的基本知识、原则与架构,有了这些理论知识作为指导,接下来,我们就需要对秒杀系统的日志治理进行落地实现。通过可视化、可观测的方式对日志进行管理和监控,能够第一时间发现系统的问题和性能瓶颈,进而快速处理和解决问题并优化系统性能。
# 二、本章诉求
快速搭建ELK环境,并在搭建好的ELK环境上,导入日志规范化的配置。了解日志规范化为日志治理带来的好处,通过本章的学习,重点掌握日志治理的落地实现方案,并能够将其灵活应用到自身实际项目中。
# 三、搭建ELK环境
为了更好的让大家搭建ELK环境实现秒杀系统的日志治理功能,这里,我单独将基于docker-compose搭建ELK环境的配置分离出来,放到了项目的environment
目录下,命名为docker-compose-elk.yml配置文件,搭建ELK环境的具体步骤如下所示。
(1)新建docker-compose-elk.yml配置文件
docker-compose-elk.yml配置文件文件详见:seckill秒杀系统工程的environment/docker-compose-elk.yml
,文件的内容如下所示。
version: '3.2'
networks:
binghe-network:
driver: bridge
volumes:
prometheus_data: {}
services:
elasticsearch:
image: elasticsearch:7.14.2
container_name: elasticsearch
volumes:
- ./config/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
discovery.type: single-node
networks:
- binghe-network
logstash:
image: logstash:7.14.2
container_name: logstash
volumes:
- ./config/elk/logstash.yml:/usr/share/logstash/config/logstash.yml
- ./config/elk/pipeline:/usr/share/logstash/pipeline
ports:
- "5044:5044"
- "5000:5000/tcp"
- "5000:5000/udp"
- "9600:9600"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- binghe-network
depends_on:
- elasticsearch
kibana:
image: kibana:7.14.2
container_name: kibana
volumes:
- ./config/elk/kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- "5601:5601"
networks:
- binghe-network
depends_on:
- elasticsearch
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
可以看到,在docker-compose-elk.yml配置文件中,只包含搭建ELK相关的环境。
(2)上传配置文件
注意:这里需要将seckill秒杀系统工程下的environment
整个目录都上传到CentOS服务器,不要上传单独的配置文件。
(3)启动ELK环境
上传environment整个目录到服务器上之后,登录服务器终端,将当前命令行所在目录切换到上传的environment目录下,随后输入如下命令启动ELK环境。
docker-compose -f docker-compose-elk.yml up -d --force-recreate
如果命令行输出了如下日志,则表示ELK环境启动成功。
[+] Running 4/4
✔ Network environment_binghe-network Created 0.0s
✔ Container elasticsearch Started 1.0s
✔ Container logstash Started 2.6s
✔ Container kibana Started
2
3
4
5
(4)查看启动的Docker容器
在命令行输入docker ps
命令查看ELK Docker容器是否启动成功,如下所示。
# 查看完整文章
加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码