关于 robusta-dev
robusta-dev 是 Robusta 的指南技能,面向 Kubernetes 运维人员,涵盖安装、配置和故障排查,以及通过 playbook 处理告警、补充信息和执行修复。
主要功能
- 01安装与配置指南
- 02Playbook 触发器和操作参考
- 03告警信息补充与修复
- 04通知目标配置
- 05告警投递故障排查
适用场景
- 01在 Kubernetes 集群安装 Robusta
- 02为崩溃循环告警添加日志
- 03将告警发送到 Slack 或 PagerDuty
- 04排查未触发的告警
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill robusta-dev安装后在 Claude Code 中输入/robusta-dev确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/Actions.mdInstallation.mdPlaybooks.mdSinks.mdTriggers.mdTroubleshooting.mdWorkflows/ConfigurePlaybooks.mdConfigureSinks.mdInstall.mdTroubleshoot.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_create | Pod 创建时运行 |
on_pod_update | Pod 更新时运行 |
on_deployment_update | Deployment 变更时运行 |
on_schedule | 基于 Cron 的定时执行 |
on_kubernetes_warning_event | Kubernetes 警告事件发生时运行 |
常见操作
| 操作 | 用途 |
|---|---|
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
操作手册组件
- 触发器 - 哪些事件会激活操作手册
- 操作 - 触发后要执行的操作(补充信息、修复)
- 接收端 - 将结果发送到何处
智能分组
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- 常见问题及解决方法
外部资源
- 官方文档
- GitHub
- Robusta Platform(SaaS 界面)
注意事项
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