一、操作场景
注意:说明:
注意:如果需要监控的 MSSQL 是腾讯云 云数据库 SQL Server,推荐使用集成中心 云监控集成,支持一键采集云产品指标。
二、操作步骤
1. 登录 Prometheus 监控服务控制台。
2. 在实例列表中,选择对应的 Prometheus 实例。
3. 进入实例详情页,选择数据采集 > 集成中心。
4. 在集成中心找到并单击 MSSQL,即会弹出一个安装窗口,在安装页面填写指标采集名称和地址等信息,并单击保存即可。
三、配置说明
| 参数 | 说明 |
| 名称 | 集成名称,命名规范如下:名称具有唯一性。名称需要符合下面的正则:'^a-z0-9?(\\.a-z0-9?)*$'。 |
| 用户名 | MSSQL 的用户名称,账号创建及授权请参见 账号创建及授权。 |
| 密码 | MSSQL 的密码。 |
| 域名 | MSSQL 的服务域名。 |
| 端口 | MSSQL 的服务端口。 |
| 标签 | 给指标添加自定义 Label。 |
四、方式二:自定义安装
注意:说明:
注意:为了方便安装管理 Exporter,推荐使用腾讯云 容器服务 来统一管理。
五、前提条件
·在 Prometheus 实例对应地域及私有网络(VPC)下,创建腾讯云容器服务 Kubernetes 集群,并为集群创建 命名空间。
·在 Prometheus 监控服务控制台 选择对应的 Prometheus 实例,然后在数据采集 > 集成容器服务中找到对应容器集群完成关联集群操作。可参见指引 关联集群。
六、操作步骤
步骤1:Exporter 部署
1. 登录 容器服务控制台。
2. 在左侧菜单栏中单击集群。
3. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的管理页面。
4. 执行以下 部署 MSSQL Exporter > 验证 步骤完成 Exporter 部署。
步骤2:部署 MSSQL Exporter
1. 在左侧菜单中选择工作负载 > Deployment,进入 Deployment 管理页面。
2. 在页面右上角单击 YAML 创建资源,创建 YAML 配置,选择对应的命名空间来进行部署服务,可以通过控制台的方式创建。如下以 YAML 的方式部署 Exporter, 配置示例如下:
apiVersion: apps/v1kind: Deploymentmetadata: labels: k8s-app: mssql-exporter # 根据业务需要调整成对应的名称,建议加上 MSSQL 实例的信息 name: mssql-exporter # 根据业务需要调整成对应的名称,建议加上 MSSQL 实例的信息 namespace: mssql-demo # 根据业务需要调整成对应的命名空间spec: replicas: 1 selector: matchLabels: k8s-app: mssql-exporter # 根据业务需要调整成对应的名称,建议加上 MSSQL 实例的信息 template: metadata: labels: k8s-app: mssql-exporter # 根据业务需要调整成对应的名称,建议加上 MSSQL 实例的信息 spec: containers: – name: mssql-exporter image: ccr.ccs.tencentyun.com/rig-agent/common-image:mssql-exporter-v1.3.0 imagePullPolicy: IfNotPresent env: – name: SERVER value: "127.0.0.1" # 根据业务需要调整成对应的 MSSQL 的域名 – name: PORT value: "1433" # 根据业务需要调整成对应的 MSSQL 的端口 – name: USERNAME value: user # 根据业务需要调整成对应的 MSSQL 的用户名 – name: PASSWORD value: "123456" # 根据业务需要调整成对应的 MSSQL 的密码 – name: EXPOSE value: "4000" # 暴露指标端口,根据业务需要调整成对应的端口 ports: – containerPort: 4000 # 开放上述环境变量 EXPOSE 所对应的端口 name: metric-port terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst imagePullSecrets: – name: qcloudregistrykey restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
步骤3:验证
1. 在 Deployment 页面单击上述步骤创建的 Deployment,进入 Deployment 管理页面。
2. 单击日志页签,无报错信息输出即可:
3. 单击 Pod 管理页签进入 Pod 页面。
4. 在右侧的操作项下单击远程登录,即可登录 Pod,在命令行窗口中执行以下 wget 命令对应 Exporter 暴露的地址,可以正常得到对应的 MSSQL 指标。如发现未能得到对应的数据,请检查连接串是否正确,具体如下:
wget -qO- http://localhost:4000/metrics
执行结果如下:
步骤4:添加采集任务
1. 登录 Prometheus 控制台,选择对应 Prometheus 实例进入管理页面。
2. 选择数据采集 > 集成容器服务,选择已经关联的集群,通过数据采集配置 > 新建自定义监控 > YAML 编辑来添加采集配置。
3. 通过服务发现添加 PodMonitors 来定义 Prometheus 抓取任务,YAML 配置示例如下:
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: mssql-exporter # 填写一个唯一名称 namespace: cm-prometheus # 按量实例: 集群的 namespace; 包年包月实例(已停止售卖): namespace 固定,不要修改 spec: podMetricsEndpoints: – interval: 30s port: metric-port # 填写pod yaml中Prometheus Exporter对应的Port的Name path: /metrics # 填写Prometheus Exporter对应的Path的值,不填默认/metrics relabelings: – action: replace sourceLabels: – instance regex: (.*) targetLabel: instance replacement: 'crs-xxxxxx' # 调整成对应的 MSSQL 实例 ID namespaceSelector: # 选择要监控 mssql exporter pod所在的namespace matchNames: – mssql-demo selector: # 填写要监控pod的Label值,以定位目标pod matchLabels: k8s-app: mssql-exporter
七、腾讯云 SQL Server
1. 登录 腾讯云 SQL Server 控制台,选择对应 SQL Server 实例进入管理页面。
2. 在管理页面选择账号管理,然后单击创建账号。
填写账号的名称、密码,账号类型选择普通账号。接着选择需要监控的数据库,并将权限设置为只读。最后单击确定即可完成账号的创建。
八、其他 SQL Server 服务
SQL Server 监控账号需要被授予 VIEW SERVER STATE 和 VIEW ANY DEFINITION 权限。如果还需要监控某个数据库,则还需在该数据库授予相应的 db_datareader 权限。在确保客户端计算机与 SQL Server 数据库服务器连通的前提下,可以使用 SSMS 客户端或 sqlcmd 命令行工具连接到数据库,具体的连接操作指南请参见 腾讯云 SQL Server 产品文档。以下的账号创建操作均基于 SSMS 客户端进行。
1. 在 SSMS 客户端选择文件 > 连接对象资源管理器。
以 {ip,port} 的形式填写服务器名称,身份验证选择 SQL Server 身份验证,接着填写登录名和密码,加密选择可选,最后单击连接完成数据库服务器的连接。
2. 右击上一步连接的数据库,单击新建查询。
在右侧面板中输入 SQL 语句,然后单击执行即可运行该语句。
3. 创建一个 SQL Server 账号,并授予其 VIEW SERVER STATE 和 VIEW ANY DEFINITION 权限。以下示例命令展示了如何创建一个账号名和密码均为 monitor 的监控账号,并授予其监控所需的权限。
USE master;IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = 'monitor') CREATE LOGIN [monitor] WITH PASSWORD=N'monitor', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;GRANT VIEW SERVER STATE TO [monitor];GRANT VIEW ANY DEFINITION TO [monitor];
命令执行结果如下:
4. 要获取某个数据库的监控数据,需要在该数据库中为监控账号创建一个同名的数据库用户,并授予其 db_datareader 角色权限。以下示例展示了如何在名为 prometheus 的数据库中为监控账号 monitor 创建相应的数据库用户并授予权限的命令。
USE prometheus;CREATE USER [monitor] FOR LOGIN [monitor];EXEC sp_addrolemember N'db_datareader', N'monitor';
命令执行结果如下:
九、前提条件
Prometheus 实例已绑定 Grafana 实例。
十、操作步骤
1. 登录 腾讯云可观测平台 Prometheus 控制台,选择对应 Prometheus 实例进入管理页面。
2. 在实例基本信息页面,找到绑定的 Grafana 地址,打开并登录,然后在 database 文件夹中找到 mssql 实例监控面板,查看实例相关监控数据:
十一、配置告警
腾讯云 Prometheus 托管服务支持告警配置,可根据业务实际的情况来添加告警策略。详情请参见 新建告警策略。
十二、附录:MSSQL Exporter 环境变量配置
| 名称 | 描述 |
| SERVER | 必需,MSSQL 服务 IP 或域名 |
| PORT | MSSQL 服务端口,默认1433 |
| USERNAME | 必需,MSSQL 服务用户名 |
| PASSWORD | 必需,MSSQL 服务密码 |
| ENCRYPT | 强制加密设置,默认为 true |
| TRUST_SERVER_CERTIFICATE | 是否信任服务器的证书设置,默认为 true |
| DEBUG | 逗号分隔的启用日志列表,可选 currently supports app 和 metrics |