zabbix5.0利用odbc查询pgsql数据
首先在zabbix server上安装pgsql的odbc
yum install -y postgresql-odbc.x86_64
如需离线安装则先在有公网的centos7中下载rpm包(downloaddir后跟下载的路径)
yum install -y postgresql-odbc.x86_64 --downloadonly --downloaddir=/tmp/odbc
然后将下载下来的包拉到需安装的服务器中安装
rpm -ivh postgresql-odbc-09.03.0100-2.el7.x86_64.rpm
安装完成后需配置odbc.ini和odbcinst.ini这两个配置文件。通常odbcinst.ini文件已经存在,odbc.ini需要创建。
默认配置如下,只需关注[PostgreSQL]部分。默认设置基本上不需要改动。如果后面测试中isql连接失败时,可能是因为默认的Driver和Setup中的默认路径/usr/lib中无路径所指的psqlodbcw.so和libodbcpsqlS.so,需将路径中lib改为lib64
vim /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
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[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
如果后面测试中isql连接失败时,可能是因为默认的Driver和Setup中的默认路径/usr/lib中无路径所指的psqlodbcw.so和libodbcpsqlS.so,需将路径中lib改为lib64
接下来创建odbc.ini文件:
vim /etc/odbc.ini
[test]
Driver = PostgreSQL
Description = Postgres DSN
Servername = ***.***.***.***
Database = test
Username = zbx_test
Password = test
Port = 5432
ReadOnly = No
Driver需填写odbcinst.ini中驱动的名字
Description只是类似于注释,按需求填写即可
Servername为数据库地址,如127.0.0.1
Database为数据库的库名
Username为数据库名称
Password为数据库名称
Port 为数据库端口
配置完成后即可测试是否能连上数据库(test为odbc.ini文件[]中的名字)
isql test
结果如下图则表示连接成功
接下来就开始配置zabbix中监控项
键值在数据库监控中选择,Postgres DSN为描述,按需填写即可,PostgresDB为odbc.ini[]中的名字
db.odbc.select[Postgres DSN,PostgresDB]
SQL查询中按需求填写需要查询的语句(只可填写select语句,而且返回的结果只有第一行的第一列)
其余配置按需填写,完成后点击测试,并获取值成功则表示成功。