AWS OpenSearch 可观测最佳实践

AWS OpenSearch 介绍

OpenSearch 是一种全面开源搜索和分析引擎,使用案例包括日志分析、实时应用程序监控、点击流分析等。Amazon OpenSearch Service 是一项托管服务,让用户能够在 AWS 云中轻松部署、运行并扩展 OpenSearch 集群。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

采集器配置

  1. 登陆观测云控制台
  2. 点击【集成】菜单,选择【云账号管理】
  3. 点击【添加云账号】,选择【AWS】,填写界面所需的信息,如之前已配置过云账号信息,则忽略此步骤
  4. 点击【测试】,测试成功后点击【保存】,如果测试失败,请检查相关配置信息是否正确,并重新测试
  5. 点击【云账号管理】列表上可以看到已添加的云账号,点击相应的云账号,进入详情页
  6. 点击云账号详情页的【集成】按钮,在未安装列表下,找到AWS OpenSearch,点击【安装】按钮,弹出安装界面安装即可。

关键指标

指标名称 描述 单位
ClusterStatus_green 值为 1 指示将所有索引分片分配给集群中的节点,表示集群处于健康状态 Int
ClusterStatus_yellow 值为 1 指示将所有索引的主要分片分配给集群中的节点,但是至少有一个索引的分片副本不是如此 Int
ClusterStatus_red 值为 1 指示至少一个索引的主分片和副本分片未分配给集群中的节点 Int
Shards_activePrimary 活动主分区数 Int
Shards_unassigned 未分配给集群中节点的分区数 Int
Shards_initializing 正在初始化的分区数 Int
SearchableDocuments 跨集群中所有数据节点的可搜索文档的总数 Int
Shards_active 活动主分区和副本分区的总数 Int
Shards_delayedUnassigned 其节点分配因超时设置已延迟的分区数 Int
Shards_relocating 正在重新定位的分区数 Int
DeletedDocuments 跨集群的所有数据节点已标记为删除的文档总数 Int
Nodes OpenSearch 集群中的节点数 Int
CPUUtilization 集群中数据节点的 CPU 利用率百分比 Int
FreeStorageSpace 集群中各数据节点的可用空间 Int
ClusterUsedSpace 集群的已使用空间总量 Int
2xx 指定的 HTTP 响应代码 2xx 的对域的请求数 Int
3xx 指定的 HTTP 响应代码 3xx 的对域的请求数 Int
4xx 指定的 HTTP 响应代码 4xx 的对域的请求数 Int
5xx 指定的 HTTP 响应代码 5xx 的对域的请求数 Int
ThroughputThrottle 指示磁盘是否受到节流 Int
IopsThrottle 指示该域每秒进行读写操作的次数(IOPS)是否已被节流 Int
JVMMemoryPressure 用于集群中所有数据节点的 Java 堆的最大百分比 Int
JVMGCYoungCollectionCount "年轻代"垃圾回收的运行次数 Int
JVMGCOldCollectionCount "年老代"垃圾回收的运行次数 Int
OldGenJVMMemoryPressure 集群中所有数据节点上用于"上一代"的 Java 堆的最大百分比 Int
JVMGCYoungCollectionTime 集群执行"年轻代"垃圾回收所花费的时间,以毫秒为单位 Int
JVMGCOldCollectionTime 集群执行"年老代"垃圾回收所花费的时间,以毫秒为单位 Int
IndexingLatency 节点中所有索引操作所用的总时间差(以毫秒为单位) Int
IndexingRate 每分钟的索引操作数 Int
SearchLatency 节点中所有搜索的总时间差(以毫秒为单位) Int
SearchRate 数据节点上所有分片的每分钟搜索请求总数 Int
SegmentCount 数据节点上的分段数。您拥有的分段越多,每次搜索所花费的时间就越长 Int
SysMemoryUtilization 使用中的实例内存的百分比。此指标的值较高是正常的,通常不表示集群存在问题 Int
ThreadpoolForce_mergeQueue 强制合并线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群 Int
ThreadpoolForce_mergeRejected 强制合并线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群 Int
ThreadpoolForce_mergeThreads 强制合并线程池的大小 Int
ThreadpoolSearchQueue 搜索线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群 Int
ThreadpoolSearchRejected 搜索线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群 Int
ThreadpoolSearchThreads 搜索线程池的大小 Int
Threadpoolsql-workerQueue SQL 搜索线程池中的排队任务数。如果队列大小一直很大,请考虑扩展您的集群 Int
Threadpoolsql-workerRejected SQL 搜索线程池中的已拒绝任务数。如果此数字持续增长,请考虑扩展您的集群 Int
Threadpoolsql-workerThreads SQL 搜索线程池的大小 Int
ThreadpoolWriteQueue 写入线程池中的排队任务数 Int
ThreadpoolWriteRejected 写入线程池中的已拒绝任务数 Int
ThreadpoolWriteThreads 写入线程池的大小 Int
CoordinatingWriteRejected 由于索引压力而在协调节点上发生的拒绝总数 Int
PrimaryWriteRejected 由于索引压力而在主分区上发生的拒绝总数 Int
ReplicaWriteRejected 由于索引压力而在副本分区上发生的拒绝总数 Int
ReadLatency EBS 卷上读取操作的延迟(以秒为单位) Int
WriteLatency EBS 卷上写入操作的延迟(以秒为单位) Int
ReadThroughput EBS 卷上读取操作的吞吐量(以字节/秒为单位) Int
WriteThroughput EBS 卷上写入操作的吞吐量(以字节/秒为单位) Int
ReadIOPS 针对 EBS 卷上的读取操作的每秒输入和输出 (I/O) 操作数 Int
WriteIOPS 针对 EBS 卷上的写入操作的每秒输入和输出 (I/O) 操作数 Int
BurstBalance 一个 EBS 卷的可爆发存储桶中剩余输入和输出(I/O)积分的百分比。值为 100 表示该卷积累的积分数量已达最大数量 Int
AsynchronousSearchInitializedRate 过去 1 分钟内初始化的异步搜索数 Int
AsynchronousSearchRunningCurrent 当前正在运行的异步搜索数 Int
AsynchronousSearchCompletionRate 过去 1 分钟内成功完成的异步搜索数 Int
AsynchronousSearchFailureRate 最后一分钟内完成和失败的异步搜索数 Int
AsynchronousSearchPersistRate 过去 1 分钟内持续存在的异步搜索数 Int
AsynchronousSearchRejected 自节点启动时间以来拒绝的异步搜索总数 Int
AsynchronousSearchCancelled 自节点启动时间以来取消的异步搜索总数 Int
SQLRequestCount 对 _sql API 的请求数 Int
SQLUnhealthy 值为 1 表示 SQL 插件将返回 5xx 响应代码或将无效的查询 DSL 传递到 OpenSearch 来响应特定请求。其他请求将继续成功。值为 0 表示最近未失败。如果您看到持续值为 1,请排查您的客户端对插件发出的请求的问题。 Int
SQLDefaultCursorRequestCount 类似于 SQLRequestCount,但仅统计分页请求 Int
SQLFailedRequestCountByCusErr 由于客户端问题而失败的对 _sql API 的请求数 Int
SQLFailedRequestCountBySysErr 由于服务器问题或功能限制而失败的对 _sql API 的请求数 Int

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 "opensearch", 选择 "AWS OpenSearch 监控视图",点击 "确定" 即可添加视图。

