可观测性的设计原则
可观测性设计是指为了更好地监控、分析和管理系统运行状态而进行的设计。在云原生、微服务等技术越发流行的今天,系统的可观测性变得越来越复杂。云上的可观测性主要从监控指标、链路追踪、日志记录、监控看板和事件告警五大方面来进行设计,从而实现云上全方面的可观测性体系能力建设。
监控指标
系统需要收集和显示有关运行状况的指标,例如CPU使用率、内存使用率、网络流量等。监控系统的指标可以让组织了解系统的健康状况和性能情况,以便在系统出现异常时快速发现问题。
监控指标可以通过监控工具来实现,并允许在发生异常时发送警报。有很多监控工具可以使用,例如Prometheus、Grafana、Zabbix等,以及阿里云提供的云监控服务。这些工具可以定期收集指标,提供可视化的指标报告,并且可以发送警报,以帮助组织及时发现问题。
链路追踪
当系统出现问题时,需要能够追踪系统中每个组件的行为和交互情况。通过在系统中实现分布式跟踪,可以快速定位问题并进行有效的故障排除。
链路跟踪可以通过在系统中添加跟踪标识符来实现。当请求进入系统时,标识符将被添加到请求中,并在整个系统中传递。每个组件都可以将标识符添加到它们的日志中,以便在出现问题时进行故障排除。分布式跟踪可以使用开源工具Jaeger、Zipkin、skywalking或CAT等,阿里云上有ARMS服务来实现。
日志记录
系统需要记录关键事件和故障,以帮助诊断问题和解决故障。对于一个系统来说,日志是非常重要的。它可以记录在系统中发生的一切,包括成功的操作、错误的操作、警告信息等等。因此,日志记录是可观测性设计中最基本的需求之一。通过将事件和错误信息记录到日志文件或数据库中,可以方便地进行故障排除和问题诊断。
但是,仅仅记录日志并不足够,还需要对日志进行有效的管理和分析。如果日志太多,将会成为一个负担,因为它们需要占用存储空间,并且需要花费很长时间来查找有用的信息。因此,需要对日志进行过滤和归档,以便更好地管理它们。
监控看板
为了更好地理解系统的运行状况,需要将监测指标和跟踪信息可视化展示。可视化可以通过图表、仪表盘等方式来实现。
可视化可以帮助我们更好地理解系统的运行状况和性能情况。通过可视化,我们可以快速了解系统中存在的问题,并采取相应的措施来解决问题。可视化可以使用各种工具来实现,例如Grafana、Kibana等。
事件告警
系统需要监测安全事件和行为,例如未经授权的访问、恶意攻击等。安全监测可以通过实现日志记录和实时警报来实现。
安全日志记录可以帮助组织了解系统中的安全事件和行为。通过分析安全日志,可以发现安全漏洞和攻击行为,并采取相应的措施来保护系统安全。实时警报可以及时通知相关人员可能存在的安全威胁,以便迅速采取行动。
总之,可观测性设计需求是为了提高系统的可靠性、稳定性和性能而进行的设计。通过实现上述功能的落地,可以有效地监控和管理系统运行状况。可观测性已经成为一项必须的设计需求,任何一个软件系统都需要考虑可观测性设计。