自动化工具 活跃维护

st2

StackStorm/st2

StackStorm(也称为“运维版 IFTTT”)是面向 DevOps 和 SRE 的事件驱动自动化,用于自动修复、事件响应、故障排除、部署等。包括规则引擎、工作流、160 个集成包和 6000 个动作(见 https://exchange.stackstorm.org)以及 ChatOps。安装程序见 https://docs.stackstorm.com/install/index.html

6545
Stars 标星
792
Forks 分支
162
Watchers 关注
604
Open Issues
Python
主要语言
Apache-2.0
开源协议
42.6 MB
仓库大小
1 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:StackStorm/st2
git clone https://github.com/StackStorm/st2.git
git clone git@github.com:StackStorm/st2.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

StackStorm 是一个用于跨服务和工具的集成与自动化的平台,可根据事件采取行动。了解更多信息,请访问 www.stackstorm.com。


摘要

StackStorm 概述

关于

StackStorm 是一个跨服务和工具的集成与自动化平台。它将您的现有基础设施和应用环境连接在一起,使您能够更轻松地自动化该环境——特别是专注于对事件做出响应的操作。

StackStorm 有助于自动化常见的操作模式。一些示例如下:

  • 便捷的故障排除 - 在 Nagios、Sensu、New Relic 等监控捕捉到系统故障时触发,对物理节点、OpenStack 或 Amazon 实例及应用组件运行一系列诊断检查,并将结果发布到共享通信环境,如 Slack 或 JIRA。
  • 自动修复 - 在 OpenStack 计算节点上识别并验证硬件故障,正确地疏散实例并通过电子邮件通知虚拟机可能的停机,但如果出现问题——冻结工作流并调用 PagerDuty 唤醒人工处理。
  • 持续部署 - 使用 Jenkins 构建和测试,配置新的 AWS 集群,通过负载均衡器开启部分流量,并根据 NewRelic 应用性能数据进行升级或回滚。

StackStorm 帮助您将这些和其他操作模式组合为规则、工作流或动作;这些规则和工作流——即 StackStorm 平台中的内容——以代码形式存储,这意味着它们支持您目前用于代码开发的协作方式,并可以通过 StackStorm Exchange 与更广泛的开源社区共享。

谁在使用 StackStorm?

查看已知 StackStorm ADOPTERS.md 和 思想领袖 的列表。

工作原理

StackStorm 架构

StackStorm 通过一套可扩展的适配器接入环境:传感器和动作。

  • 传感器 是用于入站集成的 Python 插件,监控来自外部系统的事件,当事件发生时触发 StackStorm 触发器。

  • 触发器 是 StackStorm 对外部事件的表示。有通用触发器(例如定时器、Webhooks)和集成触发器(例如 Sensu 警报、JIRA 问题更新)。可以通过编写传感器插件定义新触发器类型。

  • 动作 是 StackStorm 的出站集成。有通用动作(SSH、HTTP 请求)、集成动作(OpenStack、Docker、Puppet),或自定义动作。动作可以是 Python 插件,也可以是任何脚本,通过添加几行元数据导入 StackStorm。动作可以由用户通过 CLI、API 或 Web UI 直接调用,也可以作为自动化的一部分——规则和工作流被使用和调用。

  • 规则 将触发器映射到动作(或工作流),应用匹配条件,并将触发器的有效负载数据映射到动作输入。

  • 工作流 将动作拼接成“超动作”,定义顺序、转换条件,并将上下文数据从一个动作传递到下一个动作。大多数自动化是多步骤的(例如:不止一个动作)。工作流,就像“原子”动作一样,可在动作库中使用,并可以手动调用或通过规则触发。

  • 包 是内容部署的单元。它们通过将集成(触发器和动作)和自动化(规则和工作流)分组来简化 StackStorm 可插拔内容的管理和共享。越来越多的包可以在 StackStorm Exchange 上获取。用户可以创建自己的包,在 GitHub 上共享,或者提交到 StackStorm Exchange 组织。

  • 审计跟踪 是动作执行的历史列表,无论是手动还是自动执行,并记录和存储触发上下文和执行结果的完整细节。它也会被捕捉在审计日志中,以便与外部日志和分析工具集成:LogStash、Splunk、statsd 或 syslog。

StackStorm 是一个具有模块化架构的服务。它由松散耦合的微服务组件组成,这些组件通过消息总线通信,并水平扩展以实现大规模自动化。StackStorm 提供完整的 REST API、CLI 客户端和 Web UI,供管理员和用户本地或远程操作,以及方便开发者使用的 Python 客户端绑定。

StackStorm 是一个成熟的项目,仍由广泛的社区积极开发。

文档

更多文档,包括安装流程、操作/规则/工作流创建,以及如何设置和使用触发器/传感器,可在 https://docs.stackstorm.com 查阅。

黑客/贡献

要设置开发环境并从源代码运行 StackStorm,请按照这些说明操作。

有关如何贡献、我们的样式指南、编码规范等信息,请访问我们文档中的开发部分。

安全

如果您认为发现了安全问题或漏洞,请将其描述发送到我们的私人邮件列表 info [at] stackstorm [dot] com。

一旦您提交了问题,您应该会在 48 小时或更短时间内收到我们团队成员的确认。如果需要进一步的操作,您可能会收到额外的后续邮件。

欲了解更多信息,请参阅 https://docs.stackstorm.com/latest/security.html

本站来源与版权声明
  • 本文标题:st2 - StackStorm(也称为“运维版 IFTTT”)
  • 本文链接:https://cn121.com/automation/stackstorm-st2.html
  • 原项目:StackStorm/st2 版权归原作者 StackStorm 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 StackStorm/st2。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。