1. 监控概述
为什么要监控?
自动问题发现:通过实时监控系统,可以自动识别产品和底层架构中的问题,并通知相关人员进行处理。
及时故障管理:实时反馈系统状态,有助于迅速发现和解决问题,从而减少故障影响范围。
数据分析:监控收集的数据可以用于进一步分析和智能化处理,如用于 AI 和 Ops 等领域。
历史追溯与趋势分析:监控提供的数据可用于问题追溯、性能评估以及未来趋势分析。
怎么进行监控?
使用监控工具:
优点:快速部署。
缺点:不适用于长时间历史数据分析,缺乏可视化功能。
使用监控系统:
优点:提供完整的工作流。
缺点:可能需要复杂的部署和设置。
示例:开源系统如 Zabbix、OpenFalcon、Prometheus(适合容器监控),以及各类商业产品。
监控什么?
监控对象包括硬件、系统、应用、安全、API 和业务流量。
监控对象
监控内容
硬件监控
温度、硬件故障等。
系统监控
CPU 利用率、内存使用、磁盘 IO、网络流量等。
应用监控
如 Nginx、Tomcat、MySQL、Redis 等的性能和稳定性。
日志监控
系统日志、服务日志、访问日志、错误日志等。
安全监控
WAF 检测、防止敏感文件被篡改。
API 监控
可用性、请求数量、响应时间等。
业务监控
如订单数量、注册用户数、活跃用户数等业务指标。
流量分析
用户地理位置、页面访问情况、页面停留时间等信息。
硬件监控
监控 CPU、主板、硬盘、网卡等硬件的故障和温度。
故障监控:及时发现硬件故障。
温度监控:预防硬件过热导致故障。
系统监控
监控 CPU 利用率、内存使用、磁盘 IO 等。
CPU 监控:评估服务器负载。
内存监控:评估资源利用率。
磁盘 IO 监控:评估磁盘性能。
应用监控
监控并发数、响应时间、错误率等。
并发数监控:评估服务器承载能力。
响应时间监控:评估应用性能。
错误率监控:评估应用稳定性。
日志监控
监控系统日志、服务日志、访问日志、错误日志。
通过日志分析异常,及时发现并处理问题。
安全监控
包括 WAF 和敏感文件监控。
WAF:检测和阻止恶意访问。
敏感文件监控:防止敏感文件被恶意代码修改和植入。
API 监控
监控 API 的可用性、请求数量、请求类型、响应时间等。
业务监控
监控网站订单数量、用户注册数、活跃用户数等业务指标,通过数据库分析数据,优化业务决策。
流量分析
分析用户流量,获取用户分布、页面访问情况、停留时间等,优化用户体验和业务效益。
准备工作
在进行实时监控之前,需要进行如下准备:
熟悉被监控对象
整理监控指标
定义告警阈值
制定故障处理流程
Prometheus 的监控范围
硬件监控:可通过第三方提供的代理进行监控。
系统和应用监控:官方提供的 exporter 可以暴露系统数据,适合 Prometheus。
日志、安全和业务监控:Prometheus 对此支持较弱。
API 监控:擅长 HTTP 服务监控。