分布式系统——服务端监控

  1. 给系统加上眼睛

谷歌针对分布式系统监
控的经验总结,四个黄金信号(Four Golden Signals)。它指的是,在服务层面一般需要
监控四个指标,分别是延迟,通信量、错误和饱和度。

高并发系统常见组件的监控指标:

分布式系统——服务端监控_第1张图片

你所熟知的 Tomcat 和 Nginx 的访问日志,都是重要的监控日志。你可以通过开源的日志采集工具,将这些日志中的数据发送给监控服务器。目前,常用的日志采集工具有很多,
比如, Apache Flume、 Fluentd和 Filebeat,你可以选择一种熟悉的使用。比如在项目中,我会倾向于使用 Filebeat 来收集监控日志数据。

将数据存储在时间序列数据库中。这类数据库的特点是,可以对带有时间标签的数据,做更有效的存储,而我们的监控数据恰恰带有时间标签,并且按照时间递增,非常适合存储在时间序列数据库中。目前业界比较常用的时序数据库有 InfluxDB、OpenTSDB、Graphite,各大厂的选择均有不同,你可以选择一种熟悉的来使用。

你就可以通过 Grafana 来连接时序数据库,将监控数据绘制成报表,呈现给开发
和运维的同学了
分布式系统——服务端监控_第2张图片

我们从不同的数据源中采集了很多的指标,最终在监控系统中一般会形成以下
几个报表,你在实际的工作中可以参考借鉴:

  1. 访问趋势报表。这类报表接入的是 Web 服务器,和应用服务器的访问日志,展示了服务整体的访问量、响应时间情况、错误数量、带宽等信息。它主要反映的是,服务的整体运行情况,帮助你来发现问题。
  2. 性能报表。 这类报表对接的是资源和依赖服务的埋点数据,展示了被埋点资源的访问量和响应时间情况。它反映了资源的整体运行情况,当你从访问趋势报表发现问题后,可以先从性能报表中,找到究竟是哪一个资源或者服务出现了问题。
  3. 资源报表。 这类报表主要对接的是,使用 Agent 采集的,资源的运行情况数据。当你从性能报表中,发现某一个资源出现了问题,那么就可以进一步从这个报表中,发现资源究竟出现了什么问题,是连接数异常增高,还是缓存命中率下降。这样可以进一步帮你分析问题
    的根源,找到解决问题的方案。

你可能感兴趣的:(数据库,服务器,运维)