暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Zabbix 6下的MSSQL by ODBC模板配置

DBA闲思杂想录 2022-12-07
2078

这里介绍一下如何在Zabbix 6下面,使用默认自带的模板MSSQL by ODBC来监控SQL Server数据库。官方关于Template DB MSSQL By ODBC的介绍如下链接所示:

https://www.zabbix.com/integrations/mssql

这个项目对应的github地址为:

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mssql_odbc?at=release/6.2

安装ODBC

当前安装Zabbix 6.2的服务器为RHEL 8,具体版本为:

# more /etc/redhat-release 
Red Hat Enterprise Linux release 8.6 (Ootpa)

在Zabbix Server或Zabbix Proxy Server上安装ODBC驱动,一般来说,安装Zabbix Server时已经安装了unixODBC等相关包

# 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

如果没有安装的的话,使用下面命令安装。

#yum –y install unixODBC unixODBC-devel

安装Microsoft ODBC 18

这里我们不打算安装freetds,我们安装Microsoft ODBC 18。具体可以参考下面链接:

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

我们去下面链接下载对应的安装包:

https://packages.microsoft.com/rhel/8/prod/

本地安装:

#yum localinstall msodbcsql18-18.1.2.1-1.x86_64.rpm

配置ODBC数据源

检查/etc/odbcinst.ini,你会看到已经配置了ODBC Driver信息

[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数据库服务器。我们这里简单测试一下:

[TEST]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.7.115
Port = 1433
Database = master

注意,建议你加上TrustServerCertificate选项,具体配置如下所示,如果不加这个选项,你很有可能遇到错误。

[TEST]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.7.115
Port = 1433
Database = master
TrustServerCertificate = Yes

然后测试验证是否可以连接数据库,用具体的数据库账号密码替换username, password

# isql -v TEST username password
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

配置zabbix监控

当前Zabbix中默认自带模板“MSSQL by ODBC”,所以不用导入添加这个模板。我们只需在主机的配置中添加模板“MSSQL by ODBC”,然后选择“宏“,点击”继承以及主机宏“,然后分别给下面三个宏输入相关值

{$MSSQL.DSN}
{$MSSQL.PASSWORD}
{$MSSQL.USER}

注意事项:

  • 1:你必须事先在被监控的SQL Server数据库上面创建相关账号并授权。
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;

  • 2:你输入了账号密码后,最好点击右边的T,然后选择密文模式,这样不会显示账号密码的明文了。这样比较安全。


监控指标图形和告警

下面是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


文章转载自DBA闲思杂想录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论