zoukankan      html  css  js  c++  java
  • ELK-02:Elasticsearch API 和 Head 插件

    操作管理 ES 方式一:直接 API 操作

    ES 提供了 resetful api 接口,意味着大部分操作都可以通过接口直接创建,可以通过 postman,第三方程序调用等方式直接传输数据。

    这里的第一种方法就是直接使用 API 接口,利用 Linux 自带的 curl 命令完成。

    1. 查看状态接口:

    curl -u elastic:123456 -XGET http://192.168.200.101:9200/_cat

    结果如下:

    截图只是一部分,具体需求再找响应的接口就行。

    2. 创建索引,类似创建数据库:

    curl -u elastic:123456 -XPUT http://192.168.200.101:9200/test?pretty

    后面使用 pretty 的目的是为了输出的 json 数据有格式,否则就是一排显示,影响阅读,这和 MySQL 中把后面的分号换成 G 一个道理。

    3. 插入数据:

    curl -u elastic:123456 -XPUT 'http://192.168.200.101:9200/test/user/1?pretty' -H 'Content-Type: application/json' -d '
    {
    "username":"zhangsan",
    "age":"18",
    "gender":"male"
    }
    '

    数据将以 Json 格式插入,API 格式:索引(库)/类型(表)/文档(行)

    说明:

    a. 索引并不是需要事先建立,我们可以直接插数据,如果索引不存在会自己建立。

    b. 对同一条数据重复插入,后面的数据会替换掉之前的数据,类似于 MySQL 中的 UPDATE。

    c. 如果 API 后面不指定文档 ID,系统将自动生成一个随机的,推荐系统生成,这样不会重复。

    4. 查询数据:

    curl -u elastic:123456 -XGET 'http://192.168.200.101:9200/test/user/_search?pretty'

    查询指定 ID 的数据:

    curl -u elastic:123456 -XGET 'http://192.168.200.101:9200/test/user/1?pretty'

    按照条件查询:

    curl -u elastic:123456 -XGET 'http://192.168.200.101:9200/test/user/_search?q=username:zhangsan&pretty'

    5. 删除数据:

    curl -u elastic:123456 -XDELETE 'http://192.168.200.101:9200/test/user/1?pretty'

    直接使用 DELETE 提交就行。也可以直接删除索引:

    curl -u elastic:123456 -XDELETE 'http://192.168.200.101:9200/test?pretty'

    到这里可以发现,直接操作非常麻烦,所以也就有了接下来的另外两种方式。

    操作管理 ES 方式二:ES Head 插件

    head 插件是使用 Nodejs 开发的一个工具,谷歌浏览器有这个插件,直接安装就可以使用,但是国内总所周知的原因,可以选中在服务器上面部署这个服务,然后通过 WEB 访问它。

    其作用在于在复杂的接口图形化,功能化,可视化,用户通过界面点点点就能查看和操作。

    插件下载地址:

    https://github.com/mobz/elasticsearch-head/archive/master.zip

    由于服务是 Nodejs 运行的,所以得先安装 Nodejs 环境:

    yum -y install nodejs bzip2

    为了提升下载速度,npm 建议使用 cnpm:

    npm install -g cnpm

    下载解压:

    # 下载解压
    cd /data/packages/
    wget https://github.com/mobz/elasticsearch-head/archive/master.zip
    unzip master.zip 
    mv elasticsearch-head-master/ /data/services/elasticsearch-head
    
    # 安装依赖
    cd /data/services/elasticsearch-head/
    cnpm install

    修改配置:Gruntfile.js

    hostname: '*',

    位置如下:

    修改配置:_site/app.js

    this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.200.101:9200";

    将 localhost 改为 IP 地址:

    启动服务:

    npm run start &

    访问测试:

    http://192.168.200.101:9100/?auth_user=elastic&auth_password=123456

    由于 ES 设置了密码,所以需要带密码访问。

    Head 插件使用说明:

    由于之前有建立索引,后面又删除了,可能有数据残余。为了便于测试,先用命令行创建一个索引,并插入数据:

    curl -u elastic:123456 -XPOST 'http://192.168.200.101:9200/test/user?pretty' -H 'Content-Type: application/json' -d '
    {
    "username":"zhangsan",
    "age":18,
    "gender":"male"
    }
    '
    
    curl -u elastic:123456 -XPOST 'http://192.168.200.101:9200/test/user?pretty' -H 'Content-Type: application/json' -d '
    {
    "username":"lisi",
    "age":25,
    "gender":"male"
    }
    '
    
    curl -u elastic:123456 -XPOST 'http://192.168.200.101:9200/test/user?pretty' -H 'Content-Type: application/json' -d '
    {
    "username":"wangwu",
    "age":45,
    "gender":"female"
    }
    '

    刷新页面:

    查看索引数据:

    创建索引:

    这里会涉及分片:

    此时,t1 索引就被分成了5个分片。加粗的黑框代表主分片。

    简单的查询:

    也可以使用 JSON 就行查询:

    这就是简单的使用,至于第三种方式则是 Kibana,后面会单独说明。

  • 相关阅读:
    Eclipse导入Ant项目
    Eclipse修改默认包路径的起始文件夹
    Java中DAO/DTO/PO/VO/BO/QO/POJO
    FreeMarker与Spring MVC 4集合的HelloWorld示例
    FreeMarker与Spring MVC 4结合错误:Caused by: java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfiguration
    FreeMarker与Servlet结合示例
    FreeMarker-简单示例
    Java模板引擎-FreeMarker
    SiteMesh2-sitemesh.xml的其它映射器的用法
    SiteMesh2-sitemesh.xml的ParameterDecoratorMapper映射器的用法
  • 原文地址:https://www.cnblogs.com/Dy1an/p/13129670.html
Copyright © 2011-2022 走看看