千家信息网

Zabbix监控 Windows SQL Server

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Zabbix监控 Windows SQL Server[TOC]1. 模板来源此模板来自如下模板的修改和翻译。因为原模板为葡萄牙语。https://share.zabbix.com/databases
千家信息网最后更新 2026年11月03日Zabbix监控 Windows SQL Server

Zabbix监控 Windows SQL Server

[TOC]

1. 模板来源

此模板来自如下模板的修改和翻译。因为原模板为葡萄牙语。
https://share.zabbix.com/databases/microsoft-sql-server/template-windows-sql-server

2. 模板使用

假如zabbix agent目录为D:\zabbix
确保zabbix agent配置文件D:\zabbix\etc\zabbix_agentd.conf
有此配置
Include=D:\zabbix\etc\zabbix_agentd.conf.d\

自定义key文件
D:\zabbix\etc\zabbix_agentd.conf.d\discovery.mssql.server.conf
内容:

# key of zabbixUserParameter=discovery.mssql.databases,powershell.exe -noprofile -executionpolicy bypass -File D:\zabbix\scripts\discovery.mssql.server.ps1 JSONDBUserParameter=discovery.mssql.jobs,powershell.exe -noprofile -executionpolicy bypass -File D:\zabbix\scripts\discovery.mssql.server.ps1 JSONJOBUserParameter=discovery.mssql.data[*],powershell.exe -noprofile -executionpolicy bypass -File D:\zabbix\scripts\discovery.mssql.server.ps1 $1 "$2"

powershell脚本文件
D:\zabbix\scripts\discovery.mssql.server.ps1
内容:

# parameterParam(  [string]$select,  [string]$2)# Login SQLSERVER$username = "username"$password   = "password"# JSONDBif ( $select -eq 'JSONDB' ) {$database = sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;SELECT name FROM master..sysdatabases"$idx = 1write-host "{"write-host " `"data`":[`n"foreach ($db in $database){    if ($idx -lt $database.Count)    {        $line= "{ `"{#MSSQLDBNAME}`" : `"" + $db + "`" },"        write-host $line    }    elseif ($idx -ge $database.Count)    {    $line= "{ `"{#MSSQLDBNAME}`" : `"" + $db + "`" }"    write-host $line    }    $idx++;}write-hostwrite-host " ]"write-host "}"} # STATUSif ( $select -eq 'STATUS' ){sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;SELECT coalesce(max(state),7) from sys.databases where name = '$2'"}# CONNif ( $select -eq 'CONN' ){sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;DECLARE @AllConnections TABLE(    SPID INT,    Status VARCHAR(MAX),    LOGIN VARCHAR(MAX),    HostName VARCHAR(MAX),    BlkBy VARCHAR(MAX),    DBName VARCHAR(MAX),    Command VARCHAR(MAX),    CPUTime INT,    DiskIO INT,    LastBatch VARCHAR(MAX),    ProgramName VARCHAR(MAX),    SPID_1 INT,    REQUESTID INT)INSERT INTO @AllConnections EXEC sp_who2SELECT count(*) FROM @AllConnections WHERE DBName = '$2'"}# JSONJOBif ( $select -eq 'JSONJOB' ){$jobname = sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;SELECT [name] FROM msdb.dbo.sysjobs"$idx = 1write-host "{"write-host " `"data`":[`n"foreach ($job in $jobname){    if ($idx -lt $jobname.Count)    {        $line= "{ `"{#MSSQLJOBNAME}`" : `"" + $job + "`" },"        write-host $line    }    elseif ($idx -ge $jobname.Count)    {    $line= "{ `"{#MSSQLJOBNAME}`" : `"" + $job + "`" }"    write-host $line    }    $idx++;}write-hostwrite-host " ]"write-host "}"}# JOBSTATUSif ( $select -eq 'JOBSTATUS' ){sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;WITH last_hist_rec AS(SELECT ROW_NUMBER() OVER(PARTITION BY job_id ORDER BY run_date DESC, run_time DESC) AS [RowNum], job_id, run_date AS [last_run_date], run_time AS [last_run_time], CASE run_statusWHEN 0 THEN '0'WHEN 1 THEN '1'WHEN 2 THEN '2'WHEN 3 THEN '3'WHEN 4 THEN '4'END AS [status]FROM msdb.dbo.sysjobhistory)SELECT jobs.name AS [job_name], hist.statusFROM msdb.dbo.sysjobs jobsLEFT JOIN last_hist_rec hist ON hist.job_id = jobs.job_idAND hist.RowNum = 1WHERE jobs.name = '$2'" | % {$_.substring($_.length-1) -replace ''} | ForEach-Object {$_ -Replace "N", "5"}}# VERSIONif ( $select -eq 'VERSION' ){sqlcmd -d Master -U $username -P $password -h -1 -W -Q "set nocount on;SELECT   SERVERPROPERTY ( 'ProductVersion' ),   SERVERPROPERTY ( 'Edition' ),   SERVERPROPERTY ( 'ProductLevel' )"}

注意
需要替换脚本中SQL Server的用户和密码;
用zabbix运行用户确认脚本运行正常(手动模拟zabbix运行);

