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

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推