我已经在 zabbix 5.0 LTS 上创建了新主机,用于监控 SQL Server (2012)。我使用 zabbix 的默认模板 (ODBC 的模板 DB MSSQL)。
我在主机上设置了这个宏
{$MSSQL.DSN} => devdb
{$MSSQL.INSTANCE} => DBDEV115\DBDEV115
{$MSSQL.PASSWORD} => passworduserdb
{$MSSQL.PORT} => 4019
{$MSSQL.USER} => zabbix
之后我看到每个项目都收到了这样的错误消息
Failed: cannot extract value from json by path "$[?(@.object_name=='DBDEV115\DBDEV115:Databases' && @.counter_name=='Transactions/sec' && @.instance_name=='dbColaFlakes')].cntr_value.first()": unsupported construct in jsonpath starting with: "'DBDEV115\DBDEV115:Databases' && @.counter_name=='Transactions/sec' && @.instance_name=='dbColaFlakes')].cntr_value.first()"
此错误是否受实例名称影响?或者 zabbix 不支持?
因为我从这样的查询中获得了实例名称
select @@servername
答案1
解决方案:
1 - 您必须找到真正的实例名称才能使用这样的查询 mssql:
SELECT object_name, counter_name, cntr_value <br>
FROM sys.dm_os_performance_counters<br>
WHERE [object_name] LIKE '%Buffer Manager%'<br>
AND [counter_name] = 'Page life expectancy'<br>
输出必须是这样的: 像这样输出查询
2 - 查找后对象名称在 Zabbix {$MSSQL.INSTANCE} 宏中设置。
像这样:Zabbix 配置