一、介绍
监控系统几乎是每个系统都需要去使用的,
二、监控系统的7大作用
-
实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据。
-
实时反馈监控状态:通过对采集的数据进行多维度统计和可视化展示,能实时体现监控对象的状态是正常还是异常。
-
预知故障和告警:能够提前预知故障风险,并及时发出告警信息。
-
辅助定位故障:提供故障发生时的各项指标数据,辅助故障分析和定位。
-
辅助性能调优:为性能调优提供数据支持,比如慢SQL,接口响应时间等。
-
辅助容量规划:为服务器、中间件以及应用集群的容量规划提供数据支撑。
-
辅助自动化运维:为自动扩容或者根据配置的SLA进行服务降级等智能运维提供数据支撑。
三、开源监控系统
对于监控系统软件,开源的解决方案有流量监控(MRTG、Cacti、Smokeping、Graphite 等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB 等),每种软件都有自己的特点和功能,有各自的侧重点和目标,然而,在设计理念和实现方法上都大同小异,具有共同特征。
四、Prometheus
参考:总结:Prometheus笔记_小魏的博客的博客-CSDN博客_prometheus up
1、介绍
Prometheus是一个开源监控解决方案,用于收集和聚合指标作为时间序列数据。
它结合了查询功能和云原生架构,使其成为现代应用程序的理想监控堆栈。
2、架构图
3、优缺点总结
优点:
- 支持新节点自动发现,无效节点自动剔除
- 免安装agent
- 强大的查询语言PromQL
- 易于集成
-
使用Prometheus可以快速搭建监控服务,并且可以非常方便地在应用程序中进行集成。目前支持: Java, JMX, Python,Go,Ruby, .Net, Node.js等等语言的客户端SDK
-
比如Springboot应用,可以快捷对接prometheus
-
-
数据模型
-
所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB)。
-
每一条时间序列由指标名称(Metrics Name)以及一组标签(Labels)唯一标识。
-
-
可视化UI
-
提供快速查询数据功能
-
查看告警,配置等
-
-
服务发现
-
k8s,euraka等
-
缺点:
五、OpenFalcon
1、介绍
openfalcon是小米公司研发,
后来openfalcon开发人员开发了夜莺监控系统,全站式的
2、架构图
3、优缺点总结
优点:
- 很好的水平扩展能力
- 架构职能清晰
六、Zabbix
Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。能监视各种网络参数,保证服务系统的安全运营,并提供良好的通知机制使系统管理员能够快速定位/解决存在的各种问题。Zabbix 由两部分构成——Zabbixserver 与可选组件 Zabbix agent。Zabbix server 可以单独监视远程服务器的服务状态;同时也可以与 Zabbix agent 配合,可以轮询 Zabbix agent 主动接收监视数据,还可被动接收 Zabbix agent 发送的数据。另外,Zabbix server 支持 SNMP、IPMI、JMX、Telnet、SSH 等多种协议,将采集到的数据存放到数据库,然后对其进行分析整理,若达到条件触发则告警。Zabbix 支持二次开发,其灵活的扩展性和丰富的功能是其他监控系统所不能比拟的,相对来说,它的总体功能做得非常优秀。