优秀的编程知识分享平台

网站首页 > 技术文章 正文

Easysearch 数据可视化和管理平台:INFINI Console 使用介绍

nanyue 2024-10-21 06:14:29 技术文章 2 ℃

上次在《INFINI Easysearch 尝鲜 Hands on》中,我们部署了两个节点的 Easysearch,并设置了 Console 进行集群监控。今天,我们将介绍 INFINI Console 的使用。

Dashboard

INFINI Console 是一个功能强大的数据管理和分析平台,其仪表盘页面提供了直观简洁的界面,使用户能够快速了解系统状态并进行管理操作。本文将详细介绍仪表盘页面的各项功能。

仪表盘顶部显示系统的实时告警、通知和待办事项的数量,当前数据显示:

  • 告警:0 条
  • 通知:0 条
  • 待办:0 条

在仪表盘的中心区域,用户可以看到几项关键的系统概览信息:

  • 集群数量:当前有 3 个集群正在运行。
  • 节点数量:系统中有 16 个节点。
  • 主机数量:共有 3 台主机。
  • 已用存储:系统已使用存储空间为 2.0GB。

仪表盘页面还提供了几个常用操作的快速入口,方便用户迅速访问常用功能:

  • 集群注册:用户可以通过此入口快速注册新的集群。
  • 数据探索:用户可以访问数据探索工具,对系统中的数据进行分析和查询。
  • 告警管理:提供对告警信息的管理功能,用户可以查看和处理告警。
  • 安全管理:安全管理入口帮助用户维护系统的安全设置和策略。

仪表盘右侧显示了集群的动态信息,包括最近的操作日志。例如:

  • 2024-07-03 22:43:43,index medcl 在 cluster infiniLabs 中的状态更新。
  • 2024-07-03 22:06:43,index medcl 在 cluster infiniLabs 中被创建。

集群管理页面

集群管理页面主要分为几个部分:顶部的功能选项卡、中部的集群列表、以及右侧的筛选和排序选项。

页面顶部的功能选项卡包括以下几项:

  • Clusters (集群):显示当前系统中的所有集群。
  • Nodes (节点):显示集群中的节点详细信息。
  • Indices (索引):显示集群中的索引信息。
  • Hosts (主机):显示系统中的主机信息。

集群列表展示了每个集群的详细信息,包括:

  • 集群名称:每个集群的名称,如 “infinilabs”、“mycluster”、“INFINI_SYSTEM (JeanGrey)”。
  • 集群健康状态:以颜色条的形式显示最近 14 天的集群健康状态(绿色表示健康,黄色表示有警告)。
  • 节点数量:集群中包含的节点数量。
  • 索引数量:集群中的索引数量。
  • 分片数量:集群中的分片数量。
  • 文档数量:集群中存储的文档数量。
  • 磁盘使用率:集群的磁盘使用情况。
  • JVM 堆内存使用率:集群的 JVM 堆内存使用情况。
  • 索引速率:当前集群的索引速率(每秒索引数)。
  • 搜索速率:当前集群的搜索速率(每秒搜索数)。

页面右侧提供了丰富的筛选和排序选项,可以根据以下条件筛选和排序集群:

  • 健康状态 (Health Status):根据集群的健康状态筛选,如绿色(健康)和黄色(警告)。
  • 分布 (Distribution):根据集群的分布类型筛选,如 “easysearch” 和 “elasticsearch”。
  • 版本 (Version):根据集群使用的软件版本筛选,如 Easysearch 1.8.2 和 Elasticsearch 7.10.2。
  • 区域 (Region):根据集群所在的区域筛选,如 “china” 和 “default”。
  • 标签 (Tags):根据自定义标签进行筛选。

接下来分别介绍节点、索引和主机层面的信息,这些监控指标与集群层面大同小异。

节点监控

索引监控

主机监控

包括了常规的 CPU、内存、磁盘、网络的监控。

监控指标页面

监控报表页面提供了对集群运行状况的详细监控和分析功能。用户可以选择最近 15 分钟、1 小时、24 小时等不同时间范围查看数据,并手动点击刷新按钮更新数据,以获取最新的监控信息。

概览信息

显示当前集群的基本状态,包括:

  • 集群名称:如 “infinilabs”。
  • 在线时长:如 “3 天”。
  • 集群版本:如 “1.8.2”。
  • 健康状态:如 “green”。
  • 节点数:如 “2”。
  • 索引数:如 “38”。
  • 主/总分片:如 “38/76”。
  • 未分配分片:如 “0”。
  • 文档数:如 “656,803”。
  • 存储空间:如 “1007.2MB/385.4GB”。
  • JVM 内存:如 “1023.0MB/2.0GB”。

监控报表页面还提供了多个性能指标的图表,包括:

索引吞吐 (doc/s)

  • Total Indexing:总索引吞吐量。
  • Primary Indexing:主分片的索引吞吐量。

查询吞吐 (query/s)

  • Total Query:总查询吞吐量。

索引延迟 (ms)

  • Indexing Latency:索引延迟时间。
  • Delete Latency:删除操作的延迟时间。

查询延迟 (ms)

  • Query Latency:查询延迟时间。
  • Fetch Latency:获取操作的延迟时间。
  • Scroll Latency:滚动操作的延迟时间。

点击“Advance”可以查看更多监控指标:

节点级别性能监控

包括 CPU、负载、JVM 内存、剩余使用空间及磁盘空间、集群启动时间和索引读写情况。

索引级别监控

包括集群内索引的数量、状态、主分片和副本分片数量、文档条数和占用空间。

集群动态页面

提供集群中各类事件和活动的详细记录和监控功能。

别名管理

别名管理页面提供了对索引别名的管理功能,使用户可以方便地管理和配置 Elasticsearch/EasySearch 的索引别名。

