StackStorm/st2

GitHub: StackStorm/st2

StackStorm 是一个面向 DevOps 和 SRE 的事件驱动自动化平台,通过传感器监听外部事件、规则引擎匹配条件、工作流编排多步操作,实现跨系统的自动修复、事件响应和部署自动化。

Stars: 6464 | Forks: 781

[![StackStorm](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/90288df4e4000327.png)](https://www.stackstorm.com) **StackStorm** 是一个跨服务和工具的集成与自动化平台,能够响应事件并执行相应操作。欢迎访问 [www.stackstorm.com](http://www.stackstorm.com/product) 了解更多。 [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/03ab041c5d000328.svg)](https://github.com/StackStorm/st2/actions/workflows/ci.yaml) [![软件包构建状态](https://circleci.com/gh/StackStorm/st2/tree/master.svg?style=shield)](https://circleci.com/gh/StackStorm/st2) [![Codecov](https://codecov.io/github/StackStorm/st2/badge.svg?branch=master&service=github)](https://codecov.io/github/StackStorm/st2?branch=master) [![CII 最佳实践](https://bestpractices.coreinfrastructure.org/projects/1833/badge)](https://bestpractices.coreinfrastructure.org/projects/1833) ![Python 3.6,3.8](https://img.shields.io/badge/python-3.6,%203.8-blue) [![Apache 授权](https://img.shields.io/github/license/StackStorm/st2)](LICENSE) [![加入我们的社区 Slack](https://img.shields.io/badge/slack-stackstorm-success.svg?logo=slack)](https://stackstorm.com/community-signup) [![deb/rpm 软件包](https://img.shields.io/badge/deb/rpm-Packagecloud-%236366f1)](https://packagecloud.io/StackStorm/) [![代码搜索](https://img.shields.io/badge/code%20search-Sourcegraph-%2300B4F2?logo=sourcegraph)](https://sourcegraph.com/stackstorm) [![GitHub Discussions](https://img.shields.io/github/discussions/stackstorm/st2)](https://github.com/StackStorm/st2/discussions) [![Twitter 关注](https://img.shields.io/twitter/follow/StackStorm?style=social)](https://twitter.com/StackStorm/) ## 太长不看 * 安装 准备一台符合[系统要求](https://docs.stackstorm.com/install/system_requirements.html)的纯净 64 位 Linux 主机。运行安装脚本: curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password=Ch@ngeMe * 阅读文档:[https://docs.stackstorm.com/index.html](https://docs.stackstorm.com/install/index.html) * 有问题?请查看 [forum.stackstorm.com](https://forum.stackstorm.com/) * 或加入我们的 [Slack 社区](https://stackstorm.com/community-signup) ## StackStorm 概述 [![StackStorm 5 分钟介绍视频](https://cloud.githubusercontent.com/assets/1294734/10356016/16278d0a-6d27-11e5-987d-c8a7629a69ed.png)](https://www.youtube.com/watch?v=pzZws3ftDtA) ### 关于 StackStorm 是一个跨服务和工具的集成与自动化平台。它将现有的基础设施和应用环境连接起来,从而更轻松地实现环境自动化——特别侧重于响应事件并执行相应操作。 StackStorm 有助于自动化常见的运维模式。一些例子如下: * **便捷故障排查** - 针对 Nagios、Sensu、New Relic 及其他监控系统捕获的系统故障触发操作,在物理节点、OpenStack 或 Amazon 实例以及应用组件上运行一系列诊断检查,并将结果发布到共享的沟通环境中,例如 Slack 或 JIRA。 * **自动修复** - 在 OpenStack 计算节点上识别并验证硬件故障,妥善迁移实例,并通过电子邮件通知 VM 可能的停机时间;但如果出现任何问题——冻结工作流并呼叫 PagerDuty 叫醒相关人员。 * **持续部署** - 使用 Jenkins 构建和测试,配置新的 AWS 集群,通过负载均衡器开启部分流量,并根据 NewRelic 应用性能数据进行推进或回滚。 StackStorm 帮助您将这些以及其他运维模式编写为规则、工作流或操作;这些规则和工作流——即 StackStorm 平台内的内容——被*作为代码 (as code)* 存储,这意味着它们支持与您当今用于代码开发相同的协作方式,并且可以通过 [StackStorm Exchange](https://exchange.stackstorm.org) 与更广泛的开源社区共享。 ### 谁在使用 StackStorm? 请查看已知的 StackStorm [采纳者列表](/ADOPTERS.md) 和 [思想领袖](https://stackstorm.com/stackstorm-thought-leaders/)。 ### 工作原理 #### StackStorm 架构 ![StackStorm 架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/dbb0947dfc000330.png) StackStorm 通过可扩展的适配器集合(即传感器和操作)接入环境。 * **Sensors (传感器)** 是用于入站集成的 Python 插件,它们负责监听来自外部系统的事件,并在事件发生时触发 StackStorm trigger。 * **Triggers (触发器)** 是 StackStorm 对外部事件的表示。有通用触发器(例如定时器、webhook)和集成触发器(例如 Sensu 警报、JIRA 问题更新)。可以通过编写传感器插件来定义新的触发器类型。 * **Actions (操作)** 是 StackStorm 的出站集成。包含通用操作(SSH、HTTP 请求)、集成操作(OpenStack、Docker、Puppet)或自定义操作。操作既可以是 Python 插件,也可以是任何脚本,只需通过添加几行元数据即可整合到 StackStorm 中。用户可以通过 CLI、API 或 Web UI 直接调用操作,也可以在自动化流程(规则和工作流)中使用和调用它们。 * **Rules (规则)** 将触发器映射到操作(或工作流),应用匹配条件,并将触发器的 payload 数据映射到操作的输入。 * **Workflows (工作流)** 将多个操作串联成“超级操作”,定义执行顺序、转换条件,并将上下文数据从一个操作传递到下一个操作。大多数自动化是多步骤的(例如:包含多个操作)。工作流与“原子”操作一样,都可在操作库中找到,并且可以手动调用或由规则触发。 * **Packs (包)** 是内容部署的单元。它们通过将集成(触发器和操作)和自动化(规则和工作流)分组,简化了 StackStorm 可插拔内容的管理与共享。StackStorm Exchange 上提供了数量不断增长的各种包。用户可以创建自己的包,将它们分享在 GitHub 上,或者提交给 StackStorm Exchange 组织。 * **Audit trail (审计追踪)** 是操作执行(无论是手动还是自动化)的历史记录列表,会被记录并存储下来,包含完整的触发上下文和执行结果详细信息。它也会被捕获到审计日志中,以便与外部日志和分析工具(如 LogStash、Splunk、statsd 或 syslog)进行集成。 StackStorm 是一个具有模块化架构的服务。它由通过消息总线进行通信的松散耦合的微服务组件组成,并支持水平扩展以实现大规模自动化。StackStorm 拥有完整的 REST API、CLI 客户端和 Web UI,供管理员和用户在本地或远程进行操作,同时还提供了 Python 客户端绑定以方便开发者使用。 StackStorm 是一个成熟的项目,目前仍由广泛的社区积极开发。 ## 文档 附加文档,包括安装步骤、操作/规则/工作流编写,以及如何设置和使用触发器/传感器,可以在 [https://docs.stackstorm.com](https://docs.stackstorm.com) 找到。 ## 开发 / 贡献 要设置开发环境并从源代码运行 StackStorm,请遵循[这些说明](https://docs.stackstorm.com/development/sources.html)。 有关如何贡献、我们的风格指南、编码约定等信息, 请访问我们文档中的[开发部分](https://docs.stackstorm.com/development/index.html)。 ## 安全 如果您认为自己发现了安全问题或漏洞,请将其描述发送至 我们的私人邮件列表:info [at] stackstorm [dot] com。 提交问题后,您应该会在 48 小时或更短的时间内收到我们团队成员的确认。 如果需要采取进一步行动,您可能会收到后续的跟进邮件。 有关更多信息,请参阅 https://docs.stackstorm.com/latest/security.html ## 版权、许可和贡献者协议 Copyright 2020 The StackStorm Authors. Copyright 2019 Extreme Networks, Inc. Copyright 2014-2018 StackStorm, Inc. 根据 Apache 许可证 2.0 版(“许可证”)授权;除非遵守该许可证,否则您不得使用本作品。您可以在 [LICENSE](LICENSE) 文件中或在以下地址获取该许可证的副本: [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) 通过贡献,您同意这些贡献是您自己的(或已获得您的雇主的批准),并且您根据项目的许可证,向该项目的所有当前和未来的用户和开发者授予全面、完整、不可撤销的版权许可。
标签:ChatOps, IFTTT for Ops, Python, SRE, StackStorm, TCP/UDP协议, 事件驱动, 云计算, 偏差过滤, 工作流引擎, 平台工程, 开源, 开源框架, 持续交付, 持续集成, 搜索引擎查询, 故障排查, 无后门, 特权提升, 网络调试, 自动修复, 自动化, 自动化部署, 规则引擎, 运维自动化, 逆向工具, 集成平台