上次在《INFINI Easysearch尝鲜Hands on》中我们部署了两个节点的Easysearch,并且也设置了Console对集群进行监控。那么今天我们再来介绍下INFINI Console的使用。
INFINI Console 仪表盘功能介绍
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 中被创建。
INFINI Console 集群管理页面功能介绍
INFINI Console 是一个用于数据管理和分析的综合平台,其集群管理页面提供了对系统集群、节点、索引和主机的全面监控和管理功能。本文将详细介绍该页面的各项功能和特点。
集群管理页面主要分为几个部分:顶部的功能选项卡、中部的集群列表、以及右侧的筛选和排序选项。
页面顶部的功能选项卡包括以下几项:
- 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 内存: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内存,剩余使用空间以及磁盘空间,集群启动时间和索引一些读写的情况。
这个是索引级别的监控,包括集群里有几个索引,索引状态是open还是close,每个索引有几个主分片和副本分片,每个索引里文档的条数和占用空间,
集群动态页面提供了对集群中各类事件和活动的详细记录和监控功能。
别名管理页面提供了对索引别名的管理功能,使用户可以方便地管理和配置 Elasticsearch 的索引别名。
先来介绍下什么是别名以及基于别名的索引轮换:
别名(Alias)是 Elasticsearch 提供的一种机制,使用户可以为一个或多个索引创建一个或多个别名。由于EasySearch基于Elasticsearch开发,所以同样适用此功能。
创建别名
可以通过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"
}
}
]
}
索引轮换是一种常用的索引管理策略,特别适用于日志和时间序列数据的场景。通过索引轮换,用户可以在索引达到一定条件(如大小或文档数量)时,创建一个新的索引来继续存储数据,而旧的索引可以继续用于查询。
- 设置写别名:创建一个指向当前写入索引的别名,例如
current_write_index
。 - 定义索引轮换条件:可以基于索引的大小、文档数量或时间来定义轮换条件。
- 执行轮换操作:当索引满足轮换条件时,创建一个新的索引并更新写别名指向这个新索引。
首先,创建初始索引并设置写别名:
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": {}
}
}
此命令会检查 current_write_index
别名指向的索引是否满足轮换条件,如果满足,则创建一个新的索引(如 my_index-000002
),并更新 current_write_index
别名指向新索引。
在轮换之后,所有的写入操作会自动指向新的索引 my_index-000002
,而旧的索引 my_index-000001
可以继续用于查询操作。
可以通过一个独立的读别名来处理查询操作,例如 all_indices
,该别名可以指向所有相关的索引:
POST /_aliases
{
"actions": [
{ "add": { "index": "my_index-000001", "alias": "all_indices" }},
{ "add": { "index": "my_index-000002", "alias": "all_indices" }}
]
}
通过这种方式,查询操作可以透明地访问所有的历史数据,而写操作总是指向最新的索引。在 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 使用情况有详细的时间序列数据,显示了不同时间点的使用率变化。
结下来是更加详细的页面,我们能够看到更多指标:
这个是Discovery的页面:
这里可以看到集群的警报,目前集群运行良好,没有任何警报。
内部会预设一些警报规则,如下:
点进去一个请求,比如磁盘的警告,可以到针对不同的使用量设置了不同的警告级别和警告通知。
这里针对警报设置警报,可以看到现在支持很多平台,Discord,飞书,邮件,微信,Slack 以及钉钉。
点击进去可以查看到,对于社交软件而言,其实是使用Webhook的方式进行通知,除此之外也支持配置邮件服务器和自定义的webhook进行通知。
接下来是开发工具,其实就是kibana的dev tool,中文直译过来,使用上没有任何区别,除了支持DSL之外,还支持SQL查询。
这里可以看到连接这三个集群的凭证管理,目前都是有效的。
后台的用户授权,我这里目前设置了admin,也可以在这里添加用户以及修改console管理界面的密码。
最后审计日子,会追踪对于集群做了什么操作,发出了哪些的API 请求,可以看到我这里能看到捕获了查看集群监控信息以及查看集群索引的操作。
结论
INFINI Console 的仪表盘页面集成了系统的关键信息和快捷操作入口,使用户可以高效地管理和监控系统。通过详细的概览信息、实时的告警通知、快速的功能入口和动态日志,用户能够对系统的运行状态一目了然,并快速响应各种管理需求。这个设计不仅提升了用户的工作效率,还确保了系统的安全和稳定运行。
INFINI Console 的集群管理页面提供了对系统集群的全面监控和管理功能。通过详细的集群信息展示、便捷的功能选项卡切换以及丰富的筛选和排序功能,用户可以高效地管理和监控系统中的集群状态。这不仅提升了运维效率,还确保了系统的稳定运行和高效管理。
INFINI Console 的节点管理页面提供了对集群节点的全面监控和管理功能。通过详细的节点信息展示、便捷的功能选项卡切换以及丰富的筛选和搜索功能,用户可以高效地管理和监控系统中的节点状态,从而提升运维效率,确保系统的稳定运行和高效管理。
INFINI Console 的监控报表页面提供了对集群运行状况的全面监控和分析功能。通过详细的概览信息和多个性能指标图表,用户可以高效地监控和管理集群的运行状态。这不仅提升了系统运维效率,还确保了集群的稳定运行和高效管理。
通过这些功能,INFINI Console 为用户提供了全面的系统管理工具,帮助他们高效地应对各种运维挑战,确保系统的高效、安全、稳定运行。