elk是由Elasticsearch、Logstash、Kibana三个开源组件组合形成的框架。 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
1、环境
(1)操作系统版本:
(2)docker版本:
(3)本次ELK三个组件选择官网最新8.7.1版本
2、安装前准备
(1) docker安装
docker安装参考官网 Install docker on CentOS
(2) 创建一个ELK容器通信专用网络
docker network create elastic
(3) 创建ELK目录,方便容器启动后目录挂载
mkdir -p /etc/{elasticsearch,kibana,logstash}
2、安装elasticsearch
# 拉取elasticsearch 8.7.1镜像
docker pull elasticsearch:8.7.1
# 查看镜像
docker images
3、拉取配置文件
# 启动elasticsearch
docker run -d --name es --net elastic -P -e "discovery.type=single-node" elasticsearch:8.7.1
# 进入容器内
docker exec -it es /bin/bash
# 进入配置文件目录
cd /usr/share/elasticsearch/config
# 容器内工作目录为/usr/share/elasticsearch/config
# 退出容器
# 复制文件
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /etc/elasticsearch/config
# 修改权限
chmod -R 777 /etc/elasticsearch
4、重新启动容器并挂载目录
# 删除临时启动容器
docker rm -f es
# 启动容器挂载目录
docker run -d --name es
--net elastic
-p 9200:9200 -p 9300:9300
-e "discovery.type=single-node"
-v /etc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /etc/elasticsearch/data/:/usr/share/elasticsearch/data
-v /etc/elasticsearch/plugins/:/usr/share/elasticsearch/plugins
--privileged=true elasticsearch:8.7.1
# 查看容器状态
docker ps
# 查看容器日志状态
docker logs -f es
5、验证elasticsearch是否正常启动
curl localhost:9200
有如下打印表示正常启动