OpenSearch开发环境安装Docker和Docker-Compose两种方式

2023-11-23 13:20

本文主要是介绍OpenSearch开发环境安装Docker和Docker-Compose两种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 简介
    • 常用请求
      • 创建映射
      • 写入数据
      • 查询数据
      • 其他
  • 安装
    • Docker方式
      • 安装OpenSearch
      • 安装OpenSearchDashboard
    • Docker-Compose方式
      • Docker-Compose安装
      • 1.设置主机环境
      • 2.下载docker-compose.yml文件
      • 3.启动docker-compose
      • 4.验证
    • 问题
      • 问题1:IPv4 forwarding is disabled. Networking will not work
      • 问题2:OpenSearch Dashboards 启用中文界面

简介

官网

  • https://opensearch.org/

  • https://opensearch.org/docs/2.7/

这里我以2.7版本示例

前提docker已完成安装

我的业务数据是个json如下:

{"title": "The Wind Rises","created_on": "2023-11-22T09:28:48+00:00","type": "order","user": "eddie","price": 24.99
}

当添加到opensearch时,OpenSearch 会添加一些元数据如下:

{"_index": "<index-name>","_type": "_doc","_id": "<document-id>","_version": 1,"_source": {"title": "The Wind Rises","created_on": "2023-11-22T09:28:48+00:00","type": "order","user": "eddie","price": 24.99}
}

常用请求

在Dev Tools执行

创建映射

PUT laker-index
{"mappings": {"properties": {"title": {"type": "text"},"created_on": {"type": "date"},"type": {"type": "keyword"},"user": {"type": "keyword"},"price": {"type": "half_float"}}}
}

写入数据

POST _bulk
{"index":{"_index":"laker-index","_id":0}}
{"title":"The Wind Rises today is nice day","created_on":"2023-11-21T09:28:48+00:00","type":"order","user":"eddie","price":24.99}
{"index":{"_index":"laker-index","_id":1}}
{"title":"The Wind Rises","created_on":"2023-11-22T09:28:48+00:00","type":"sale","user":"eddie","price":4.99}
{"index":{"_index":"laker-index","_id":2}}
{"title":"The Wind Rises hello ","created_on":"2023-11-23T09:28:48+00:00","type":"order","user":"laker","price":34.99}
{"index":{"_index":"laker-index","_id":3}}
{"title":"The Wind Rises laker","created_on":"2023-11-22T09:28:48+00:00","type":"sale","user":"laker","price":14.99}
{"index":{"_index":"laker-index","_id":4}}
{"title":"The Wind Rises laker","created_on":"2023-11-21T09:28:48+00:00","type":"order","user":"laker","price":44.99}

查询数据

GET laker-index/_search
{"size": 1,"query": {"match": {"title": "Rises"}}
}

其他

