Skip to main content
Version: Next

Elasticsearch

Elasticsearch 是一个 高性能数据存储、搜索和分析引擎,它被用于 大数据存储 数据仓库 数据应用与可视化 搜索服务 等场景。Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化。

wizard

准备

在参阅本文档使用 Elasticsearch 时,需要确保如下几点:

  • 应用是基于 Websoft9 安装的

  • 应用的用途符合 SSPL 开源许可协议

  • 应用具备访问条件:配置域名服务器安全组开启网外端口

入门指南

初始化

Websoft9 控制台安装 Elasticsearch 后,通过 "我的应用" 查看应用详情,在 "访问" 标签页中获取登录信息。

  1. 使用本地电脑浏览器访问,进入 Elasticsearch API 认证提示

  2. 输入用户名(elastic)和密码,成功后会输出 API 基本信息

获取 Enrollment Token

Enrollment Token 是用于 Kibana 除此连接的必要信息。可以在 Elasticsearch 中运行重置命令获取:

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

使用 Kibana 管理

Elasticsearch 应用中默认不含 Kibana,用户可以通过 Websoft9 应用商店中安装 Kibana。

Kibana

连接 Logstash 并分析

Logstash 是数据的采集、加工和传输管道,它是如何与 Elasticsearch 配套工作的呢?

  1. 编辑 Logstash 配置文件

  2. 新增一个 pipeline 的配置文件,其内容如下:

    input{
    file{
    path => "/var/log/*.log"
    type => "elasticsearch"
    start_position => "beginning"
    }
    }

    ## Add your filters / logstash plugins configuration here

    output {
    elasticsearch {
    hosts => "elasticsearch:9200"
    user => "elastic"
    password => "elastic123"
    index => "mytest"
    }
    }

以上配置段中的 output 需要使用 elasticsearch 的数据库连接账号。

  1. 运行命令curl http://URL/cat/indices?v 验证 Elasticsearch 和 Logstash 的连接,索引是否生效

  2. 登陆 Kibana,点击【Manage】,再点击右侧菜单的【Index Patterns】

    ELK Index

    ELK Index

    ELK Index

  3. 检索"mytest",根据提示完成创建

    ELK Index

    ELK Index

  4. 索引在 Kibana 创建成功,可以用时间戳在此检索数据

    ELK Index

    ELK Index

配置选项

管理维护

配置 SMTP

  1. 登录 Kibana 控制台,依次打开:【Stack Management】>【Watcher】,增加一个 Email Action

  2. 增加 Email 配置

重置密码

ElasticSearch 容器中运行下面的重置密码命令即可:

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

备份与恢复

Elastic 内置快照备份功能(参考:官方文档

故障

ERROR: exit code 137?

错误详情:ERROR: Elasticsearch exited unexpectedly, with exit code 137
问题原因:启动或运行时,服务器可分配给 ES 的内存不足

实践发现可用内存超过 1G 时,此 ERROR 还不会出现

Logstash 无法输出到 ES?

检查 Logstash 的 pipeline 配置文件中 Elasticsearch 账号密码是否正确

TOO_MANY_REQUESTS ... disk usage?

如果现实下面的错误信息,即表明磁盘空间不足。

kibana_task_manager_7.17.4_001/_mapping?timeout=60s error: [cluster_block_exception]: index [.kibana_task_manager_7.17.4_001] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];,"}

ES 对磁盘空间有较高的要求,建议准备足够的空间。

常见问题

Elastic 具体包含哪些应用?

“Elastic Stack” 是三个开源项目的缩写:Elasticsearch,Logstash 和 Kibana。

  • Elasticsearch 是一个存储数据和检索数据等数据库
  • Logstash 是数据提取、清洗和整理的中间件
  • Kibana 是 Elasticsearch 的可视化管理分析界面,Kibana 依赖 Elasticsearch

另外,随着 Elastic 公司不断发展,他们把更多的产品加入到了 ELK 家族,例如:一个日志采集工具 Beats

下面是 Elastic Stack 用于日志场景的典型架构图

Elasticsearch 全部免费吗?

Elasticsearch 由之前的开源版+商业扩展包 xpack 组成。其中 xpack 基本功能免费,需要使用全部功能可以向官方申请 30 天的免费试用期,试用期结束后回归到基本功能或订阅。