Zabbix 6中MSSQL by ODBC模板配置手册

这篇具有很好参考价值的文章主要介绍了Zabbix 6中MSSQL by ODBC模板配置手册。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里介绍一下如何在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

具体的配置信息如下:

# cat /etc/odbcinst.ini
[PostgreSQL]
Description=ODBC for PostgreSQL
Driver=/usr/lib/psqlodbcw.so
Setup=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib64/psqlodbcw.so
Setup64=/usr/lib64/libodbcpsqlS.so
FileUsage=1

[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib/libmyodbc5.so
Setup=/usr/lib/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc5.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1

[FreeTDS]
Description=Free Sybase & MS SQL Driver
Driver=/usr/lib/libtdsodbc.so
Setup=/usr/lib/libtdsS.so
Driver64=/usr/lib64/libtdsodbc.so
Setup64=/usr/lib64/libtdsS.so
Port=1433

[MariaDB]
Description=ODBC for MariaDB
Driver=/usr/lib/libmaodbc.so
Driver64=/usr/lib64/libmaodbc.so
FileUsage=1

[Oracle]
Description=ODBC  for Oracle
Driver=/usr/lib/oracle/19.17/client64/lib/libsqora.so.19.1

[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   ##服务器的IP地址
Port = 1433       
Database = master

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

样例1:

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

样例2:

[TEST2]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.7.116,14033
Port = 14033
Database = master
TrustServerCertificate = Yes

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

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

配置zabbix监控

在主机的配置中添加模板“MSSQL by ODBC”,然后选择“宏“,点击”继承以及主机宏“,然后分别给下面三个宏输入相关值

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

注意事项

1:你必须事先在被监控的SQL Server数据库上面创建相关账号并授权。如下所示:

USE [master]
GO
CREATE LOGIN [zbx_monitor] WITH PASSWORD=N'*******', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [msdb]
GO
CREATE USER [zbx_monitor] FOR LOGIN [zbx_monitor]
GO
USE [master]
GO
GRANT VIEW SERVER STATE TO [zbx_monitor];
GRANT VIEW ANY DEFINITION TO  [zbx_monitor];
USE [msdb]
GO
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,然后选择密文模式(抑或先选择密文模式),这样不会显示账号密码的明文了。这样比较安全。如下截图所示:

选择密文保存后,你再次打开查看,此时密码以密文保存。无法查看明文密码了。

配置完成后,你要检查相关的监控选项,自动发现规则下的数据库监控是否正常,有没有一些问题出现。如果配置OK,Zabbix就会自动采集数据了。

配置可能遇到的错误:

错误1:

Cannot connect to ODBC DSN: [SQL_ERROR]:[HYT00][0][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]Login timeout expired]|[08001][258][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]TCP Provider: Error code 0x102]|[08001][258][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]A network-related or instance-specific error has occurred while establishin]

分析: 遇到这个问题是因为防火墙屏蔽了1433端口(也有可能是其他端口,默认是1433,根据实际情况确认)导致,找系统管理员或网络管理人员开放1433端口即可解决。

可以使用下面命令验证端口是否开放。

#telnet 192.168.xxx.xxx 1433 

如果端口是正常的情况下,依然报下面错误

Cannot connect to ODBC DSN: [SQL_ERROR]:[HYT00][0][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]Login timeout expired]|[08001][258][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]TCP Provider: Error code 0x102]|[08001][258][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]A network-related or instance-specific error has occurred while establishin]

那么需要进一步排查,例如,我遇到的案例,是因为odbc配置问题导致,如下所示

验证SQL是否能连接

