ELK、EFK、Prometheus、SkyWalking、K8s的排列组合
- EFK + K8s
- Prometheus+ K8s
- SkyWalking + K8s
这3个监控组合都非常不错,那在实际生产过程中,对一家中等规模的微服务业务应用,该如何选型呢?
如果企业采用spring + k8s技术栈,EFK + Prometheus + SkyWalking就是我推荐的监控三套件,这三个分别是日志、metrics和调用链监控的利器,社区生态好。
而CAT主要为物理机/虚拟机场景研发,容器环境应该也支持,但是文档资料较少。总体CAT是一个不错的产品,但是相对门槛较高,社区和文档不足。相比而言,skywalking门槛较低,社区文档好,对容器环境有明确的支持。
方法级监控可以用Promethues,但是需要对方法进行埋点,如果是Spring应用,你用MicroMeter对方法添加相应的注解即可。注意,最好在框架层统一埋点。
Skywalking也可以监控到方法级,前提是需要相应的plugin支持,如果现成的plugin监控不到你的方法,你可以扩展或者自己写plugin。
elastic不适合用于数据存储 那我们项目里用elastic 也相当于给skywalking做了数据库,稳定性和效率怎么看?
elastic属于一种高性能大容量的nosql数据存储,底层基于反向索引数据结构,在大数据存储、搜索和分析方面有广泛用途。它可以做skywalking的存储,也可以做普通日志存储。关于性能稳定性和效率,elastic本身是分布式高性能设计,实际要看你的调优和运维能力,国内公司如携程,有超过50台机器做成的elastic集群,每天收集存储超过TB级别数据量。
fluentd V.S logstash 有何优势在k8s中
不能说有明显的优势,logstash历史比较老一点,fluentd比较新一点,目前是云原生支持的项目之一。尽管存在一些差异,但Logstash和Fluentd之间的相似之处大于它们的区别。 Logstash或Fluentd的用户在日志管理方面遥遥领先。
skywalking可和EFK共用ES吗?ES集群个数和内存CPU如何分配?
因为需使用istio的熔断流量控制,istio也有一些trace什么的zipkin,怎么选择?
skywalking当然可和efk共用ElasticSearch,它们用不同的index,实际要不要这样弄,具体要考虑业务场景/容量需求等因素。集群节点个数和内存CPU建议先粗略估算,然后监控起来(ES有很多监控手段),运行一段时间后根据监控数据优化容量规划。
zipkin的trace监控是应用层的,可以和应用/框架代码紧密集成,开发定制灵活性更高。istio的trace是系统层的,对应用层无倾入,但是开发人员的控制和定制弱。具体框架和运维团队要协商综合考虑,哪种更适合,当然也可以两个都用结合起来。
架构图![](https://img-blog.csdnimg.cn/20210112111924313.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNTg5NTEw,size_16,color_FFFFFF,t_70)
参考
- https://logz.io/blog/fluentd-logstash/
相关文章
- 1. k8s 架构概述
- [k8s]prometheus+alertmanager二进制安装实现简单邮件告警
- [k8s]metricbeat的kubernetes模块&kube-metric模块
- K8S学习笔记之Pod OOM排查
- 【k8s】rbac-cluster-role
- 【k8s】Volume-nfs
- 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)
- K8S中NodePort端口范围修改
- k8s中pod文件的定义格式
- 2022-03-24 k8s-结合csi接口完成redis备库重建
- 2022-03-16 k8s的operator-hub中的redis-operator的redis-cluster的CreateRedisLeaderService处理
- 2022-03-11 快速编写k8s的operator
- 【云原生】使用外网Rancher2.5.12搭建阿里云内网K8s 1.20集群
- K8S 搭建 Prometheus (一) 部署 node-exporter, prometheus-server
- Kubernetes(K8s) kubectl attach 常用命令
- Kubernetes(K8s) kubectl cordon, drain, uncordon 常用命令
- 云原生(二十八) | Kubernetes篇之自建高可用k8s集群搭建