社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

(1/2)基于容器化,快速使用ElasticSearch

dotNET跨平台 • 3 年前 • 512 次点击  

Elasticsearch 是一个分布式的、开源的搜索分析引擎,支持各种数据类型,包括文本、数字、地理、结构化、非结构化。

Elasticsearch 是基于 Apache Lucene 的。Elasticsearch 因其简单的 REST API、分布式特性、高速、可扩展而闻名。

Elasticsearch 是 Elastic 产品栈的核心,Elastic 产品栈是个开源工具集合,用于数据接收、存储、分析、可视化。



一、可以用来做什么?

1、可以很好地存储和查询文档,用于应用程序搜索、企业搜索和网站搜索。

2、日志存储和索引

使用 ELK,轻松存储和分析日志。ELK 还通常用于监控基础信息、应用程序性能和使用情况。

3、地理数据存储和分析

在各类场景中,可以抽象出2种数据类型

4、静态数据 Elasticsearch 用作搜索引擎。

5、时间序列数据 时序数据发送到 Elasticsearch,用于产品分析、报告、异常检测 ……

6、一个完整的生态

Elasticsearch 是 Elastic 产品栈的核心。其中的工具可以帮助你实现可视化(Kibana)、接入(Beats、Logstash)和管理存储在 Elasticsearch 中的数据。


二、快速安装

1、拉取镜像

通过docker我们可以快速构建,首先拉取镜像

docker pull elasticsearch:8.4.3docker pull kibana:8.4.3

2、获取配置

这里先临时起一个容器实例, 然后通过命令把容器中的配置拷贝一份出来方便我们做持续化

docker run -d --name elasticsearch -p 9201:9200 -p 9301:9300 -e "discovery.type=single-node" elasticsearch:8.4.3参数说明-d 后台启动–name 起别名即:NAMES-p 9200:9200 将端口映射出来  elasticsearch的9200端口是供外部访问使用;9300端口是供内部访问使用集群间通讯-e "discovery.type=single-node"单节点启动-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 限制内存大小

接着创建持续化目录

mkdir -p {config,data,logs,plugins}

接着从容器中拷贝文件出来

docker cp elasticsearch:/usr/share/elasticsearch/config .docker cp elasticsearch:/usr/share/elasticsearch/logs .docker cp elasticsearch:/usr/share/elasticsearch/data .docker cp elasticsearch:/usr/share/elasticsearch/plugins .

修改配置文件

vi config/elasticsearch.yml

添加如下代码

# 跨域http.cors.allow-origin: "*"http.cors.enabled: truehttp.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

删除临时创建的容器

docker stop elasticsearchdocker rm elasticsearch


3、启动容器

docker run -d --name elasticsearch \-p 9201:9200 \-p 9301:9300 \-e "discovery.type=single-node" \-v logs:/usr/share/elasticsearch/logs \-v data:/usr/share/elasticsearch/data \-v plugins:/usr/share/elasticsearch/plugins \elasticsearch:8.4.3
-v config:/usr/share/elasticsearch/config \


4、测试访问

注意这里需要https访问

https://xxx:9201/

访问提示登录,我们暂时登录,出现一段json就说明创es建成功了

{    "error": {    "root_cause": [    {    "type": "security_exception",    "reason": "missing authentication credentials for REST request [/]",    "header": {    "WWW-Authenticate": [    "Basic realm=\"security\" charset=\"UTF-8\"",    "Bearer realm=\"security\"",    "ApiKey"    ]    }    }    ],    "type": "security_exception",    "reason": "missing authentication credentials for REST request [/]",    "header": {    "WWW-Authenticate": [    "Basic realm=\"security\" charset=\"UTF-8\"",    "Bearer realm=\"security\"",    "ApiKey"    ]    }    },    "status": 401}


三、其他中间件安装

1、Kibana

Kibana是用于Elasticsearch的源可用数据可视化仪表板软件,其OpenSearch的免费和开源继承者是OpenSearch Dashboards


2、临时容器

docker run -d --name kibana -p 5602:5601 kibana:8.4.3


3、拷贝配置

mkdir -p configdocker cp kibana:/usr/share/kibana/config .


4、修改配置

修改配置

vi config/kibana.yml

修改es的访问端口和ip,添加中文配置

server.host: "0.0.0.0"server.shutdownTimeout: "5s"elasticsearch.hosts: [ "https://192.168.0.1:9201" ]monitoring.ui.container.elasticsearch.enabled: truei18n.locale: "zh-CN"


5、删除临时容器

docker stop kibanadocker rm kibanadocker run -d --name kibana -p 5602:5601 -v config:/usr/share/kibana/config kibana:8.4.3

6、获取es访问token

进入elasticsearch容器获取token

docker exec -it elasticsearch /bin/bashbin/elasticsearch-create-enrollment-token --scope kibana

获取一段类似下面的代码

eyJ2ZXIiOiI4LjQuMyIsImFkciI6WyIxNzIuMTcuMC42OjkyMDAiXSwiZmdyIjoiNDY3ZTE2MDlkNmU5MzIxYzFkZmNmNDNkYjRkMmNiZDJlNjllYzk2NjBiNjU2NWJmZWQzY2EwNGUwNjA2ZDEzMSIsImtleSI6Im4zem1Ob1FCRlozMXhIOEhMZy1uOjZKRURDUXphUll5a1BVa1JaalFrYVEifQ==

7、获取验证

当验证estoken后,让你输入kibana的六位数随机码,此时我们需要登录kibana容器

docker exec -it kibana /bin/bash


    

执行获取验证码命令

bash bin/kibana-verification-code

8、获取es登录密码

登录es容器

docker exec -it elasticsearch /bin/bash

重置elastic的密码

bash bin/elasticsearch-reset-password -u elastic

此时会让你输入y确定,New value后面就是生成密码

This tool will reset the password of the [elastic] user to an autogenerated value. 
The password will be printed in the console. 
Please confirm that you would like to continue [y/N]
y
Password for the [elastic] user successfully reset. 
New value: hAs4NSGDoNrnjfzmSWy1



9、登录成功

登录确认页面,

默认的情况是添加 integrations。这个是用来导入数据到 Elasticsearch 中的。

点击 Explore on my own:

这样就成功地进入到 Kibana 界面。

至此,我们已经成功地通过 docker 启动了 Elasticsearch 及 Kibana



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/151872