本人浅析传统IT系统层面的系统监控,不涉及k8s以及Service Mesh,抛砖引玉。
随着系统增多,咱们须要一套可以立体化监控系统去监控你的应用及业务,出现问题可以及时告警,或经过大屏、短信和邮件。多线程
我我的认为监控应该从三个方面进行入手,即:Metrics、Logging、Tracing。架构
- Metrics (指标)
一般指标信息担负着数据可视化的物料信息,好比:计量器、直方图、计数器、TPS等等。
- Logging(日志)
日志信息一般记录了应用程序运行时的详细状态信息。一般会有INFO、WARN、ERROR等级别。
- Tracing(追踪)
在传统的单体应用,如传统的MVC系统中,一般访问逻辑明确。而使用微服务对系统进行从新设计以后,就会带来接口互调,多线程,应用多活状况下的调用次序不明等种种问题。这时迫切须要记录每次请求都通过了哪些主机的那些服务,以及是一次调用会带来系统内部的屡次调用问题。以及Http传输协议的自然低效率问题,都是须要在追踪层面上作考虑的。
监控选型与架构:
- Metrics (指标): Promethues+Grafanna+Influxdb
- Logging(日志): ELK or Spark Streaming
- Tracing(追踪): Zipkin or Skywalking
欢迎关注个人公号:彪悍大蓝猫,持续分享大数据、SpringCloud干货~微服务