

# OPS07-BP04 根据行动手册调查问题
<a name="ops_ready_to_support_use_playbooks"></a>

 行动手册是用于调查事件的分步指南。发生事件时，行动手册用于开展调查，以及确定影响的范围和根本原因。行动手册可用于从失败的部署到安全事件的各种场景。在许多情况下，行动手册可确定根本原因，而运行手册可用来缓解其带来的风险。行动手册是贵组织事件响应计划的必要组成部分。 

 出色的行动手册有几个主要特点。它逐步指导用户完成事件发现过程。由外而内地思考，用户应执行哪些步骤来诊断事件？ 如果行动手册中需要特殊工具或提升的权限，请在行动手册中明确地定义。请制定沟通计划，以向利益相关者提供有关调查状态的最新信息，这是事件响应计划的一个重要组成部分。在无法确定根本原因的情况下，行动手册应制定上报计划。如果确定了根本原因，行动手册应指出介绍如何解决根本原因的运行手册。应集中存储并定期维护行动手册。如果行动手册用于特定提醒，请向团队提供关于提醒中的行动手册的提示。 

 随着组织日趋成熟，可自动实施行动手册。从包含低风险事件的行动手册开始实施。使用脚本自动执行发现步骤。确保有配套的运行手册来缓解常见根本原因带来的风险。 

 **期望的结果：** 您的组织有针对常见事件的行动手册。行动手册集中存储在一个位置，可供团队成员使用。行动手册经常进行更新。对于任何已知的根本原因，将制定配套的运行手册。 

 **常见反模式：** 
+  要调查事件，并没有标准方法。 
+  团队成员依靠肌肉记忆或对机构的了解，对失败的部署进行排查。 
+  新的团队成员将学习如何通过试错法来调查问题。 
+  调查问题的最佳实践无法在不同团队之间共享。 

 **建立此最佳实践的好处：** 