监控器(告警)

观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。

登录观测云控制台,点击「监控」 -「新建监控器」,输入 "aws opensearch", 选择对应的监控器,点击 "确定" 即可添加。

搜索线程池已拒绝任务数突增

ThreadpoolSearchRejected_Average:表示在一定时间内,OpenSearch 集群中搜索线程池中被拒绝的任务数量的平均值。该指标反映了搜索请求由于线程池队列已满而被拒绝的情况。最近 15 分钟被拒绝数大于等于 100 时,发出严重告警。

主分片和副分片分配异常

ClusterStatus_red_Average:表示 OpenSearch 集群处于红色状态的平均时间占比,红色状态意味着集群中至少有一个主分片及其副本未分配给任何节点,值为 0 表示集群运行正常,值大于 0 表示集群有部分时间处于红色状态。当集群完全处于红色状态时发出严重告警。

节点 CPU 使用率过高

CPUUtilization_Average 用于衡量 OpenSearch 集群中节点的平均 CPU 使用率,当节点的 CPU 使用率大于等于 90% 时,发出严重告警,当 CPU 使用率大于等于 80% 小于 90% 时,发出重要告警。

总结

通过将 AWS OpenSearch 的原生监控数据集成到观测云平台,用户可以实现对 OpenSearch 的实时性能监控、资源使用分析以及安全事件的可视化。观测云的高级分析和可视化功能,如实时仪表板、智能告警和根因分析,能够帮助用户快速定位问题、优化成本,并确保数据的高可用性和安全性。这种结合不仅提升了监控的效率和准确性,还通过集中管理的方式简化了运维流程,使用户能够更好地应对复杂的云环境挑战。

相关推荐
fanstuck7 小时前
亚马逊云科技免费套餐新政解析与实战:数据分析与可视化平台
大数据·科技·数据分析·数据可视化·aws
带你去吃小豆花2 天前
20年AWS服务进化史
云计算·aws
阿雄不会写代码4 天前
AWS OpenSearch 是什么
云计算·aws
m0_748254094 天前
阿里云详解:与 AWS、GCP 的全方位比较
阿里云·云计算·aws
AWS官方合作商5 天前
零性能妥协:Gearbox Entertainment 通过 AWS 和 Perforce 实现远程开发革命
大数据·云计算·aws
无责任此方_修行中8 天前
从 HTTP 轮询到 MQTT:我们在 AWS IoT Core 上的架构演进与实战复盘
后端·架构·aws
weixin_3077791311 天前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
在云上(oncloudai)14 天前
AWS KMS VS AWS Cloud HSM VS AWS Secret Manager?
云计算·aws
大斯斯14 天前
AWS 亚马逊云预警通知接入钉钉告警(微信同样适用)
aws