# 创建映射 mapping
PUT sample-index1
{"mappings": {"properties": {"year":    { "type" : "text" },"age":     { "type" : "integer" },"director":{ "type" : "text" },"ip_address" : {"type" : "ip","ignore_malformed": true},"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}}
}
# 将映射添加到现有索引
POST sample-index1/_mapping
{"properties": {"year":    { "type" : "text" },"age":     { "type" : "integer" },"director":{ "type" : "text" }}
}# 新增文档
PUT /<index-name>/_doc/<document-id>
{"title": "The Wind Rises","release_date": "2013-07-20"
}
# 搜索索引
GET /<index-name>/_search?q=wind
# 删除文档
DELETE /<index-name>/_doc/<document-id>
# 查看集群设置
GET _cluster/settings?include_defaults=true
GET _cluster/settings
# 索引列表
GET _cat/indicesgreen  open .opensearch-observability    JbwykWeAQTeyjbiEue73xw 1 0   0 0    208b    208b
yellow open security-auditlog-2023.11.22 n_D4yJoKS4-YKLI1vpyQ9w 1 1 256 0 831.7kb 831.7kb
green  open .kibana_92668751_admin_1     RG79AlpgTiOhAoT2uifInw 1 0   1 0   5.1kb   5.1kb
green  open .kibana_1                    d88uN7czQ2eGli3Kmqcg5A 1 0   0 0    208b    208b
green  open .opendistro_security         JG9gJ3hARWmngXidVL89mw 1 0  10 0  43.5kb  43.5kb# 系统状态
GET _cat/health?v
# 节点信息
GET _cat/nodes?v# 获取映射
GET <index>/_mapping{"sample-index1" : {"mappings" : {"year" : {"full_name" : "year","mapping" : {"year" : {"type" : "text"}}},"age" : {"full_name" : "age","mapping" : {"age" : {"type" : "integer"}}}}}
}# 获取所有索引的所有映射
GET _mapping
# 获取已安装的插件
GET _cat/plugins
127296e3f35f opensearch-alerting                  2.7.0.0
127296e3f35f opensearch-anomaly-detection         2.7.0.0
127296e3f35f opensearch-asynchronous-search       2.7.0.0
127296e3f35f opensearch-cross-cluster-replication 2.7.0.0
127296e3f35f opensearch-geospatial                2.7.0.0
127296e3f35f opensearch-index-management          2.7.0.0
127296e3f35f opensearch-job-scheduler             2.7.0.0
127296e3f35f opensearch-knn                       2.7.0.0
127296e3f35f opensearch-ml                        2.7.0.0
127296e3f35f opensearch-neural-search             2.7.0.0
127296e3f35f opensearch-notifications             2.7.0.0
127296e3f35f opensearch-notifications-core        2.7.0.0
127296e3f35f opensearch-observability             2.7.0.0
127296e3f35f opensearch-performance-analyzer      2.7.0.0
127296e3f35f opensearch-reports-scheduler         2.7.0.0
127296e3f35f opensearch-security                  2.7.0.0
127296e3f35f opensearch-security-analytics        2.7.0.0
127296e3f35f opensearch-sql                       2.7.0.0

索引模板

PUT _index_template/<template name>
# 创建一个名为的模板daily_logs,并将其应用于名称与模式匹配的任何新索引logs-2020-01-*,并将其添加到my_logs别名中:
PUT _index_template/daily_logs
{"index_patterns": ["logs-2020-01-*"],"template": {"aliases": {"my_logs": {}},"settings": {"number_of_shards": 2,"number_of_replicas": 1},"mappings": {"properties": {"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}}}
}
# 如果您创建名为 的索引logs-2020-01-01,您可以看到它具有模板中的映射和设置:
PUT logs-2020-01-01
GET logs-2020-01-01
{"logs-2020-01-01": {"aliases": {"my_logs": {}},"mappings": {"properties": {"timestamp": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"},"value": {"type": "double"}}},"settings": {"index": {"creation_date": "1578107970779","number_of_shards": "2","number_of_replicas": "1","uuid": "U1vMDMOHSAuS2IzPcPHpOA","version": {"created": "7010199"},"provided_name": "logs-2020-01-01"}}}
}

安装

Docker方式

安装OpenSearch

1.拉取镜像

docker pull opensearchproject/opensearch:2.7.0

2.启动容器并暴露端口

docker run --name dev -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "network.host=0.0.0.0" -e "plugins.security.disabled=false" opensearchproject/opensearch:2.7.0
  • discovery.type=single-node 单节点模式
  • network.host=0.0.0.0 在外部IP也能访问
  • plugins.security.disabled=true 禁用安全套件,就不用密码了(这里开发环境可以设置为true)

3.向端口 9200 发送请求。默认用户名和密码为admin

curl https://localhost:9200 -ku 'admin:admin'

结果如下:

{"name" : "039dd59a68de","cluster_name" : "docker-cluster","cluster_uuid" : "rUa90awRQe2KKP7VxBmwxg","version" : {"distribution" : "opensearch","number" : "2.7.0","build_type" : "tar","build_hash" : "b7a6e09e492b1e965d827525f7863b366ef0e304","build_date" : "2023-04-27T21:43:09.523336706Z","build_snapshot" : false,"lucene_version" : "9.5.0","minimum_wire_compatibility_version" : "7.10.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

也可以这样配置

# 复杂docker容器中的配置到本地
docker cp 039dd59a68de:/usr/share/opensearch/config/opensearch.yml .
# vim opensearch.yml 修改内容
network.host: 0.0.0.0
discovery.type: single-node
plugins.security.ssl.http.enabled: false
plugins.security.disabled=true
# 再将文件复制到容器
docker cp ./opensearch.yml 039dd59a68de:/usr/share/opensearch/config/opensearch.yml
# 重新启动docker容器:
docker restart 039dd59a68de
# 查看日志
docker logs -f 039dd59a68de

安装OpenSearchDashboard

1.拉取镜像

docker pull opensearchproject/opensearch-dashboards:2.7.0

2.启动容器并暴露端口

docker run --name dev-dash -d -p 5601:5601 -e "server.host=0.0.0.0" -e 'OPENSEARCH_HOSTS=["https://10.1.77.53:9200"]' opensearchproject/opensearch-dashboards:2.7.0# 直接禁用安全套件,没有密码
docker run --name dev-dash -d -p 5601:5601 -e "server.host=0.0.0.0"  -e 'OPENSEARCH_HOSTS=["http://10.1.77.102:9200"]' -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchproject/opensearch-dashboards:2.7.0
  • server.host=0.0.0.0 允许外部IP访问
  • opensearch.hosts=[“http://10.1.77.53:9200”] 配置opensearch地址

也可以这样去改配置

# 复杂docker容器中的配置到本地
docker cp 40301ac292a7:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml .
# vim opensearch_dashboards.yml 修改内容
opensearch.hosts: [https://10.1.77.53:9200]
opensearch.username: admin
opensearch.password: admin
server.host: '0.0.0.0' 
# 再将文件复制到容器
docker cp ./opensearch_dashboards.yml 40301ac292a7:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml
# 重新启动docker容器:
docker restart 40301ac292a7
# 查看日志
docker logs -f 40301ac292a7

3.访问http://ip:5601/ 。默认用户名和密码为admin

Docker-Compose方式

Docker-Compose安装

# 根据需要替换其中的版本,这里是 v2.21.0
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 测试是否安装成功
docker-compose --version
- Docker Compose version v2.21.0# 常用命令
# 自动完成包括构建镜像,(重新)创建服务,启动服务
docker-compose up
# 后台执行
docker-compose up -d
# 此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose down 
# -v删除所有卷的选项
docker-compose down -vdocker-compose start
docker-compose stop
docker-compose version

1.设置主机环境

vm.max_map_count至少设置为 262144

# 检测当前值
cat /proc/sys/vm/max_map_count
# 要增加该值,请将以下行添加到/etc/sysctl.conf
vim /etc/sysctl.conf
vm.max_map_count=262144
# 然后运行sudo sysctl -p重新加载
sudo sysctl -p

2.下载docker-compose.yml文件

  • docker-compose.yml
mkdir -p /user/laker/opensearch
cd /user/laker/opensearch
wget https://opensearch.org/samples/docker-compose.yml

3.启动docker-compose

# 启动完要看日志,等1-2分钟就差不多了,注意看日志问题
docker-compose up

4.验证

访问http://ip:5601/ 。默认用户名和密码为admin

问题

问题1:IPv4 forwarding is disabled. Networking will not work

执行docker run时有个提醒

WARNING: IPv4 forwarding is disabled. Networking will not work.

在这里插入图片描述

这个警告提示 Docker 在你的主机上禁用了 IPv4 转发,这可能导致 Docker 容器无法正常工作。IPv4 转发是指将进入的网络流量从一个网络接口转发到另一个网络接口的功能。

为了解决这个问题,你可以启用 IPv4 转发。

解决方案

  1. 打开 IPv4 转发:

    sudo sysctl -w net.ipv4.ip_forward=1
    
  2. 若要使该更改永久生效,编辑 /etc/sysctl.conf 文件,将 net.ipv4.ip_forward 的值设置为 1

问题2:OpenSearch Dashboards 启用中文界面

在 opensearch_dashboards.yml中修改配置

#设置中文
i18n.locale: "zh-CN"

这篇关于OpenSearch开发环境安装Docker和Docker-Compose两种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/418215

相关文章

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过