SQL Server 配置 Zabbix 监控
Tags: MSSQLSQL ServerZabbix监控
Zabbix 官网有较多的 SQL Server 监控模板,不过这些模板版本老旧、参差不齐,应用到个人系统中总是出现各种问题或无法监控。
这里推荐的,就是 Github 上的开源模板,可监控SQL Server 单实例或者多实例。https://github.com/MantasTumenas/Zabbix-template-for-Microsoft-SQL-Server
功能:
MSSQL性能计数器,MSSQL实例自动发现,MSSQL数据库自动发现,MSSQL数据库备份自动发现,MSSQL代理作业自动发现,MSSQL数据库镜像监视,MSSQL Always On监视,MSSQL日志传送监视。
支持的版本:
在Microsoft SQL Server 2012、2014、2016和2019上进行了测试。它可能适用于早期版本,但某些项目(缺少性能计数器)可能不受支持。
现在部署 zabbix ,推荐5.x 以上的版本,本次实践的版本是 Zabbix5.2,部署在Centos 7.4。若监控Windows 平台上的 SQL Server,推荐安装Powershell 5.1或以上版本(Powershell2.x 有个函数无法使用)。
>> 在 Github 上下载以下文件
本人使用自动发现配置,只需目录With SQL instance discovery 中的文件。但是,因为这些配置有监控各个数据库、代理作业,需要数据库账号访问,这些我们就不监控了。我们只监控实例级别的信息,从性能计数器取值即可。
With SQL instancediscovery 目录中,标志灰色的文件都可以删除。
Documentation | Template for Microsoft SQL Server.docx |
---|---|
Zabbix calculations for MS SQL template.xlsx | |
Scripts | Discovery.mssql.databasename.ps1 |
Discovery.mssql.databasestatus.ps1 | |
Discovery.mssql.instanceagentname.ps1 | |
Discovery.mssql.instancename.ps1 | |
Discovery.mssql.jobname.ps1 | |
Discovery.mssql.jobstatus.ps1 | |
Templates | Template Microsoft SQL Server DE Baseline.xml |
Template Microsoft SQL Server SA Baseline.xml | |
User parameters | zabbix_agentd.userparams.conf |
Zabbix Value Mapping | SQL Agent Job status.xml |
SQL Database status.xml |
>> 导入模板到zabbix
Configuration(配置)>> Templates(模板)>> Import导入模板 Template Microsoft SQLServer DE Baseline.xml
>> 导入映射值到zabbix**(此处不需要)**
Administration(管理)>> General(一般)>> Value mapping(映射值)>> Import 导入
SQL Agent Job status.xml
SQL Database status.xml
>> Zabbix 客户配置
Zabbix 客户端前期已经配置完成,这里我们只需要新增以下3个文件就行了
1 2 3 4 | C:\zabbix_agent\conf\zabbix_agentd.userparams.conf C:\zabbix_agent\Scripts\Discovery.mssql.instancename.ps1 C:\zabbix_agent\Scripts\Discovery.mssql.instanceagentname.ps1 |
先修改文件zabbix_agentd.userparams.conf,把非实例的监控参数注释掉,同时也要把文件的路径修改准确。
再修改zabbix_agentd.conf 文件,include 上面的配置文件。
配置完成后,重启zabbix 客户端代理。此时可登录zabbix 服务器进行验证,查看是否获取到客户端数据
1 2 3 | /var/zabbix/bin/zabbix_get -s <clientIP> -k agent.mssql.discovery /var/zabbix/bin/zabbix_get -s <clientIP> -k instances.mssql.discovery |
现在可以将模板添加到相应的主机了
若是有问题,可查看该主机的 ”自动发现规则”,看看模板的使用情况。
打开主机监控可以看到,服务器中的所有实例都被监控到了。该方案不仅仅只用于多实例,也适用于单实例。当然这是基于性能计数器的监控,若是性能计数器找不到监控项,则监控不到相应数据。
回头看看添加SQLServer 监控是不是挺简单的,对于其他没有的监控项,可到相应模板中创建监控项原型。我们再结合Grafana,做出方便好看的仪表盘,是不是更完美啦!