Prometheus 使用awaragi / prometheus-mssql-exporter 监控 sql server没有指标数据

项目场景:

Prometheus 使用awaragi / prometheus-mssql-exporter 监控 sql server


问题描述

提示:这里描述项目中遇到的问题:

Prometheus 使用awaragi / prometheus-mssql-exporter 监控 sql server
大部分指标没有实际数值(只有 HELP 和 TYPE 定义,没有具体值)

# TYPE mssql_up gauge
mssql_up 1

# HELP mssql_product_version Instance version (Major.Minor)
# TYPE mssql_product_version gauge
mssql_product_version 15.0

# HELP mssql_instance_local_time Number of seconds since epoch on local instance
# TYPE mssql_instance_local_time gauge
mssql_instance_local_time 1745491290
...
# HELP mssql_total_physical_memory_kb Total physical memory in KB
# TYPE mssql_total_physical_memory_kb gauge

# HELP mssql_available_physical_memory_kb Available physical memory in KB
# TYPE mssql_available_physical_memory_kb gauge

# HELP mssql_total_page_file_kb Total page file in KB
# TYPE mssql_total_page_file_kb gauge

# HELP mssql_available_page_file_kb Available page file in KB
# TYPE mssql_available_page_file_kb gauge

原因分析:

权限不足:

许多性能指标需要 VIEW SERVER STATE 权限


解决方案:

提升数据库账户权限

USE master;
GO

-- 授予查看服务器状态的权限
GRANT VIEW SERVER STATE TO User_Prometheus;

如果报错Cannot find the user 'User_Prometheus', because it does not exist or you do not have permission.
说明用户不存在,可以执行下面查询

-- 检查服务器登录账户
SELECT name, type_desc FROM sys.server_principals WHERE name = 'User_Prometheus';

-- 检查master数据库中的用户
USE master;
SELECT name, type_desc FROM sys.database_principals WHERE name = 'User_Prometheus';

database_principals 没有找到用户需要先创建

USE master;
GO

-- 创建数据库用户并映射到登录账户
CREATE USER User_PrometheusFOR LOGIN User_Prometheus;
GO

然后再授权

补充:没有获取到 mssql_io_stall 指标 ,权限不足,需要授权
它需要查询sys.master_files

GRANT VIEW ANY DEFINITION TO User_Prometheus;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值