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 服务监控。