Zabbix 6下的MSSQL by ODBC模板配置
Tags: MSSQLODBCSQL ServerZabbix巡检模板配置监控
这里介绍一下如何在Zabbix 6下面,使用默认自带的模板MSSQL by ODBC来监控SQL Server数据库。官方关于Template DB MSSQL By ODBC的介绍如下链接所示:
1 | https://www.zabbix.com/integrations/mssql |
这个项目对应的github地址为:
1 | https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mssql_odbc?at=release/6.2 |
安装ODBC
当前安装Zabbix 6.2的服务器为RHEL 8,具体版本为:
1 2 | # more /etc/redhat-release Red Hat Enterprise Linux release 8.6 (Ootpa) |
在Zabbix Server或Zabbix Proxy Server上安装ODBC驱动,一般来说,安装Zabbix Server时已经安装了unixODBC等相关包
1 2 3 | # yum list installed | grep unixODBC unixODBC.x86_64 2.3.7-1.el8 @local-rhel-8-for-x86_64-appstream-rpms unixODBC-devel.x86_64 2.3.7-1.el8 @local-rhel-8-for-x86_64-appstream-rpms |
如果没有安装的的话,使用下面命令安装。
1 | #yum –y install unixODBC unixODBC-devel |
安装Microsoft ODBC 18
这里我们不打算安装freetds,我们安装Microsoft ODBC 18。具体可以参考下面链接:
1 2 | https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15 https://learn.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/known-issues-in-this-version-of-the-driver?view=sql-server-ver15#connectivity |
我们去下面链接下载对应的安装包:
1 | https://packages.microsoft.com/rhel/8/prod/ |
本地安装:
1 | #yum localinstall msodbcsql18-18.1.2.1-1.x86_64.rpm |
配置ODBC数据源
检查/etc/odbcinst.ini,你会看到已经配置了ODBC Driver信息
1 2 3 4 | [ODBC Driver 18 for SQL Server] Description=Microsoft ODBC Driver 18 for SQL Server Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.1.so.2.1 UsageCount=1 |
在/etc/odbc.ini中配置数据源,一般是你要监控的SQL Server数据库服务器。我们这里简单测试一下:
1 2 3 4 5 | [TEST] Driver = ODBC Driver 18 for SQL Server Server = 192.168.7.115 Port = 1433 Database = master |
注意,建议你加上TrustServerCertificate选项,具体配置如下所示,如果不加这个选项,你很有可能遇到错误。
1 2 3 4 5 6 | [TEST] Driver = ODBC Driver 18 for SQL Server Server = 192.168.7.115 Port = 1433 Database = master TrustServerCertificate = Yes |
然后测试验证是否可以连接数据库,用具体的数据库账号密码替换username, password
1 2 3 4 5 6 7 8 9 10 | # isql -v TEST username password +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> |
配置zabbix监控
当前Zabbix中默认自带模板“MSSQL by ODBC”,所以不用导入添加这个模板。我们只需在主机的配置中添加模板“MSSQL by ODBC”,然后选择“宏“,点击”继承以及主机宏“,然后分别给下面三个宏输入相关值
1 2 3 | {$MSSQL.DSN} {$MSSQL.PASSWORD} {$MSSQL.USER} |
注意事项:
- 1:你必须事先在被监控的SQL Server数据库上面创建相关账号并授权。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | USE [master] GO CREATE LOGIN [zbx_monitor] WITH PASSWORD=N'KDjyT23765&$-864', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO USE [msdb] GO CREATE USER [zbx_monitor] FOR LOGIN [zbx_monitor] GO GRANT VIEW SERVER STATE TO [zbx_monitor]; GRANT VIEW ANY DEFINITION TO [zbx_monitor]; GRANT SELECT ON msdb.dbo.sysjobs TO zbx_monitor; GRANT SELECT ON msdb.dbo.sysjobservers TO zbx_monitor; GRANT SELECT ON msdb.dbo.sysjobactivity TO zbx_monitor; GRANT EXECUTE ON msdb.dbo.agent_datetime TO zbx_monitor; |
监控指标图形和告警
下面是Template MSSQL by ODBC这个模板的一些监控指标和告警的截图,至于监控的详细指标信息,建议参考官方文档[1],如果你想深入了解一下监控采集的具体数据以及想扩展一些指标,建议参考github上的项目[2]
参考资料
[1]MSSQL by ODBC: https://www.zabbix.com/integrations/mssql
[2]github: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mssql_odbc?at=release/6.2