mcpField
R
robusta-dev

robusta-dev

github.com/julianobarbosa云与 DevOps1454 次安装2 天前更新
代码仓库

关于 robusta-dev

robusta-dev 是 Robusta 的指南技能,面向 Kubernetes 运维人员,涵盖安装、配置和故障排查,以及通过 playbook 处理告警、补充信息和执行修复。

主要功能

  1. 01安装与配置指南
  2. 02Playbook 触发器和操作参考
  3. 03告警信息补充与修复
  4. 04通知目标配置
  5. 05告警投递故障排查

适用场景

  1. 01在 Kubernetes 集群安装 Robusta
  2. 02为崩溃循环告警添加日志
  3. 03将告警发送到 Slack 或 PagerDuty
  4. 04排查未触发的告警

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill robusta-dev

安装后在 Claude Code 中输入/robusta-dev确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
Actions.md
Installation.md
Playbooks.md
Sinks.md
Triggers.md
Troubleshooting.md
Workflows/
ConfigurePlaybooks.md
ConfigureSinks.md
Install.md
Troubleshoot.md

详细介绍

RobustaDev

Robusta 综合指南——这款 SRE Agent 可通过操作手册、AI 调查和自动修复,将 Kubernetes 告警转化为可执行的洞察。

快速参考

组件用途
操作手册定义告警响应方式的规则引擎
触发器激活操作手册执行的事件
操作修复步骤和信息补充
接收端通知目标(Slack、Teams、PagerDuty 等)

工作流路由

工作流触发条件文件
Install“安装 robusta”、“部署 robusta”Workflows/Install.md
ConfigurePlaybooks“创建操作手册”、“配置操作手册”Workflows/ConfigurePlaybooks.md
ConfigureSinks“设置 slack”、“配置通知”Workflows/ConfigureSinks.md
Troubleshoot“robusta 无法正常工作”、“告警未触发”Workflows/Troubleshoot.md

快速开始安装

前提条件
  • Kubernetes 集群
  • 已安装 Helm 3.x
  • 已配置 kubectl
一体化安装(Robusta + Prometheus)
# Generate configuration
pipx run robusta-cli gen-config --enable-prometheus-stack

# Or using Docker
curl -fsSL -o robusta https://docs.robusta.dev/master/_static/robusta
chmod +x robusta
./robusta gen-config --enable-prometheus-stack

# Install via Helm
helm repo add robusta https://robusta-charts.storage.googleapis.com
helm repo update
helm install robusta robusta/robusta \
  -f ./generated_values.yaml \
  --set clusterName=<YOUR_CLUSTER_NAME>

# Verify installation
kubectl get pods -A | grep robusta
独立安装(使用现有 Prometheus)
pipx run robusta-cli gen-config
helm install robusta robusta/robusta -f ./generated_values.yaml

操作手册结构

# Example playbook in generated_values.yaml
customPlaybooks:
  - triggers:
      - on_prometheus_alert:
          alert_name: KubePodCrashLooping
    actions:
      - logs_enricher: {}
      - pod_events_enricher: {}
    sinks:
      - slack
触发器类型
触发器说明
on_prometheus_alert在 Prometheus/AlertManager 告警触发时运行
on_pod_createPod 创建时运行
on_pod_updatePod 更新时运行
on_deployment_updateDeployment 变更时运行
on_schedule基于 Cron 的定时执行
on_kubernetes_warning_eventKubernetes 警告事件发生时运行
常见操作
操作用途
logs_enricher将 Pod 日志添加到告警中
pod_events_enricher添加 Kubernetes 事件
node_cpu_enricher添加 CPU 指标
node_memory_enricher添加内存指标
deployment_status_enricher添加 Deployment 信息
delete_pod通过删除 Pod 自动修复
node_bash_enricher在节点上运行 bash 命令

接收端配置

Slack
sinksConfig:
  - slack_sink:
      name: main_slack
      slack_channel: alerts
      api_key: "<SLACK_BOT_TOKEN>"
Microsoft Teams
sinksConfig:
  - ms_teams_sink:
      name: teams_alerts
      webhook_url: https://outlook.office.com/webhook/...
