AutoOps 实际应用:调查 ECK 上的 Elasticsearch 集群性能

作者:来自 Elastic Aram Favela

了解 Elastic 的 InfoSec 团队如何在多集群 ECK 环境中实施 AutoOps,将集群性能调查时间从 30 多分钟减少到五分钟。

通过实时问题检测和可操作的建议来优化性能并降低成本,从而简化你的 Elasticsearch 运维。AutoOps 可用于 cloud 和 self-managed 部署。了解更多关于 AutoOps 的信息


在 Elastic,InfoSec Security Engineering 团队负责部署和管理 InfoSec 的 ECK 集群。在 Elastic on Elastic 系列中,我们强调 InfoSec 作为 Customer Zero 的角色。通过运行最新的 stack 版本和功能,我们致力于提供实用建议,并展示我们如何运营。在本节中,我们介绍在多集群 Elastic Cloud on Kubernetes ( ECK )环境中安装 AutoOps,并强调它如何立即带来价值。

AutoOps for Elasticsearch 通过提供性能建议、资源使用洞察、实时问题检测和引导式修复来简化集群运维。随着 AutoOps for self-managed ( on-premises )集群的最新发布,我们迫不及待地将其部署,看看它如何帮助我们监控和维护大型多集群 ECK 环境的健康状况。

在 ECK 上安装 AutoOps

为了确保可扩展性和一致性,Security Engineering 团队致力于将所有基础设施作为代码( IaC )进行管理。遵循这种方式,我们创建了一个 Helm chart 来在整个 ECK 环境中部署 AutoOps agent。关于我们基础的 ECK 和 Helm 方法的更多信息,请参考本系列之前的博客文章。

AutoOps chart

复制代码
cloud-connected-autoops/
├─ chart.yaml
├─ values.yaml
└─ templates/
   └─ deployment.yaml

chart.yaml

复制代码
apiVersion: v1
description: Autoops cloud connected Agent chart
name: cloud-connected-autoops
version: 0.1.0

values.yaml

复制代码
version: 9.2.0

deployment.yaml

这来自官方的 AutoOps 仓库,不过我们将 image 版本模板化,以简化未来升级,并与现有自动化保持兼容:

复制代码
 image: >-
   docker.elastic.co/elastic-agent/elastic-otel-collector-wolfi:{{ .Values.version }}

在定义好 AutoOps 的 Helm chart 之后,我们现在可以使用 Cloud Connect 在环境中安装 AutoOps。这个功能让我们能够在 self-managed 的 ECK 集群中使用 Elastic Cloud 服务,而无需安装和维护额外的基础设施。

文档列出了创建 Elastic Cloud Connect 账号以及为每个集群生成必要连接信息的步骤。基于我们的 ECK 环境,我们使用了 Kubernetes 安装方法。

配置好连接后,我们只需要在每个 ECK 集群的 values.yml 中添加一个简单的布尔标志,就能启用 Elastic Agent:

复制代码
cloud-connected-autoops:
  enabled: true

安装完成后,每个已连接的集群都会显示在 AutoOps 概览页面上:

AutoOps 实际应用

我们目前使用 Stack Monitoring 来监控集群健康状况,并使用默认规则向我们发送告警。虽然我们计划在不久的将来迁移到 AutoOps 告警,但我们现有的告警仍依赖 Stack Monitoring。

当我们在告警的 Slack 频道收到 thread pool write rejections 告警时,就有了测试 AutoOps 的机会:

在收到标准警报后,我们查看了 AutoOps 以获取更多上下文。AutoOps 标记了同样的问题,但提供了额外的关键细节,包括导致写入拒绝的确切索引:

接下来,我们导航到 shard Analyzer 页面,该页面可视化分片热点。可视化显示这个特定节点的写入速率最高,并管理两个写入索引。图表还显示其他节点的利用率较低:

为减轻 es-data-3 的负载,我们使用 cluster reroute 命令将较小的写入索引移动到 es-data-5:

复制代码
POST /_cluster/reroute
{
  "commands": [
    {
      "move": {
        "index": ".ds-logs-osquery_manager.result-workstation-2025.09.15-000632",
        "shard": 0, 
        "from_node": "es-data-3",  
        "to_node": "es-data-5"
      }
    }
  ]
}

在执行 reroute 后,es-data-3 的写入线程池立即下降:

如果没有 AutoOps,调查 Elasticsearch 性能问题将需要手动查询各个节点的指标、分片分配和线程池,通常还需要多次调用时间点 API。AutoOps 将这些数据集中管理,实时持续收集,并可视化随时间变化的趋势。因此,我们能够在五分钟内调查并解决一个之前可能需要三十分钟或更长时间的问题

虽然这个示例只是展示了 AutoOps 功能的一部分,但我们的实践经验表明,其详细的指标和可视化使得调查和解决 Elasticsearch 性能问题比以前更简单、更高效。

想了解更多关于自管理集群部署 AutoOps 的信息,请查看公告

原文:https://www.elastic.co/blog/elasticsearch-autoops-on-prem

相关推荐
weixin_446260859 小时前
[特殊字符] 使用 PageIndex 提升文档检索效率,告别向量数据库的局限!
数据库
TsengOnce9 小时前
Docker 安装达梦8数据库-5步成功
java·数据库
存在的五月雨9 小时前
Mysql 函数
数据库·mysql
m0_561359679 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
前方一片光明9 小时前
SQL SERVER—将所有表的cjsj字段改为datetime2(0),去掉毫秒
数据库
老邓计算机毕设9 小时前
SSM医院疫情管理系统e3oxi(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·医疗信息化·ssm 框架·医院疫情管理系统
diediedei10 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
砚边数影10 小时前
决策树实战:基于 KingbaseES 的鸢尾花分类 —— 模型可视化输出
java·数据库·决策树·机器学习·分类·金仓数据库
weixin_4454023010 小时前
Python游戏中的碰撞检测实现
jvm·数据库·python
亓才孓10 小时前
[数据库]数据库
数据库