- 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
前言
首先咱们先来说说日志在我们平时开发中有多么的重要,尤其在生产环境中,不方便调试的时候,日志能让我们快速的定位问题,也能让我们及时监测系统出现的一些异常问题。
今天主要给大家介绍一个可视化日志平台 ELK(Elasticsearch、Logstash和Kibana三个开源软件的缩写),ELK官网网址
ELK是一个集日志收集、搜索、日志聚合和日志分析于一身的完整解决方案。
- Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。
- Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,并将输出结果存储到指定位置上。
- Kibana 是一个免费且开放的用户界面,能够对 Elasticsearch 数据进行可视化,可以进行各种操作,以及跟踪查询负载等等
安装Elasticsearch
本文使用Docker安装,对Docker不熟悉的可以观看此文 Docker基础
- 先安装Elasticsearch
docker network create elastic //创建一个将运行 Elastic Stack 的 elastic 网络
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.4.2 //Docker Hub上最新为8.4.2
- 运行,可选
-e ES_JAVA_OPTS="-Xms1g -Xmx1g"
设置 JVM 堆大小的值
docker run --name es01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.4.2
运行会得到一些基础默认配置信息
- 安装可能遇到的问题
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],使用命令行输入下面命令即可。
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
exit
- 使用账号密码访问 【 https://127.0.0.1:9200 】
Kibana安装
docker pull docker.elastic.co/kibana/kibana:8.3.3 //拉取镜像
docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.3.3 //运行容器
使用【 http://127.0.0.1:5601 】能正常访问面板即安装成功
面板访问需要安装Elasticsearch终端提供的Kibana Token粘贴点击 Configure Elastic
- 输入验证码
- 进入Login页面,输入Elasticsearch账号密码
- 进入面板
Token有效期为30分钟,使用
bin/elasticsearch-create-enrollment-token --s kibana
可以重新获取
安装Logstash
docker.elastic.co/logstash/logstash:8.4.2
//运行logstash容器 开放端口映射 9600 4500
docker run -it -d --name=logstash -p 9600:9600 -p 4560:4560 docker.elastic.co/logstash/logstash:8.4.2
总结
本文为ELK全家桶使用Docker安装教程,需要一定的Docker基础,如果遇到问题可以查阅官方文档逐步解决即可。ELK架构使用相对比较灵活, Kibana的配置也非常简单,并且可以达到百亿级数据的查询秒级响应,而且扩展性非常强,UI也非常不错哦,后续会出一篇后端如何接入ELK进行日志管理!!!