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/indices

green  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 -v

docker-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"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/180674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

给数据库查询结果添加一个额外的自增编号

1、在mysql数据库可以执行的sql SELECT( i : i 1 ) num,M.* FROMuser M,( SELECT i : 0 ) AS ID GROUP BYM.ID ORDER BYM.create_time SELECT (i :i 1) 是为了生成自增的序列号字段 SELECT i : 0 是为了将i进行初始化每次查询的序列号都会从1开始进行排序生成序列号 在…

docker部署paddleocr

内容仅供参考学习 欢迎朋友们V一起交流&#xff1a; zcxl7_7 环境 1. CentOS7  2. docker  3. PaddleOCR2.5.2 1.准备 1. 首先准备好需要打包的项目 2. 在该项目中创建Dockerfile文件 touch Dockerfile2. 编写Dockerfile # 从Python 3.8的官方镜像中创建(pyt…

快速排序演示和代码介绍

快速排序的核心是(以升序为例)&#xff1a;在待排序的数据中指定一个数做为基准数&#xff0c;把所有小于基准数的数据放到基准数的左边&#xff0c;所有大于基准数的数据放在右边&#xff0c;这样的话基准数的位置就确定了&#xff0c;然后在两边的数据中重复上述操作

5G智慧工地整体解决方案:文件全文115页,附下载

关键词&#xff1a;5G智慧工地&#xff0c;智慧工地建设方案&#xff0c;智慧工地管理平台系统&#xff0c;智慧工地建设调研报告&#xff0c;智慧工地云平台建设 一、5G智慧工地建设背景 5G智慧工地是利用5G技术、物联网、大数据、云计算、AI等信息技术&#xff0c;围绕“人…

SANSAN新鲜事|理清!如何降低数字工厂建设成本

根据调研结果&#xff0c;在中国&#xff0c;只有10%的企业已经完全实施数字化工厂解决方案或目前处于最后阶段。工厂数字化的进展比企业的预期要慢得多&#xff0c;原因包括复杂的系统环境和多样化的机器版图&#xff0c;以及在整个生产网络中推广单个解决方案的相关挑战。实施…

深度学习之基于Tensorflow卷积神经网络鸟类目标识别检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Tensorflow的卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;在鸟类目标识…

景区智慧旅游智能化系统方案:PPT全文58页,附下载

关键词&#xff1a;智慧景区解决方案&#xff0c;智慧文旅解决方案&#xff0c;智慧旅游解决方案&#xff0c;智慧文旅综合运营平台 一、景区智慧旅游智能化系统建设背景 近年来&#xff0c;随着信息技术的快速发展和普及&#xff0c;以及旅游市场的不断扩大和升级&#xff0…

Me-and-My-Girlfriend-1

Me-and-My-Girlfriend-1 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.147 arp-scan -l端口扫描&#xff0c;开放了22、80端口 nmap -A -p- -sV 192.168.80.147二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.147/" -e * …

用好说 AI 玩转奥特曼表情包,居然还能和他们聊个天

你喜欢奥特曼吗&#xff1f;你相信光吗&#xff1f; 如果你已经追完了特摄剧、刷完了大电影、用滥了那几个表情包&#xff0c;那不如来试试用 AI 给自己整点活儿新 “物料”。 不管是和奥特曼 “面对面” 聊天还是 “无中生有” 表情包&#xff0c;AI 都能做&#xff01; (※…

重磅!2023两院外籍院士增选名单公布

根据《中国科学院院士章程》《中国科学院外籍院士选举办法》等规定&#xff0c;2023年中国科学院选举产生了30名中国科学院外籍院士。 现予公布。 中国科学院 2023年11月23日 中国工程院2023年外籍院士增选共选举产生16位中国工程院外籍院士。 现予公布。 中国工程院 2023年…

Pyqt5实现多线程程序

主从架构 Pyqt常常使用**主从架构&#xff08;Master-Workers 架构&#xff09;**来避免界面卡死的情况。 Master-Workers 架构就像它的名字&#xff0c;一个master统领着几个workers一起干活。其中某个worker倒下了不会导致整体任务失败。matser不用干活&#xff0c;因此可以…

UltraCompare 23 for Mac文件对比工具

UltraCompare是一款功能强大的文件比较和合并工具&#xff0c; 以下是它的特色介绍&#xff1a; 多种文件格式支持&#xff1a;UltraCompare支持比较和合并多种文件格式&#xff0c;包括文本文件、二进制文件、office文档、PDF文件等。 文件差异高亮显示&#xff1a;UltraComp…

动态规划求二维网格中从左上角到右下角的最短路径( 每次只能向下、向右、向右下走 ) java 实现

dp[i][j] 表示在以点(0,0)作为左上角&#xff0c;点(i,i) 作为右下角的二维网格中 左上角到右下角的最短路径&#xff0c; 动态转移方程为&#xff1a;dp[i][j] min{ dp[i][j-1],dp[i-1][j],dp[i-1][j-1] }.distance weight[i][j] ImageUtils.java&#xff1a; import java.a…

凸问题与非凸问题

凸函数&#xff1a;曲线上任意两点连线上的点对应的函数值不大于该两点对应的函数值得连线上的值&#xff0c;例如yx^2&#xff1b; 非凸函数&#xff1a;曲线上任意两点连线上的点对应的函数值既有大于该两点对应的函数值得连线上的值的部分也有小于的部分&#xff0c;例如&am…

filebeat配置解析【待续】

目录 filebeat概览filebeat是如何工作的工作原理采集日志注册表发送日志 容器日志采集的三种方式方式一&#xff1a;Filebeat 与 应用运行在同一容器&#xff08;不推荐&#xff09;方式二&#xff1a;Filebeat 与 应用运行不在同一容器方式三&#xff1a;通过 Kubernetes File…

springboot使用redis缓存乱码(key或者 value 乱码)一招解决

如果查看redis中的值是这样 创建一个配置类就可以解决 package com.deka.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i…

最新EasyRecovery14中文版安装下载步骤

EasyRecovery是一款功能强大的数据恢复软件&#xff0c;可以一直免费使用下去&#xff0c;可以将受损的文件恢复过来&#xff0c;也可以检索数据格式化或损坏卷&#xff0c;还可以初始化磁盘。它拥有强大的数据恢复能力和快速地查找恢复机制&#xff0c;非常的简洁实用。拥有4大…

2023年亚太数学建模C题数据分享+详细思路

在报名截止的前一天&#xff0c;我尝试进行了报名。到那时&#xff0c;已有11,000个队伍注册参赛。在我的了解中&#xff0c;在数模比赛中除了国赛美赛外&#xff0c;几乎没有其他竞赛的参赛队伍数量能与此相媲美。即便不考虑赛题的难度和认可度&#xff0c;亚太地区的这场竞赛…

Java中的字符串String

目录 一、常用方法 1、字符串构造 2、String对象的比较 &#xff08;1&#xff09;、equals方法 &#xff08;2&#xff09;、compareTo方法 &#xff08;3&#xff09;、compareToIgnoreCase方法&#xff08;忽略大小写进行比较&#xff09; 3、字符串查找 4、转化 &…

盘点一下:为了考上本科,你需要放弃什么?

专转本除了胜利后喜悦&#xff0c;更多的则是过程的艰辛&#xff0c;为了专转本成功&#xff0c;我们放弃了自己的娱乐时间、放弃了自己的兴趣爱好。 专转本考试相当于人生第二次“高考”&#xff0c;在学历门槛的今天&#xff0c;越来越多的人都在通过各类途径提转个人学历。…