关于 Elasticsearch 和 Kibana

关于 Elasticsearch 和 Kibana

Elasticsearch

Elasticsearch 是什么?

Elasticsearch 是一个基于 Apache Lucene(TM) 的开源搜索引擎。无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

Elasticsearch 特性

  1. 分布式的实时文件存储,每个字段都被索引并可被搜索(搜索颗粒小)

  2. 分布式的实时分析搜索引擎——做不规则查询(搜索灵活)

  3. 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据(搜索量大)

Elasticsearch 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。

Elasticsearch 使用场景

  1. 为用户提供按关键字查询的全文搜索功能

  2. 著名的 ELK 框架(Elasticsearch,Logstash,Kibana),实现企业海量日志的处理分析的解决方案。大数据领域的重要一份子。

全文检索(全部字段)、模糊查询(搜索)、数据分析(提供分析语法,例如聚合)

安装启动 Elasticsearch

es 使用 Java 进行开发,所以 es 的安装使用也需要使用 JDK,在安装 es 之前,需要先保证 JDK 的正常运行,同时保证 JDK 设置在系统环境变量当中。

es 可以单独的使用压缩包进行解压安装,但同时也可以使用 docker 进行安装,站在实际操作环境的角度中,以下选择 docker 进行安装。

  1. 下载 es
docker pull elasticsearch:7.6.2
  1. 配置 es
// 为了使用 docker 挂在 es 的文件
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml

// 给予所有用户对 es 目录的操作权限(为了能够启动成功)
chmod -R 777 /mydata/elasticsearch/
  1. 启动 es
// 9200 端口是请求访问端口,9300 是集群中 es 之间的通信端口
// discovery.type=single-node 指的是以单节点启动
// ES_JAVA_OPTS="-Xms64m -Xmx512m" 设置 JVM 的内存大小
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2 
  1. 设置 es 在 docker 中为自启动
docker update elasticsearch --restart=always

测试 Elasticsearch

  • 查看 es 版本信息:

    http://[ip]:9200/
    
    输出:
    {
        "name": "0adeb7852e00",
        "cluster_name": "elasticsearch",
        "cluster_uuid": "9gglpP0HTfyOTRAaSe2rIg",
        "version": {
            "number": "7.6.2",
            "build_flavor": "default",
            "build_type": "docker",
            "build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
            "build_date": "2020-03-26T06:34:37.794943Z",
            "build_snapshot": false,
            "lucene_version": "8.4.0",
            "minimum_wire_compatibility_version": "6.8.0",
            "minimum_index_compatibility_version": "6.0.0-beta1"
        },
        "tagline": "You Know, for Search"
    }
    
  • 显示 es 节点信息

    http://[ip]:9200/_cat/nodes
    
    输出:
    127.0.0.1 76 95 1 0.26 1.40 1.22 dilm * 0adeb7852e00
    

初步检索

_CAT
  • GET/cat/nodes:查看所有节点
http://[ip]:9200/_cat/nodes

输出:
127.0.0.1 61 91 11 0.08 0.49 0.87 dilm * 0adeb7852e00

注:*表示集群中的主节点

  • GET/cat/health:查看es健康状况
http://[ip]:9200/_cat/health

输出:
1588332616 11:30:16 elasticsearch green 1 1 3 3 0 0 0 0 - 100.0%

注:green 表示健康值正常

  • GET/cat/master:查看主节点
http://[ip]:9200/_cat/master

输出:
vfpgxbusTC6-W3C2Np31EQ 127.0.0.1 127.0.0.1 0adeb7852e00
  • GET/_cat/indicies:查看所有索引 ,等价于 mysql 数据库的 show databases;
http://[ip]:9200/_cat/indices

输出:
green open .kibana_task_manager_1   KWLtjcKRRuaV9so_v15WYg 1 0 2 0 39.8kb 39.8kb
green open .apm-agent-configuration cuwCpJ5ER0OYsSgAJ7bVYA 1 0 0 0   283b   283b
green open .kibana_1                PqK_LdUYRpWMy4fK0tMSPw 1 0 7 0 31.2kb 31.2kb

Kibana

安装启动 Kibana

  1. 下载 Kibana。版本号需要和 es 一致

    docker pull kibana:7.6.2
    
  2. 启动 Kibana

    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://[es ip]:[es port] -p 5601:5601 -d kibana:7.6.2
    
  3. 设置开机启动

    docker update kibana --restart=always
    

测试 Kibana

  • 访问 Kibana

    http://[ip]:5601/app/kibana 
    

设置密码

设置 ES 访问密码

  1. 修改 ES 配置文件 elasticsearch.yml

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    http.cors.allow-headers: Authorization
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    
  2. 重启 ES

  3. 进入 ES 容器内部,执行设置用户密码的命令。一共有7个用户的密码

    bin/elasticsearch-setup-passwords interactive
    

    内容如下:

    [root@node01 elasticsearch-7.7.0]# bin/elasticsearch-setup-passwords interactive
    future versions of Elasticsearch will require Java 11; your Java version from [/opt/app/jdk1.8.0_181/jre] does not meet this requirement
    Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
    You will be prompted to enter passwords as the process progresses.
    Please confirm that you would like to continue [y/N]y
     
     
    Enter password for [elastic]: 
    Reenter password for [elastic]: 
    Enter password for [apm_system]: 
    Reenter password for [apm_system]: 
    Enter password for [kibana]: 
    Reenter password for [kibana]: 
    Enter password for [logstash_system]: 
    Reenter password for [logstash_system]: 
    Enter password for [beats_system]: 
    Reenter password for [beats_system]: 
    Enter password for [remote_monitoring_user]: 
    Reenter password for [remote_monitoring_user]: 
    Changed password for user [apm_system]
    Changed password for user [kibana]
    Changed password for user [logstash_system]
    Changed password for user [beats_system]
    Changed password for user [remote_monitoring_user]
    Changed password for user [elastic]
    
  4. 重新访问 ES。发现需要密码

设置 Kibana 密码

  1. 如果 docker 的 kibana 镜像没有挂载配置文件。那么就直接进入 kibana 容器内部

    docker exec -it [container id/container name] /bin/bash
    
  2. 修改配置文件

    # 进入修改界面
    vi /config/kibana.yml
    # 添加配置。其中账号名为 kibana 的密码在上述的 ES 配置中有设置过
    elasticsearch.username: "kibana"
    elasticsearch.password: "[密码]"
    
  3. 重启 Kibana。访问 Kibana,发现需要密码。账号密码都来自上述的 ES 的密码配置中。

同时,在进入到 Kibana 的页面后,也可以在 Security - Users 中对用户账号进行设置

posted @   紅豆DuoLaameng  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示