云原生监控方案
云原生监控方案
前言:
在快速迭代的云原生时代,Kubernetes 成为了容器编排的首选。然而,伴随着系统的复杂性增加,集群内部的错误和警告往往难以被及时捕捉和理解。所以做好监控显得尤为重要!!!
以下是一些可以用于 K8s 生产集群应用系统监控告警平台:
Sentry-Kubernetes2
功能特点:可将 Kubernetes 集群中的错误和警告发送到 Sentry 进行集中管理和分析。支持多命名空间监视、历史事件上报控制以及自定义日志级别,还能通过注解方式为特定资源指定不同的 Sentry DSN。能与 Sentry 平台无缝集成,利用 Sentry 丰富的问题追踪和分析能力,故障事件可智能分组,减少告警噪音,并可配置邮件、短信等多种通知方式。
应用场景:适用于开发与运维一体化场景,开发者可快速响应 Pod 启动失败等问题,运维人员可通过统一界面查看告警。也适用于大规模或多环境的 Kubernetes 集群,可跨 namespace 监控,方便跨国或分布式团队协作,还能自动监控定时任务 CronJobs。
HertzBeat6
功能特点:集监控、告警、通知为一体,无需 Agent,支持对应用服务、数据库、操作系统、中间件、云原生等进行全面监控。可将 http、jmx、ssh、snmp、jdbc 等协议规范可配置化,通过浏览器配置监控模版 yml 就能自定义采集指标,能快速适配 K8s 等新的监控类型。兼容 Prometheus 系统生态且功能更丰富,有自由的告警阈值规则,可通过邮件、钉钉、微信等多种方式及时送达消息。
应用场景:适用于多种环境下的各类应用系统监控,无论是单体应用还是微服务架构,以及不同规模的 K8s 集群,都能轻松实现监控告警,帮助用户快速搭建自有监控系统。
Kubeshark8
功能特点:是为 Kubernetes 量身定制的 API 流量分析器,能提供实时的协议级可视性,可捕捉并监控所有进出容器、Pods、节点乃至整个集群的网络交通情况。将深度包检测 (DPI) 与机器学习算法相结合,能智能识别和分类不同的通信模式,提供详细的流量统计信息,并迅速发现异常行为,具备强大的可视化能力,可直观展现复杂的网络活动。
应用场景:主要应用于网络流量监控和故障排除,在应用出现问题时,可通过分析网络流量快速定位问题,对于网络通信复杂的 K8s 集群环境,尤其是涉及多种网络协议和微服务通信的场景,能发挥重要作用。
VictoriaMetrics7
•功能特点:是高性能、开源的时间序列数据库,可用于存储和处理监控数据,具有水平扩展性,能轻松应对大规模数据存储和查询需求,兼容 Prometheus,可无缝对接 Prometheus 的监控数据,支持 PromQL 查询语言,方便用户进行数据查询和分析。
应用场景:可作为 Prometheus 的存储后端替代方案,用于存储大量的监控数据,适用于对监控数据存储和查询性能要求较高的 K8s 集群场景,能为告警系统提供可靠的数据支持。
PagerDuty
功能特点:是一个专注于事件管理和告警通知的平台,有强大的告警路由和通知功能,可根据不同的事件类型、优先级等条件,将告警信息准确地发送给相应的人员或团队,支持与众多监控工具和系统集成,能接收来自 Prometheus 等监控系统的告警信息,并进行进一步的处理和通知。
应用场景:主要用于告警通知和事件管理流程,在 K8s 集群监控中,可与其他监控工具配合,当应用 down 机等事件发生时,能及时将告警信息通过多种渠道通知到相关人员,确保问题得到及时处理。
这里展示HertzBeat6:
官方介绍
HertzBeat 赫兹跳动 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。
官方地址
官网地址: https://hertzbeat.dromara.org/
gitee地址: https://gitee.com/dromara/hertzbeat
工具特点
集 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控阈值告警通知一步到位。
易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
将 Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。
兼容Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。
高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 等方式消息及时送达。
提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。
HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助用户快速搭建自有监控系统。
HertzBeat安装
方式一:Docker方式快速安装
docker 环境仅需一条命令即可开始
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat
或者使用 quay.io (若 dockerhub 网络链接超时)
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat
-
1.
浏览器访问
http://localhost:1157即可开始,默认账号密码admin/hertzbeat -
2.
部署采集器集群(可选)
docker run -d -e IDENTITY=custom-collector-name -e MANAGER_HOST=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector
-
-e IDENTITY=custom-collector-name : 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。
-
-e MODE=public : 配置运行模式(public or private), 公共集群模式或私有云边模式。
-
-e MANAGER_HOST=127.0.0.1 : 配置连接主HertaBeat服务的对外IP。
-
-e MANAGER_PORT=1158 : 配置连接主HertzBeat服务的对外端口,默认1158。
方式二:helm方式快速安装
helm repo add hertzbeat https://charts.hertzbeat.apache.org/ helm repo updatehelm pull hertzbeat
修改必要values.yaml
部署
helm install hertzbeat hertzbeat/ -n hertzbeat
结果:
kubectl get po -n hertzbeat
NAME READY STATUS RESTARTS AGE
hertzbeat-67585b5bd8-h7pff 1/1 Running 1 (6h18m ago) 6h21m
hertzbeat-collector-5cb48c877c-tshdh 1/1 Running 0 22h
hertzbeat-database-0 1/1 Running 0 22h
hertzbeat-tsdb-0 1/1 Running 0 22h
更多使用参考官网:

浙公网安备 33010602011771号