# isql -v TEST2 xxxxx xxxx
[S1T00][unixODBC][Microsoft][ODBC Driver 18 for SQL Server]Login timeout expired
[08001][unixODBC][Microsoft][ODBC Driver 18 for SQL Server]TCP Provider: Error code 0x102
[08001][unixODBC][Microsoft][ODBC Driver 18 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
[ISQL]ERROR: Could not SQLConnect

/etc/odbc.ini中odbc配置如下所示:

[TEST2]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.7.116
Port = 14033
Database = master
TrustServerCertificate = Yes

改为下面配置就正常了,似乎参数Port不生效。

[TEST2]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.7.116,14033
Port = 14033
Database = master
TrustServerCertificate = Yes

错误2:

Cannot connect to ODBC DSN: [SQL_ERROR]:[08001][-1][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:c]|[08001][-1][[unixODBC][Microsoft][ODBC Driver 18 for SQL Server]Client unable to establish connection]

遇到这个错误是因为加密使用的是数据库上的证书。这个证书需要通过证书机构的验证,除非设置了信任证书的属性(SQL_COPT_SS_TRUST_SERVER_CERTIFICATE, SQL_TRUST_SERVER_CERTIFICATE_YES)或者,链接字符串包含TrustServerCertificate=yes。只要其中任意一项是 true,并且数据库上没有证书的话,那么数据库服务器就能用自己生成并签名的证书来加密链接。

修改/etc/odbc.ini配置文件,增加红色部分(TrustServerCertificate = Yes)即可解决问题。文章来源地址https://www.toymoban.com/news/detail-424066.html

# cat /etc/odbc.ini
[TEST]
Driver = ODBC Driver 18 for SQL Server
Server = 192.168.63.115
Port = 1433
Database = master
TDS_Version = 8.0
TrustServerCertificate = Yes

到了这里,关于Zabbix 6中MSSQL by ODBC模板配置手册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速搭建微信小程序:模板和配置详细介绍

    数据绑定 在data中定义数据 在WXML中使用数据 事件绑定 事件是渲染层到逻辑层的通讯方式 小程序中常用事件 类型 绑定方式 事件描述 tap bindtap 或 bind:tap 手指触摸后马上离开,类似于 HTML 中的 click 事件 input bindinput 或 bind:input 文本框的输入事件 change bindchange 或 bind:change 状态

    2024年02月19日
    浏览(34)
  • 如何使用Zabbix官方模板轻松实现Docker容器监控?

    感谢王军 ZCP(Zabbix 高级认证专家)翻译!欢迎投稿分享你的使用经验。 本文将介绍通过Zabbix监控Docker容器。使用官方模板 Docker by Zabbix agent2 template 很容易实现Docker容器监控。模板下载链接和配置步骤可以在 Zabbix 集成页面上找到。 导入官方Docker模板 安装并配置Zabbix Agent2 Z

    2024年02月05日
    浏览(55)
  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

    1、配置zabbix服务端 2、配置监控主机监控项监控模板 zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客 触发器的本质就是一个条件判断,对于不同的监控数据来说,我们要设置不同的触发器。如一个监控项不关联触发器,将不会提示错误,也不

    2024年02月07日
    浏览(39)
  • MySQL修炼手册4:分组与聚合:GROUP BY与HAVING的应用

    MySQL数据库的强大功能为我们提供了丰富的数据处理工具,其中GROUP BY与HAVING的应用使得数据的分组与聚合变得更加灵活和高效。在本篇博客中,我们将深入研究GROUP BY与HAVING的基础知识,并通过实际案例,展示它们在数据分析中的强大威力。 首先,为了更好地演示GROUP BY与

    2024年02月01日
    浏览(86)
  • 模板匹配相关概念与几种不常用的模板匹配(学都学了,了解一下)

    模板匹配指的是通过模板图像与测试图像之间的比较,找到测试图像上与模板图像相似的部分,这是通过计算模板图像与测试图像中目标的相似度来实现的,可以快速地在测试图像中定位出预定义的目标 是图像处理中最基本、最常用的匹配方法 为感兴趣的对象 创建模型 :使

    2024年02月08日
    浏览(40)
  • ClickHouse集群搭建及ODBC配置

    192.168.122.100  BCEuler01 192.168.122.101  BCEuler02 192.168.122.102  BCEuler03 # systemctl disable firewalld # systemctl stop firewalld # /etc/selinux/config SELINUX=disabled 将BCEuler01设置为时钟同步源 BEEuler01的/etc/chrony.conf: 修改的部分: server 192.168.122.100 iburst allow 192.168.0.0/16 local stratum 10 BCEuler02的/etc/chrony.co

    2024年02月10日
    浏览(40)
  • Zabbix6.2利用模板和自定义监控项监控华为AR3260路由器

    1:登录路由器的WEB管理控制台。在系统管理中找到SNMP然后开启SNMP代理,SNMP的版本可以只选择v2c都选择也无所谓,然后点击新建一个团体。 2:团体名称输入默认的public即可,在WEB端显示的是乱码,但是不影响使用,访问模式选择只读。 3:登录Zabbix在监控中点击主机。 4:然

    2024年02月09日
    浏览(79)
  • ODBC 配置数据源(SQL server)

    1、在控制面板管理工具中找到\\\"数据源ODBC\\\",并启动。 2、点击添加 3、选中 sqlserver 4、填写服务器地址 5、填写登陆账号、密码 6、选择默认连接的数据库 7、配置完成,可以测试连接

    2024年02月07日
    浏览(36)
  • 下载安装Microsoft ODBC Driver for SQL Server和配置SQL Server ODBC数据源

    在开始之前,我们先了解一下ODBC(Open Database Connectivity) Driver 18 for SQL Server。这是微软提供的一种数据库访问标准,它允许开发者使用统一的接口来连接和操作各种数据库,其中包括SQL Server。本文将向你介绍如何实现ODBC Driver 18 for SQL Server的安装和使用。 整体流程 下面是实

    2024年02月03日
    浏览(41)
  • 配置ODBC驱动连接DM8数据库

    ODBC提供访问不同类型的数据库的途径。结构化查询语言 SQL 是一种用来访问数据库的语言。通过使用 ODBC,应用程序能够使用相同的源代码和各种各样的数据库交互。这使得开发者不需要以特殊的数据库管理系统 DBMS 为目标,或者了解不同支撑背景的数据库的详细细节,就能

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包