1、环境
操作系统:龙蜥os 8.0
zabbix:6.0
mssql:2012
2、安装odbc
注意:需要在zabbix server 或者 zabbix proxy 安装 odbc驱动程序
dnf -y install unixODBC unixODBC-devel
3、安装mssql驱动程序
注意:我最开始尝试安装的微软提供的odbc,但是在连接数据库时候出现ssl认证错误,我关闭了认证还是不行,最后使用的freetds
https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16&tabs=redhat18-install%2Calpine17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offline
安装epel源
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
安装freetds
yum -y install freetds
4、mssql建立zabbix监控用户
在mssql 上建立查询,输入如下
USE [master]
GO
CREATE LOGIN zbx_monitor
WITH PASSWORD=N'superSecurePassword',
DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO
GRANT VIEW SERVER STATE TO zbx_monitor
GO
GRANT VIEW ANY DEFINITION TO zbx_monitor
GO
USE msdb;
GO
CREATE USER zbx_monitor
FOR LOGIN zbx_monitor;
--EXEC sp_addrolemember @rolename='public', @membername=zbx_monitor;
--EXEC sp_addrolemember N''db_datawriter'', zbx_monitor
GRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zbx_monitor;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zbx_monitor;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zbx_monitor;
GRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zbx_monitor;
5、配置文件写
unixodbc 配置文件在/etc下
odbcinst 这里是驱动程序信息
odbc这个连接信息
建立一个mssql的连接
[mssql2]
Driver = FreeTDS
Server = 10.99.14.200
PORT = 1433
Database = msdb
TDS_Version = 8.0
mssql2 这个就是连接dsn了
可以使用isql 加这个名字进行连接测试,如果登录成功,就说明配置没问题
isql -v mssql2 zbx_monitor zabbix
6、配置zabbix模版
找到主机宏输入三个值
{$MSSQL.USER}
{$MSSQL.PASSWORD}
{$MSSQL.DSN}
这里的dsn就是 之前配置文件里写的 我的这里就是mssql2
然后在模板这选择mssql的odbc模板