+  行动手册可帮助您减轻事件带来的影响。 
+  不同的团队成员可使用同一行动手册，以一致的方式确定根本原因。 
+  可以针对已知的根本原因制定运行手册，从而加快恢复速度。 
+  团队成员根据行动手册能够更快地开始行动。 
+  团队可以使用可重复的行动手册来扩展其流程。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>

 制定和使用行动手册的方式取决于组织的成熟度。如果您是初次使用云，请在中央文档存储库中以文本形式制定行动手册。随着组织日趋成熟，可以使用 Python 等脚本语言实现行动手册的半自动化。可以在 Jupyter notebook 中运行这些脚本来加快发现速度。先进的组织已针对可通过运行手册自动修正的常见问题，制定完全自动化的行动手册。 

 通过列出工作负载所发生的常见事件，开始制定行动手册。为风险较低且根本原因范围已缩小到几个问题的事件选择行动手册。在为较简单的场景制定行动手册后，可以着手处理风险较高的场景或根本原因尚不确定的场景。 

 随着贵组织日趋成熟，您的文本样式的行动手册应实现自动化。通过使用诸如 [AWS Systems Manager Automations](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)之类的服务，可以将纯文本转换为自动化代码。可以针对工作负载运行这些自动化代码，从而加快调查速度。可以激活这些自动化代码以响应事件，从而减少发现和解决事件所需的平均时间。 

 客户可以使用 [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 来响应事件。此服务提供了单一界面对事件进行分类，在发现和缓解问题期间通知利益相关者，并在整个事件中进行协作。它使用 AWS Systems Manager Automations 加快检测和恢复的速度。 

 **客户示例** 

 生产事件影响了 AnyCompany Retail。随时待命的工程师根据行动手册调查了问题。随着他们逐步地解决问题，他们不断为行动手册中确定的关键利益相关者提供最新信息。工程师最终确定，根本原因是后端服务中出现竞态条件。根据运行手册，工程师重新启动了该服务，并使 AnyCompany Retail 重新联机。 

## 实施步骤
<a name="implementation-steps"></a>

 如果您当前没有文档存储库，建议您为行动手册库创建版本控制存储库。您可以使用 Markdown 制定您的行动手册，该服务兼容大多数行动手册自动化系统。如果您从头开始制定行动手册，请使用以下行动手册示例模板。 

```
# Playbook Title ## Playbook Info | Playbook ID | Description | Tools Used | Special Permissions | Playbook Author | Last Updated | Escalation POC | Stakeholders | Communication Plan | |-------|-------|-------|-------|-------|-------|-------|-------|-------| | RUN001 | What is this playbook for? What incident is it used for? | Tools | Permissions | Your Name | 2022-09-21 | Escalation Name | Stakeholder Name | How will updates be communicated during the investigation? | ## Steps 1.Step one 2.Step two
```

1.  如果您当前没有文档存储库或 Wiki，请在版本控制系统中为行动手册创建一个新的版本控制存储库。 

1.  确定需要调查的一个常见问题。它应该是根本原因范围限于几个问题且解决方案风险较低的场景。 

1.  使用 Markdown 模板填写 `Playbook Name（行动手册名称）` 部分以及 `Playbook Info（行动手册信息）`下的字段。 

1.  填写问题排查步骤。尽可能清楚地知道要采取哪些行动，或者应调查哪些方面。 

1.  将行动手册提供给团队成员，让他们仔细阅读并加以验证。如果发现有遗漏之处或某些内容不清楚，请更新行动手册。 

1.  在文档存储库中发布您的行动手册，并告知您的团队和任何利益相关者。 

1.  随着您添加更多的行动手册，这个行动手册库将会不断扩大。在您拥有多个行动手册后，可以开始使用 AWS Systems Manager Automations 等工具自动执行它们，从而使自动化操作和行动手册保持同步。 

 **实施计划的工作量级别：** 低。行动手册应该是集中存储在一个位置的文本文档。对于更加成熟的组织，将转为自动实施行动手册。 

## 资源
<a name="resources"></a>

 **相关最佳实践：** 
+  [OPS02-BP02 确定流程和程序所有者](ops_ops_model_def_proc_owners.md)：行动手册应该有一个负责人来负责维护。 
+  [OPS07-BP03 使用运行手册执行程序](ops_ready_to_support_use_runbooks.md)：运行手册和行动手册类似，但有一个关键区别：运行手册包含期望的结果。在许多情况下，一旦行动手册确定了根本原因，就会使用运行手册。 
+  [OPS10-BP01 使用流程来管理事件、意外事件和问题](ops_event_response_event_incident_problem_process.md)：行动手册是良好的事件、意外事件和问题管理实践的一部分。 
+  [OPS10-BP02 针对每个提醒设置一个流程](ops_event_response_process_per_alert.md)：应使用运行手册和行动手册来响应警报。随着时间的推移，应自动进行这些响应。 
+  [OPS11-BP04 执行知识管理](ops_evolve_ops_knowledge_management.md)：维护行动手册是知识管理的一个关键部分。 

 **相关文档：** 
+ [ 利用自动化行动手册和运行手册实现卓越运营 ](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/)
+  [AWS Systems Manager：使用运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+ [ 使用 AWS Systems Manager Automation 运行手册解决运营任务 ](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/)

 **相关视频：** 
+ [AWS re:Invent 2019：运行手册、事件报告和事件响应 DIY 指南（SEC318-R1） ](https://www.youtube.com/watch?v=E1NaYN_fJUo)
+ [AWS Systems Manager Incident Manager – AWS 虚拟研讨会 ](https://www.youtube.com/watch?v=KNOc0DxuBSY)
+ [ 将脚本集成到 AWS Systems Manager](https://www.youtube.com/watch?v=Seh1RbnF-uE)

 **相关示例：** 
+ [AWS 客户行动手册框架 ](https://github.com/aws-samples/aws-customer-playbook-framework)
+ [AWS Systems Manager：自动化演练 ](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html)
+ [ 使用 Jupyter notebook 和 CloudTrail Lake 构建 AWS 事件响应运行手册 ](https://catalog.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US)
+ [ Rubix – 用于在 Jupyter notebook 中构建运行手册的 Python 库 ](https://github.com/Nurtch/rubix)
+ [ 使用 Document Builder 创建自定义运行手册 ](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html)
+ [ Well-Architected 实验室：根据行动手册和运行手册自动完成操作 ](https://wellarchitectedlabs.com/operational-excellence/200_labs/200_automating_operations_with_playbooks_and_runbooks/)
+ [ Well-Architected 实验室：使用 Jupyter 的事件响应行动手册 ](https://www.wellarchitectedlabs.com/security/300_labs/300_incident_response_playbook_with_jupyter-aws_iam/)

 **相关服务：** 
+ [AWS Systems Manager Automation ](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)
+ [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html)