Docker中部署ElasticSearch 和Kibana,用脚本实现对数据库资源的未授权访问

图未保存,不过文章当中的某一步骤可能会帮助到您,那么:感恩!

1、docker中拉取镜像

复制代码
#拉取镜像
docker pull elasticsearch:7.7.0

#启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0

2、熟悉目录

复制代码
bin 启动文件
config 配置文件
	log4j2 日志配置文件
  jvm.options  JAVA 虚拟机相关配置文件
  ElasticSearch  的配置文件 !默认端口为9200  跨域
lib 相关jar包
modules 功能模块

3、启动,访问9200

4、访问测试

安装可视化页面es head

1、下载(同样使用docker环境)

复制代码
#拉取镜像
docker pull mobz/elasticsearch-head:5

#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

#启动容器
docker start 容器id (docker ps -a 查看容器id )

2、启动

复制代码
http://ip:9100

3、连接测试easticsearch发现失败,是前后端分离开发存在跨域问题,需要在服务端做CORS的配置

(1)进入docker当中

复制代码
docker exec -it id /bin/bash 

(2) 进入 elasticsearch.yml文件中

复制代码
vi config/elasticsearch.yml

文末添加数据

复制代码
http.cors.enabled:true
http.cors.allow-orgin:"*"

退出重启es服务器

复制代码
exit
docker restart 容器id

4、重启es服务器后,然后在此连接集群(先前的截图没有截,这里边的地址是你部署es的地址)

()初学时把es当作数据库!(可以建立索引(库),文档(库中的数据!))

图中的数字代表集群的分辨信息

这个head就把它当作一个数据展示工具 !想要查询数据,使用kibana

使用docker安装部署kibana

介绍:

Kibana 是为 Elasticsearch设计的开源分析和可视化平台。

你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。

你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。

1、拉取镜像

复制代码
#拉去Kibana
docker pull kibana:7.7.0

2.启动容器:

复制代码
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://搭建elasticsearch IP地址:9200 -p 5601:5601 -d kibana:7.6.2

3、进入容器

复制代码
docker exec -it 容器ID /bin/sh

修改配置文件

复制代码
vi /usr/share/kibana/config/kibana.yml 

将内容添加进去

复制代码
server.name: kibana
server.host: "0"
#elasticsearch.hosts: [ "http://elasticsearch的IP:9200" ]
elasticsearch.hosts: [ "http://自己的elasticsearch的IP:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
#设置kibana中文显示
i18n.locale: zh-CN

4、访问5601端口后,最终呈现页面

简单操作

ES基本操作

1、PUT增加数据

格式:

复制代码
PUT  /索引名/类型名/文档id(数据) 
{
    请求体
}

PUT /test1/type1/1
{
  "name":"云山",
  "age":999
}

执行完后的格式

复制代码
_index:索引名
_type:类型名
_id:文档id

(1)插入索引

回到header 点击数据浏览------》选择索引

(2)获取索引库中的某条文档数据

(3)更新数据

java 复制代码
PUT /test1/type/1
{
  "name": "萧炎"
}

(4)post修改

java 复制代码
POST /ceshi/user/1/_update
{
   "doc": {  //这块需要指定为doc
     "name" : "美杜莎"
   }
}

完整版脚本

java 复制代码
import argparse #
from elasticsearch import Elasticsearch


def main():
    parser = argparse.ArgumentParser(description="Process some integers")
    parser.add_argument("--host", required=True, help="Elasticsearch地址")
    parser.add_argument("--port", required=True, type=int, help="Elasticsearch端口")
    parser.add_argument("--size", type=int, default=5, help="文档数量为5")

    args = parser.parse_args()

    try:
        es = Elasticsearch([{'host': args.host, 'port': args.port}])
        indices = es.indices.get_alias("*")
        index_names = list(indices.keys())

        if len(index_names) > 0:
            first_index = index_names[0]
            print("选择的索引:", first_index)
            result = es.search(index=first_index, body={"query": {"match_all": {}}}, size=args.size)
            print("查询结果:", result)
        else:
            print("没有找到索引")

    except Exception as e:
        print(f"发生错误:{e}")


if __name__ == "__main__":
    main()

脚本报错报错解决参考

https://blog.csdn.net/yuan2019035055/article/details/126487852

相关推荐
想摆烂的不会研究的研究生7 小时前
每日八股——Redis(1)
数据库·经验分享·redis·后端·缓存
码熔burning8 小时前
MySQL 8.0 新特性爆笑盘点:从青铜到王者的骚操作都在这儿了!(万字详解,建议收藏)
数据库·mysql
猫头虎8 小时前
2025最新OpenEuler系统安装MySQL的详细教程
linux·服务器·数据库·sql·mysql·macos·openeuler
哈库纳玛塔塔8 小时前
放弃 MyBatis,拥抱新一代 Java 数据访问库
java·开发语言·数据库·mybatis·orm·dbvisitor
@LetsTGBot搜索引擎机器人10 小时前
2025 Telegram 最新免费社工库机器人(LetsTG可[特殊字符])搭建指南(含 Python 脚本)
数据库·搜索引擎·机器人·开源·全文检索·facebook·twitter
计算机毕设VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue动物园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
潇潇云起10 小时前
【elastic-start-local 本地docker 30天后需要重新试用处理】
elasticsearch
冉冰学姐10 小时前
SSM校园排球联赛管理系统y513u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架应用·开题报告、
Tony Bai11 小时前
【分布式系统】03 复制(上):“权威中心”的秩序 —— 主从架构、一致性与权衡
大数据·数据库·分布式·架构
wb0430720112 小时前
SQL工坊不只是一个ORM框架
数据库·sql