zabbix 通过 odbc 监控 mssql

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的连接
zabbix 通过 odbc 监控 mssql_第1张图片

[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

zabbix 通过 odbc 监控 mssql_第2张图片
6、配置zabbix模版
找到主机宏输入三个值

{$MSSQL.USER}		
{$MSSQL.PASSWORD}
{$MSSQL.DSN}
这里的dsn就是 之前配置文件里写的 我的这里就是mssql2

zabbix 通过 odbc 监控 mssql_第3张图片
然后在模板这选择mssql的odbc模板
zabbix 通过 odbc 监控 mssql_第4张图片

你可能感兴趣的:(linux,zabbix,sqlserver,数据库)