模板xml文件(zabbix3.2版本)
Template Windows LLD MSSQL.xml
内容:

    3.2    2018-02-11T06:11:01Z                        Templates                                                    {Template Windows LLD MSSQL:net.tcp.port[,{$MSSQLPORT}].last(0)}=0            0                        MSSQL ({ITEM.LASTVALUE}) is not running on {HOST.NAME}            0                                    0            2            MSSQL Port is down            0            1                                                    {Template Windows LLD MSSQL:service.info[{$MSSQLAGENT}].count(#3,0,gt)}=3            0                        SQL Server Agent {$MSSQLAGENT} ({ITEM.LASTVALUE}) is not running on {HOST.NAME}            0                                    0            2            Service: SQLSERVERAGENT
Name: SQL Server Agent ({$ MSSQLAGENT})
Description: Performs tasks, monitors SQL Server, triggers alerts, and allows the automation of some administrative tasks.            0            1                                                    {Template Windows LLD MSSQL:service.info[MsDtsServer100].count(#3,0,gt)}=3 and {Template Windows LLD MSSQL:service.info[MsDtsServer100].last()}<>255            0                        SQL Server Integration Services 10.0 ({ITEM.LASTVALUE}) is not runnig on {HOST.NAME}            0                                    0            2            Service: SQLSERVERAGENT
Name: SQL Server Agent ({$ MSSQLAGENT})
Description: Performs tasks, monitors SQL Server, triggers alerts, and allows the automation of some administrative tasks.            0            1                                                    {Template Windows LLD MSSQL:service.info[{$MSSQLSERVER}].count(#3,0,gt)}=3            0                        SQL Server {$MSSQLSERVER} ({ITEM.LASTVALUE}) is not runnig on {HOST.NAME}            0                                    0            2            Service: MSSQLSERVER
Name: SQL Server ({$ MSSQLSERVER})
Description: Offers storage, processing, and controlled access to data and fast transaction processing.            0            1                                                            MSSQL Memory Usage            900            200            0.0000            100.0000            1            1            0            1            0            0.0000            0.0000            0            0            0            0                                                0                    2                    FC6EA3                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\Process(sqlservr)\Private Bytes]                                                                        1                    2                    A54F10                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Memory Manager\SQL Cache Memory (KB)]                                                                        2                    2                    2774A4                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Buffer cache hit ratio]                                                                        3                    2                    6C59DC                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Memory Manager\Memory Grants Pending]                                                                        4                    2                    AC8C14                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Memory Manager\Target Server Memory (KB)]                                                                            MSSQL Statistics            900            200            0.0000            100.0000            1            1            0            1            0            0.0000            0.0000            0            0            0            0                                                0                    0                    6C59DC                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Checkpoint pages/sec]                                                                        1                    0                    AC8C14                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Database pages]                                                                        2                    0                    611F27                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:SQL Errors(_Total)\Errors/sec]                                                                        3                    0                    F230E0                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Lazy writes/sec]                                                                        4                    0                    5CCD18                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Locks(_Total)\Lock Waits/sec]                                                                        5                    0                    BB2A02                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Page life expectancy]                                                                        6                    0                    5A2B57                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\Process(sqlservr)\% Processor Time]                                                                        7                    0                    89ABF8                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:SQL Statistics\SQL Compilations/sec]                                                                        8                    0                    7EC25C                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Buffer Manager\Target pages]                                                                        9                    0                    274482                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:General Statistics\User Connections]                                                                            MSSQL Total Size of Databases and Logs            900            200            0.0000            100.0000            1            1            0            1            0            0.0000            0.0000            0            0            0            0                                                0                    5                    00CC00                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Databases(_Total)\Data File(s) Size (KB)]                                                                        1                    5                    DD0000                    1                    7                    0                                            Template Windows LLD MSSQL                        perf_counter[\{$MSSQLINST}:Databases(_Total)\Log File(s) Size (KB)]                                                                                    MSSQL Databases Status                                                0                    online                                                    1                    restoration                                                    2                    recovering                                                    3                    pending recovery                                                    4                    suspect                                                    5                    emergency                                                    6                    offline                                                    7                    not exist                                                        MSSQL Jobs Status                                                0                    failure                                                    1                    Sucess                                                    2                    Repeat                                                    3                    Canceled                                                    4                    In progress                                                    5                    Never performed                                                        MSSQL Service                                                0                    Initiated                                                    1                    Paused                                                    2                    Start Pending                                                    3                    Pause Pending                                                    4                    Continue Pending                                                    5                    Stop Pending                                                    6                    Stopped                                                    7                    Unknown                                                    255                    Unknown                                                        Service state                                                0                    Down                                                    1                    Up                                        

注意
将xml内容保存为xml文件导入zabbix模板中;
链接到主机后验证和调试直至数据产生;

模板 文件 内容 数据 脚本 运行 数据库 用户 配置 监控 主机 大小 密码 手动 日志 服务器 来源 版本 目录 葡萄 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 与互联网科技公司 互联网 科技 互联网金融公司科技 互联网 的科技创新 杭州互联网科技公司 奇酷互联网络科技 齐家互联网科技有限公司 佰商互联网科技有限公司 哈尔滨新华互联网科技 互联网科技实习生岗位职责 新兴科技互联网创新大赛颁奖典礼 科技类公司包括互联网吗 互联网方面的科技前沿 伍佰万互联网科技怎么赚钱 互联网企业科技类企业如何做账 互联网风格科技公司名称 福建互联网展示科技馆设计 西安左小互联网科技有限公司 优雇互联网科技有限公司 西安纸贵互联网科技有限公司 国智互联网科技 厦门中拓互联网络科技有限公司 镁科技互联网资讯平台 科技与互联网的利与弊 互联网之后的科技是什么 南通创西澳互联网科技有限公司 城市宝互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 10位科技互联网大佬
0