我正在研究可以让我跟踪和记录基础设施上发生的所有事件的工具(或建议)。
我们有几台服务器(50 多台),而且这个数字将来还会增加,所以我想更好地了解一个月左右正在发生或可能出错的事情,并帮助我改进系统或服务中容易出现故障的部分。
例如 - 如果某个 Web 服务器在某些实例上出现故障,或者由于备份服务器上没有可用空间或者发生 DDoS 攻击而导致备份未完成,我想记录下来(何时、为何、在哪里、我们如何修复它等等)。
我们有中央监控系统(Check_MK、Logstash + Kibana、网络流量分析器……)和警报系统,我可以直接从 Check_MK 生成可用性报告,但该报告并不准确,我们会将其与客户共享。我需要将其供我们内部使用。
我做了一些研究,但一无所获——这方面没有真正的标准或工具,所以我需要来自已经处理过这个问题的人的建议,使用什么工具,或者,如果没有工具(我们完全有能力自己开发一个),在记录这类事情时,最佳实践是什么?你记录了什么?
答案1
由于误解,旧答案偏离主题。留作参考:
事实上有多种工具可以实现您的需要。
例如:
- logstash(您已经知道)
- 灰树
- 普罗米修斯
每一个都需要你以某种方式定义触发器,这样你才能收到通知。不过,对于这个平台来说,深入研究多个工具的这个问题实在是太难了。
在构建真正有用的监控和警报系统时,需要考虑多个主要领域。
收集/监控/汇总:
- 系统可用性(硬件、软件、服务)
- 这些系统运行过程中的错误(日志、正确的响应)
- 随时间的变化(系统参数指标,即磁盘空间和负载、服务响应时间、新版本的推出)
然后需要定义警报级别:
- 主机/服务启动/关闭
- 进程运行
- 加载超过 x.xx,x.xx,x.xx
- x.xx下的磁盘空间
- 数据增长率大于x.xx MB/天
- http 500 响应 > x/秒
- ETC
答案2
我们使用票务系统(atlassian jira)来处理以下事项:
- 我们创建了一个“操作事件”项目,并在项目级别强制执行接收者(观察者)
- 以及一个新的任务类型“事件”,其中所有这些项目都有自己的表单字段。
因此,如果发生事件,我们会打开新的工单,填写我们了解的信息,并在事件发生期间保持最新状态。在事件得到解决并完成后续处理(主要是根本原因分析)后,我们会关闭问题。
优点:
- 每个利益相关者从一开始就参与(或至少了解)
- 当客户投诉时,客户支持有一个中心点来查找信息
- 票务系统允许工作日志和讨论
- 我们有一个档案以供将来参考
- 我们可以使用 jira 的内置报告功能来生成有关 KPI 的报告,例如“恢复时间”