# 监控指标 ## 简介 ### 什么是监控 通过对节点资源、产品资源、产品运行状态等数据的采集、整合、上报、展示,为运维工作提供运维数据闭环。 通过提供节点与产品服务的监测功能和高效的问题定位手段,可极大提高运维人员的工作效率。 ### 使用场景 * 日常节点、服务运维检测; * 节点运行异常问题定位(eg: CPU 使用率异常增长); * 服务运行优化(eg: OushuDB 出现大量慢 Sql,通过此现象出现的时间范围、当时系统资源状态等监控信息分析优化方向); * 节点或服务,异常告警; * 指标对比,用于对比同一指标在不同节点上的监控数据(eg: 对比 a、b 两个节点的 CPU 使用率)。 ### 使用限制 * 必须保证在 Skylab 中注册的数据库集群的每个子网中都至少有一个节点与 Skylab 有可连通的管理网络; * 当前必须采用 root 权限启动 lava-assist。 ### 产品架构 监控运维部署结构: ![监控运维部署结构](images/monitor/MonitorDeployStruct.png) * **lava-assist**: 负责收集底层监控信息,Leader 角色的 lava-assist 对外暴露 prometheus exporter 以供 prometheus-server 拉取存储。 * **prometheus-server**: 提供 prometheus 指标服务,包括指标拉取、存储、查询、服务发现(基于文件)。 * **prometheus-tsdb**: prometheus 内置时序数据库,负责存储指标数据。 * **lava-admin**: monitor 模块负责监控数据配置、查询、整合、展示。 ### 产品优势 * 底层基于 prometheus 存储指标数据可与 Grafana 可视化工具无缝对接。 * 默认提供多种监控指标,覆盖基本监控场景。 * 优美简约的页面展示。 * 多粒度选择,指标采集频率可配置。 * 弹性告警设计,支持多维度告警,告警可关联单个节点,也可关联某个集群。 ## 使用指南 ### 基本概念 ![监控首页](images/monitor/MonitorIndex.png) ###### 时间范围 系统提供两种时间选择方式,分别是固定时间范围和自定义时间范围: * **固定时间范围**: 实时、近一天、近七天。实时表示以选择实时选项的时间为结束时间,向前推至1小时时间点为开始时间,查看这两个时间点之间的相关指标变化信息 (近一天、近七天同理) 。固定时间范围选择后,页面持续接收最新指标数据并展示。 * **自定义时间范围**: 可选开始时间与结束时间,最大选择范围依据 prometheus 数据存储配置,当前默认保存 14 天。如果有需要可以通过修改默认 prometheus 配置来满足需求。自定义时间范围不可以动态刷新指标数据。 ###### 数据粒度 数据粒度是在时间维度上按某个时间长度将数据进行一次整合。数据粒度依据不同的时间范围提供不同的可选选项: * **实时**: 按 10 秒、按 1 分钟; * **近一天**: 按 10 分钟、按 1 小时; * **近七天**: 按 1 小时; * **自定义**: 由管理平台决定数据粒度的时间范围; ### 功能介绍 #### 机器监控 在顶部菜单栏的“产品”中点击“监控运维”链接,进入监控运维功能。在左侧侧边栏中点击“机器监控”,在右侧功能栏中将显示“节点列表”,“节点详情”(从节点列表中进入或直接通过 URL 访问)和“指标对比”三项功能。 * 节点列表 在节点列表功能中,可对当前用户下节点的 CPU 使用率、内存使用率、资源实时概览进行实时展示,主要用于快速排查存在问题的节点。SkyLab 展示如下: ![节点列表01](images/monitor/MachineList01.png) 点击某节点的“名称”,可跳转到该节点的详情页。 * 节点详情 在节点详情功能中,将展示该节点的“资源监控”和“告警历史”,SkyLab 展示如下: ![节点详情01](images/monitor/MachineDetail01.png) 其中“资源监控”中,又分成“节点信息”和“指标监控”(包括 TOP 指标)。 “节点信息”为您提供选中节点的系统信息及关联的集群信息。服务还可展示该节点上拥有的服务,及该服务所在的集群的层级关系。SkyLab 展示如下: ![节点详情02](images/monitor/MachineDetail02.png) “指标监控”为您提供了各个系统指标(例如,CPU、系统负载、内存、磁盘 IO、TOP 进程)的资源使用情况。 其中又分为一般指标和 TOP 进程的两种图表展示。 在一般指标的资源展示种,负责展示在对应的时间段的资源使用情况,并且可以单独放大展示。SkyLab 展示如下: ![节点详情03](images/monitor/MachineDetail03.png) 在放大展示的弹出层中,不仅可以更清晰地看到资源使用情况,还可以直接更换时间段和切换显示其他指标。SkyLab 展示如下: ![节点详情04](images/monitor/MachineDetail04.png) * 指标对比 在指标对比功能中,选择需要对比的指标、节点、时间范围及粒度,可在下方查看对比结果,通过对比发现问题节点或指标。SkyLab 展示如下: ![同指标不同节点指标对比](images/monitor/CompareIndicatorInDiffMachine.png) #### 性能分析 在顶部菜单栏的“产品”中点击“监控运维”链接,进入监控运维功能。在左侧侧边栏中点击“性能分析”,在右侧功能区中将显示"基准指标"和"关联指标"两个区域,SkyLab 展示如下: ![性能分析页面](images/monitor/MachinePerformanceAnalysis01.png) 在功能区中的顶部,可以切换不同的节点和不同的时间线。 * 基准指标 在基准指标中,可以选择不同的指标类别,还可以拖拽选择时间区域,与此同时,选择的时间区域,也会同步到关联指标上,SkyLab 展示如下: ![基准指标](images/monitor/MachinePerformanceAnalysis02.png) * 关联指标 在关联指标中,目前展示了 TOP 进程的指标,可以切换 CPU 或者内存的 TOP 类型。同时,由于可能存在很多的进程,所以提供了多选框用于筛选所关注的进程,SkyLab 展示如下: ![关联指标](images/monitor/MachinePerformanceAnalysis03.png) #### 数据库 在顶部菜单栏的“产品”中点击“监控运维”链接,进入监控运维功能。在左侧侧边栏的“数据库”中,包含“总览”、“查询监视器”、“查询历史”、“日志配置”功能。 ##### 总览 总览功能展示集群列表,包含集群名称、集群版本、集群运行时间和连接地址等信息。点击集群名称可在下方展示该集群的“集群概览”和“主机概览”信息。 * 集群概览:集群概览展示指定集群的计算集群状态、存储集群状态、连接数、查询数以及集群整体 CPU、内存随时间变化的曲线。 ![](./images/monitor/db-overview.png) * 主机概览:主机概览页展示集群拓扑结构,以及每个拓扑节点的平均指标。选择某个拓扑节点后,下方节点列表会展示其下所有节点信息。 ![](./images/monitor/db-machines.png) ##### 查询监视器 * 查询:查询监视器定时获取数据库中所有在运行的 SQL(不包含 Lava 内部发起的 SQL 查询),在右上角可通过下拉菜单选择有权限查看的集群。展示信息包含发起查询的用户、访问的数据库、查询提交时间和 SQL 语句内容( SQL 文本只展示前 1024 个字符)。“暂停查询器”按钮可停止刷新数据,“导出全部”按钮可将数据导出为 Excel 文件。 ![](./images/monitor/db-query.png) * 会话:会话监视器定时获取数据库中所有 Session(不包含 Lava 内部连接 Session),在右上角可通过下拉菜单选择有权限查看的集群。展示信息包含发起查询的用户、会话 ID、访问的数据库、会话状态、创建时间和应用程序名称。“暂停查询器”按钮可停止刷新数据,“导出全部”按钮可将数据导出为 Excel 文件。 ![](./images/monitor/db-session.png) * 锁:锁监视器定时获取数据库中所有锁信息,在右上角可通过下拉菜单选择有权限查看的集群。展示信息包含锁类型、访问的数据库、表、会话 ID、锁模式和持有锁等信息。“暂停查询器”按钮可停止刷新数据,“导出全部”按钮可将数据导出为 Excel 文件。 ![](./images/monitor/db-lock.png) [comment]: <> (##### 查询历史) [comment]: <> (用户在“日志配置”功能中开启数据库集群监控后,可在“查询历史”功能中查看指定时间区间的集群 CPU 使用率、内存使用率和在此期间执行的 SQL 的详细记录。) [comment]: <> (![](./images/monitor/DBMonitorHis.png)) [comment]: <> (* **时间范围选择**:系统内置“近30天”、“近7天”、“昨天”、“今天”的快捷选项,或自定义起止时间。也可以在下方折线图中通过圈选的方式选择时间范围。) [comment]: <> (* **CPU 使用率**:数据库集群服务节点和各个计算子集群的节点 CPU 平均使用率。) [comment]: <> (* **内存使用率**:数据库集群服务节点和各个计算子集群的节点内存平均使用率。) [comment]: <> (* **SQL 执行日志列表**:在查询期间内,数据库集群执行的 SQL 语句信息,包括:) [comment]: <> ( * **查询 ID**:此查询 SQL 的唯一 ID。) [comment]: <> ( * **状态**:SQL 执行成功或失败。) [comment]: <> ( * **用户**:执行 SQL 语句的用户。) [comment]: <> ( * **数据库**:执行 SQL 语句的数据库。) [comment]: <> ( * **提交时间**:用户提交 SQL 的时间。) [comment]: <> ( * **执行时间**:SQL 开始执行的时间,执行时间 = 提交时间 + 等待时长。) [comment]: <> ( * **结束时间**:SQL 执行完成的时间,执行结果可能是成功或失败。结束时间 = 执行时间 + 执行时长。) [comment]: <> ( * **虚拟计算集群**:执行 SQL 所使用的虚拟计算子集群。) [comment]: <> (点击“查询 ID”可查看 SQL 的详细信息,包括:SQL 语句的完成文本、SQL 查询计划等信息。如图:) [comment]: <> (![](./images/monitor/DBMonitorDetail.png)) [comment]: <> (##### 日志配置) [comment]: <> (在配置数据库监控策略之前,需要部署 ES(ElasticSearch)集群用于监控日志数据的存储。) [comment]: <> (在“日志配置”功能中,展示当前数据库集群列表,可通过“是否需要开启”开启或关闭该集群的监控功能,并通过“配置”按钮修改监控参数。) [comment]: <> (![](./images/monitor/DBMonitorSetting1.png)) [comment]: <> (开启集群监控或点击“配置”按钮将打开“配置监控日志”窗口,可设置监控参数。) [comment]: <> (![](./images/monitor/DBMonitorSetting2.png)) [comment]: <> (* **主分片数**:ES 索引中的分片数设置, ES6 默认主分片数 3,备分片数 1。) [comment]: <> (* **备份片数**:备分片数指 ES 的备份数,设为 1 表示对每一个 ES 主分片都有一个备份。) [comment]: <> (* **最长保留时间**:日志的最大保留时长,过期日志将被自动删除。) [comment]: <> (* **扫描频率**:间隔 x 秒扫描一次数据库集群节点上监控日志文件的变化。) [comment]: <> (* **每次采集最大缓存**:Filebeat 收集日志时,如果单条日志长度超过该值,后续内容会被舍弃。该设置与 Filebeat 的“queue.mem.events”(采集队列中采集事件数量的最大值,默认 4096)相乘,即为 Filebeat 理论上可能占用的最大内存量。) [comment]: <> (* **执行 SQL 时间采集最短时长**:只采集执行时长大于 x 毫秒的 SQL 执行记录。) [comment]: <> (数据库集群打开监控开关后,显示如下图:) [comment]: <> (![](./images/monitor/DBMonitorSetting3.png)) #### 自定义指标 ##### 自定义指标列表 在“自定义指标列表”功能中,展示当前系统中的自定义监控指标,并可进行新增、删除、批量删除、修改操作。 ![](./images/monitor/UserDefineList.png) 自定义指标状态包括: * **运行中**:自定义指标**创建或修改成功**后进入**运行中**状态 * **创建失败**:自定义指标**创建失败** * **修改失败**:自定义指标**修改失败** * **创建中**:自定义指标**正在创建** * **修改中**:自定义指标**正在修改** 鼠标放置**创建失败**或**修改失败**上,弹出失败提示,如下图所示: ![](./images/monitor/UserDefineListFailed.png) ##### 新增自定义指标 点击“新增”按钮,可新增自定义监控指标。在自定义指标编辑窗口中,可定义指标名称、计量单位、采样间隔、执行 Shell 的用户等参数,并可指定自定义指标生效的节点(支持关联所有节点),编辑自定义指标采集 Shell 脚本。点击“提交”后,自定义指标脚本将发布到指定的各个节点,并生效。 ![](./images/monitor/UserDefineNew.png) ##### 修改自定义指标 点击如下按钮,跳转自定义指标修改界面(与新增自定义指标类似),其中“指标图表类型”不支持修改。 ![](./images/monitor/UserDefineEdit.png) ##### 使用自定义指标定制监控面板 自定义指标可在监控面板和面板组件库中使用。创建自定义指标监控面板可参见“仪表板”章节中的“新建面板”的功能介绍。 ##### 使用自定义指标告警 自定义指标可用于指标告警。自定义指标告警与预定于指标告警用法相同,可参见“告警策略”章节中的“新建告警策略”的功能介绍。