PagerDuty
sinksConfig:
  - pagerduty_sink:
      name: pagerduty
      api_key: your-integration-key
Webhook(通用)
sinksConfig:
  - webhook_sink:
      name: custom_webhook
      url: https://your-endpoint.com/alerts

示例

示例 1:安装带 Prometheus 的 Robusta

User: "Install Robusta on my AKS cluster"
-> Generate config with gen-config --enable-prometheus-stack
-> Add Helm repo and install with cluster name
-> Verify pods are running

示例 2:创建崩溃循环信息补充操作手册

User: "Add pod logs to CrashLoopBackOff alerts"
-> Create playbook with on_prometheus_alert trigger
-> Add logs_enricher and pod_events_enricher actions
-> Configure Slack sink for notifications

示例 3:配置 Slack 通知

User: "Send Robusta alerts to #k8s-alerts Slack channel"
-> Add slack_sink to sinksConfig
-> Set channel name and API key
-> Optionally filter by severity or namespace

示例 4:排查缺失的告警

User: "Robusta isn't sending alerts to Slack"
-> Check robusta-runner pod logs
-> Verify sink configuration in generated_values.yaml
-> Test with manual trigger: robusta playbooks trigger

核心概念

告警流程
Prometheus Alert -> AlertManager -> Robusta -> Playbook -> Actions -> Sinks
操作手册组件
  1. 触发器 - 哪些事件会激活操作手册
  2. 操作 - 触发后要执行的操作(补充信息、修复)
  3. 接收端 - 将结果发送到何处
智能分组

Robusta 使用 Slack 主题串对相关告警进行分组,以减少通知刷屏。

AI 调查(HolmesGPT)

Robusta Pro 或可自托管的 HolmesGPT 提供可选的 AI 根因分析功能。

参考文档

  • references/Installation.md - 详细安装指南
  • references/Playbooks.md - 完整的操作手册参考
  • references/Triggers.md - 所有触发器类型
  • references/Actions.md - 可用操作
  • references/Sinks.md - 接收端配置
  • references/Troubleshooting.md - 常见问题及解决方法

外部资源


注意事项

  • customPlaybooks 的顺序很重要——相同触发条件下会采用第一个匹配项: 如果顶部有一个没有 alert_name: 过滤条件的兜底 on_prometheus_alert,它会拦截所有告警,下面的特定告警操作手册就不会触发。务必将特定告警操作手册放在前面,通用操作手册放在最后。
  • slack_sink 中的 api_key 是机器人令牌(xoxb-),不是 Webhook URL: 在此处粘贴 Webhook URL 会静默失败——Robusta 记录一次“auth failed”后便停止。机器人模式请使用 slack_channel + api_key,或者切换到其他接收器类型以通过 Webhook 发送。
  • delete_pod 自动修复没有速率限制: 如果配置错误的 CrashLoopBackOff 操作手册对一个频繁抖动的部署执行 delete_pod 操作,就会不断循环删除 Pod,耗尽子网中的 Pod IP。务必与 on_prometheus_alert + firing 过滤条件搭配使用,不要使用 Pod 状态触发条件。
  • gen-config --enable-prometheus-stack 会安装完整的 kube-prometheus-stack: 在已有 Prometheus 的集群上运行此命令会产生两个互相抓取数据的 Prometheus 实例。与现有监控集成时,请使用普通的 gen-config(不带标志)。
  • ms_teams_sink 的 Webhook URL 已于 2024 年弃用——连接器将停止服务: 现有 Webhook URL 短期内仍可使用,但随后会返回 410。请在弃用期限到来前迁移到 Power Automate 工作流或新的 Teams 接收器格式。
  • 智能分组使用 Slack 线程——如果频道禁用了线程功能或仅使用 Webhook,就会失效: 告警仍会发送,但“分组”会拆分成单条消息,恰恰在该功能旨在防止通知泛滥时造成消息刷屏。请确认频道已启用线程功能,并且使用的是机器人模式而非 Webhook。

评论

支持 Markdown