创建别名

可以通过 DSL 创建别名。例如,创建一个名为 my_index_alias 的别名指向 my_index

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "my_index",
        "alias": "my_index_alias"
      }
    }
  ]
}

删除别名

删除一个别名同样可以通过 REST API 实现:

POST /_aliases
{
  "actions": [
    {
      "remove": {
        "index": "my_index",
        "alias": "my_index_alias"
      }
    }
  ]
}

索引轮换

索引轮换是一种常用的索引管理策略,特别适用于日志和时间序列数据的场景。通过索引轮换,用户可以在索引达到一定条件(如大小或文档数量)时,创建一个新的索引来继续存储数据,而旧的索引可以继续用于查询。

  1. 设置写别名:创建一个指向当前写入索引的别名,例如 current_write_index。
  2. 定义索引轮换条件:可以基于索引的大小、文档数量或时间来定义轮换条件。
  3. 索引并更新写别名指向这个新索引。

创建初始索引并设置写别名:

PUT /my_index-000001
{
  "aliases": {
    "current_write_index": {}
  }
}

使用 /_rollover API 定义轮换条件并执行轮换:

POST /current_write_index/_rollover
{
  "conditions": {
    "max_age": "7d",
    "max_docs": 1000000
  },
  "settings": {
    "number_of_shards": 1
  },
  "aliases": {
    "current_write_index": {}
  }
}

通过这种方式,查询操作可以透明地访问所有历史数据,而写操作总是指向最新的索引。

在 INFINI Console 中提供了可视化创建索引及别名的方式。页面右上角提供了新建按钮,用户可以通过点击该按钮创建新的索引别名,填写别名名称、关联索引、索引路由、搜索路由和过滤查询等配置。

平台监控

展示了多个关键指标的监控图表,包括:

  • 健康状态 (Health):显示系统当前的健康状态。如果没有数据,则显示“暂无数据”。
  • 引擎分布 (Engines):展示系统中不同搜索引擎的分布情况,例如 EasySearch 和 Elasticsearch 的比例。图表显示当前 EasySearch 占 67%,Elasticsearch 占 33%。
  • 提供商 (Providers):显示系统中使用的云服务提供商信息。在示例中,所有资源都托管在 AWS 上。
  • JDK 版本 (JDK):显示系统中使用的 JDK 版本信息。在示例中,所有节点都使用 JDK 版本 11.0.20。
  • 磁盘使用情况 (Disk Utilization) - Top 10:显示磁盘使用率最高的前 10 个节点。在示例中,easysearch-node1 和 easysearch-node2 的磁盘使用率均为 4%。
  • JVM 使用情况 (JVM Utilization) - Top 10:展示 JVM 使用率最高的前 10 个节点。在示例中,infinilabs 集群的 easysearch-node1 和 easysearch-node2 节点的 JVM 使用情况有详细的时间序列数据,显示了不同时间点的使用率变化。

我们还能够看到更多指标:

数据探索

在数据探索里,可以根据时间、字段等条件对索引或者视图下的数据进行搜索查询和分析,类似 Kibana 的 Discover。

这里可以看到集群的警报,目前集群运行良好,没有任何警报。

内部会预设一些警报规则,如下:

点进去一个请求,比如磁盘的警告,可以针对不同的使用量设置不同的警告级别和通知。

这里针对警报设置警报,可以看到现在支持很多平台,Discord、飞书、邮件、微信、Slack 以及钉钉。

点击进去可以查看,对于社交软件而言,其实是使用 Webhook 进行通知,除此之外也支持配置邮件服务器和自定义的 Webhook 进行通知。

开发工具

Console 的开发工具相当于 Kibana DevTool 的升级版,使用上基本没有大的区别,除了支持 DSL 之外,还支持多集群 Tab 切换、常用命令快速 Load、SQL 查询等。

集群连接凭证管理

可以看到连接这三个集群的凭证管理,目前都是有效的。

后台用户授权

可以添加用户以及修改 Console 管理界面的密码。目前设置了 admin 账号。

审计日志

追踪对集群的操作,捕获查看集群监控信息以及集群索引的操作。

结论

INFINI Console 的仪表盘页面集成了系统的关键信息和快捷操作入口,使用户可以高效地管理和监控系统。通过详细的概览信息、实时的告警通知、快速的功能入口和动态日志,用户能够对系统的运行状态一目了然,并快速响应各种管理需求。这个设计不仅提升了用户的工作效率,还确保了系统的安全和稳定运行。

INFINI Console 的集群管理页面提供了对系统集群的全面监控和管理功能。通过详细的集群信息展示、便捷的功能选项卡切换以及丰富的筛选和排序功能,用户可以高效地管理和监控系统中的集群状态。这不仅提升了运维效率,还确保了系统的稳定运行和高效管理。

INFINI Console 的节点管理页面提供了对集群节点的全面监控和管理功能。通过详细的节点信息展示、便捷的功能选项卡切换以及丰富的筛选和搜索功能,用户可以高效地管理和监控系统中的节点状态,从而提升运维效率,确保系统的稳定运行和高效管理。

INFINI Console 的监控报表页面提供了对集群运行状况的全面监控和分析功能。通过详细的概览信息和多个性能指标图表,用户可以高效地监控和管理集群的运行状态。这不仅提升了系统运维效率,还确保了集群的稳定运行和高效管理。

通过这些功能,INFINI Console 为用户提供了全面的系统管理工具,帮助他们高效地应对各种运维挑战,确保系统的高效、安全、稳定运行。

作者:韩旭,亚马逊云技术支持,亚马逊云科技技领云博主,目前专注于云计算开发和大数据领域。

关于 Easysearch 有奖征文活动

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

最近发表
标签列表