一、ELK简介
Elastic Stack(也称为 ELK Stack)是公认的日志监测领域的领导者,拥有业界最广泛、最全面的系列日志数据源,是备受欢迎的免费开放日志平台。官网地址为:Elasticsearch:官方分布式搜索和分析引擎 | Elastic
ELK Stack是软件集合Elasticsearch、Logstash、Kibana的简称,用于对日志文件数据进行抽取、分析、存储、展示的日志引擎。
- Elasticsearch:
支持全文索引的分布式存储和索引引擎,用于存储从Logstash或Beats接收到的数据
- Logstash:
日志分析工具,用来对日志数据进行分析和过滤,将处理后的数据发送给Elasticsearch
- Kibana:
可视化工具,主要负责查询 Elasticsearch 的数据并以可视化的方式展现给业务方
- Beats:
通过配置文件指定数据源和输出目标,然后定期从数据源采集数据,并将数据发送到Logstash或Elasticsearch。 Beats比Logstash更轻量、性能更高,常用工具包括:FileBeat、Metricbeat、Packetbeat等
ELK框架如下:
二、docker安装Elasticsearch
官网安装说明:
Install Elasticsearch with Docker | Elasticsearch Guide [8.15] | Elastic
注意:首先看官网安装步骤及说明。我之前在docker中直接拉取的 elasticsearch 镜像,安装后容器总是在重启中,可能是环境配置项与elasticsearch版本不符(发现是5年前创建的版本)。最后拉取最新的8.15.0版本才解决,所以首先根据官网说明操作,避免无谓的踩坑!
2.1 创建Docker网络
需要Elasticsearch与Kinaba容器互联,因此首先创建网络,以便能直接通过容器名相互访问:
docker network create elk_net
2.2 拉取镜像
在Elasticsearch官网中查找最新版本,以目前的8.15.0版本为例:
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.15.0
2.3 创建挂载目录
# 新增宿主机目录,用于保存es配置文件及数据
mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
# 增加读写权限
chmod 777 /usr/local/es/data
chmod 777 /usr/local/es/config
chmod 777 /usr/local/es/plugins
2.4 添加配置文件
新建elasticsearch.yml文件
vim /usr/local/es/config/elasticsearch.yml
在编辑框中输入以下配置内容,然后按esc键退出编辑模式,输入:wq保存并退出
cluster.name: "elastic" # es集群名称
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
#开启密码校验,若开启就必须要设置密码
xpack.security.enabled: false
2.5 创建es容器
docker run --name es -p 9200:9200 -p 9300:9300 \
--network elk_net \
--restart=always \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
--privileged \
-v /usr/local/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticse