前言
大家好,我是小郭,最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
只有学习了,操作了才能算真正的学会使用了,虽然看起来简单,但是里面的流程步骤还是很多的,将步骤和遇到的问
题记录和总结下,今天主要分享下在Docker环境下部署 Elasticsearch 数据库。
# 从零到一搭建ELK日志,在Docker环境下部署 Filebeat 日志收集工具
# 从零到一搭建ELK日志,在Docker环境下部署 logstash 工具
# 从零到一搭建ELK日志,在Docker环境下部署 Kibana 可视化工具
什么是Elasticsearch?
ElasticStack简称为ES, 是一个分布式、高扩展、高实时的搜索与数据分析引擎,是整个ELK架构的核心。
它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。
Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
主要优点
- 处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能;
- 配置相对简单: elasticsearch全部使用JSON接口,logstash使用模块配置,kibana的配置文件部分更简单;
- 检索性能高效: 基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应;
- 集群线性扩展: elasticsearch和logstash都可以灵活线性扩展。
常用场景
- 全文搜索
Elasticsearch提供了全文搜索的功能,适用于电商商品搜索、App搜索、企业内部信息搜索、IT系统搜索等。
- 日志分析
Elasticsearch能够借助Beats、Logstash等快速对接各种常见的数据源,并通过集成的Kibana高效地完成日志的可视化分析,让日志产生价值。
- 运维监控
使用Elasticsearch结合Beats、Logstash或ElasticFlow将所有日志实时集中并构建索引,然后通过集成的Kibana灵活地运用数据构建可视化运维看板
- 安全分析
通过日志解决公司内部繁杂的安全审计工作,可通过Elasticsearch分析、检索海量历史日志,高效地完成安全审计工作
部署ES数据库
- 获取es镜像
docker pull elasticsearch:7.7.1
2. 创造挂载目录
mkdir -p /data/elk/es/config mkdir -p /data/elk/es/data mkdir -p /data/elk/es/logs
3. 赋予权限
chown -R 1000:1000 /data/elk/es
- 进入config创建配置文件
1. touch elasticsearch.yml 2. cluster.name: "my-es" network.host: 0.0.0.0 http.port: 9200
- 启动服务
docker run -it -d -p 9200:9200 -p 9300:9300 --name es -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -e "discovery.type=single-node" --restart=always -v /data/elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elk/es/data:/usr/share/elasticsearch/data -v /data/elk/es/logs:/usr/share/elasticsearch/logs elasticsearch:7.7.1
这里我们需要特别注意的是,做好容器内的文件与第二步创建的挂载目录进行文件夹的映射。
- 验证服务
curl 127.0.0.1:9200
看到这个,就表示我们已经安装成功了
Note:如果安装失败,可以利用docker logs看一下问题
总结
我们主要完成在Docker环境下部署 Elasticsearch 数据库的工作,他是搭建ELK日志非常重要的一部分,将数据写入Elasticsearch后用Kibana进行可视化展示,在后面搭建完Kibana之后,我们再将他们串起来。