赞
踩
在实际的运维工作中,监控软硬件借助自研或者第三方的监控插件将极大客观的展示被监控系统的状态,以及对系统问题的及时预防发挥重大的作用。
如下采用几张网摘图片阐述监控的意义:
监控系统有如下七大作用
实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据
实时反馈监控状态:通过对采集的数据进行多维度统计和可视化展示,能实时体现监控对象的状态是正常还是异常
预知故障和告警:能够提前预知故障风险,并及时发出告警信息
辅助定位故障:提供故障发生时的各项指标数据,辅助故障分析和定位
辅助性能调优:为性能调优提供数据支持,比如慢 SQL,接口响应时间等
辅助容量规划:为服务器、中间件以及应用集群的容量规划提供数据支撑
辅助自动化运维:为自动扩容或者根据配置的 SLA 进行服务降级等智能运维提供数据支撑
如何使用监控系统
了解监控对象的工作原理:要做到对监控对象有基本的了解,清楚它的工作原理。比如想对 JVM
进行监控,你必须清楚 JVM
的堆内存结构和垃圾回收机制
确定监控对象的指标:清楚使用哪些指标来刻画监控对象的状态?比如想对某个接口进行监控,可以采用请求量、耗时、超时量、异常量等指标来衡量
定义合理的报警阈值和等级:达到什么阈值需要告警?对应的故障等级是多少?不需要处理的告警不是好告警,可见定义合理的阈值有多重要,否则只会降低运维效率或者让监控系统失去它的作用
建立完善的故障处理流程:收到故障告警后,一定要有相应的处理流程和 oncall
机制,让故障及时被跟进处理
监控对象
硬件监控:电源状态、CPU
状态、机器温度、风扇状态、物理磁盘、raid
状态、内存状态、网卡状态
服务器基础监控
数据库监控:数据库连接数、QPS
、TPS
、并行处理的会话数、缓存命中率、主从延时、锁状态、慢查询
中间件监控
监控系统的基本流程
数据采集:采集的方式有很多种,包括日志埋点进行采集(通过 Logstash
、Filebeat
等进行上报和解析),JMX
标准接口输出监控指标,被监控对象提供 REST API
进行数据采集(如 Hadoop
、ES
),系统命令行,统一的 SDK
进行侵入式的埋点和上报等
数据传输:将采集的数据以 TCP
、UDP
或者 HTTP
协议的形式上报给监控系统,有主动 Push
模式,也有被动 Pull
模式
数据存储:有使用 MySQL
、Oracle
等 RDBMS
存储的,也有使用时序数据库 RRDTool
、OpentTSDB
、InfluxDB
存储的,还有使用 HBase
存储的
数据展示:数据指标的图形化展示
监控告警:灵活的告警设置,以及支持邮件、短信、IM
等多种通知通道
P.S
以上内容摘自石杉的架构笔记,如有侵权,请私信删除,感谢!
点击 ADD DATA SOURCES
选择需要展示的数据源,这里选择 Prometheus
P.S
这里除了可以收集 Prometheus
的时序数据库,还能收集 Elasticsearch
、 Zipkin
、 MySQL
、 PstgreSQL
、 Microsoft SQL Server
、 Oracle
等信息
输入 Prometheus
的访问地址,保存并测试退出
Prometheus
数据源配置成功
导入展示 node_exporter
报表的模板
输入需要导入的模板号(这里可以在社区找到更多更好的开源模板)
修改模板名称,选择 Prometheus
数据源后点击 Import
监控详细信息如下
导入展示 mysql_exportet
报表的模板
输入需要导入的模板号(这里可以在社区找到更多更好的开源模板)
修改模板名称,选择 Prometheus
数据源后点击 Import
监控详细信息如下
导入展示 应用程序
报表的模板
输入需要导入的模板号(这里可以在社区找到更多更好的开源模板)
修改模板名称,选择 Prometheus
数据源后点击 Import
监控详细信息如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。