作者回复: 如果企业采用spring + k8s技术栈的话,EFK + Prometheus + SkyWalking就是我推荐的监控三套件,这三个分别是日志、metrics和调用链监控的利器,是社区主流生态也好,用好就不错。
作者回复: CAT主要为物理机/虚拟机场景研发,容器环境应该也支持,但是文档资料较少。 总体CAT是一个不错的产品,但是相对门槛较高,社区和文档不足。 相比而言,skywalking门槛较低,社区文档好,对容器环境有明确的支持。
作者回复: 方法级监控可以用Promethues,但是需要对方法进行埋点,如果是Spring应用,你用MicroMeter对方法添加相应的注解即可。注意,最好在框架层统一埋点。 Skywalking也可以监控到方法级,前提是需要相应的plugin支持,如果现成的plugin监控不到你的方法,你可以扩展或者自己写plugin。
作者回复: 你看skywalking的版本,我知道最新版本是支持Spring Cloud Gateway的,而且是最近刚增加的支持。 https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Supported-list.md
作者回复: 不能说有明显的优势,logstash历史比较老一点,fluentd比较新一点,目前是云原生支持的项目之一。 这里有一篇较新更新的两者比较文: https://logz.io/blog/fluentd-logstash/ 结论是:“While there are several differences, the similarities between Logstash and Fluentd are greater than their differences. Users of either Logstash or Fluentd are miles ahead of the curve when it comes to log management.” 关于微服务+K8s监控体系,可以参考本课程的补充视频,在我的B站空间上: https://www.bilibili.com/video/BV1ut4y1U7Tz
作者回复: elastic属于一种高性能大容量的nosql数据存储,底层基于反向索引数据结构,在大数据存储、搜索和分析方面有广泛用途。它可以做skywalking的存储,也可以做普通日志存储。关于性能稳定性和效率,elastic本身是分布式高性能设计,实际要看你的调优和运维能力,国内公司如携程,有超过50台机器做成的elastic集群,每天收集存储超过TB级别数据量。
作者回复: skywalking当然是可以和efk共用ElasticSearch的,它们用不同的index,实际要不要这样弄,具体要考虑业务场景/容量需求等因素。集群节点个数和内存CPU建议先粗略估算,然后监控起来(ES有很多监控手段),运行一段时间后根据监控数据优化容量规划。 zipkin的trace监控是应用层的,可以和应用/框架代码紧密集成,开发定制灵活性更高。istio的trace是系统层的,对应用层无倾入,但是开发人员的控制和定制弱。具体框架和运维团队要协商综合考虑,哪种更适合,当然也可以两个都用结合起来。