使用Zabbix监控Oracle DB

时间:2017-03-07 11:02:40

标签: zabbix unixodbc

我安装并配置了Oracle即时客户端和unixODBC。使用root登录时,可以通过sqlplus或isql连接到db。

root@zabbix:~# sqlplus ***/***@***

SQL*Plus: Release 12.1.0.2.0 Production on Tue Mar 7 13:56:42 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Last Successful login time: Tue Mar 07 2017 13:19:45 +03:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

root@zabbix:~# isql ***
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

但在Zabbix管理员面板中,我收到错误Cannot connect to ODBC DSN:[SQL_ERROR]:[08004][12154][[unixODBC][Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified]|

我认为这对zabbix用户没有env存在问题,因为sudo -u zabbix env输出不包含ORACLE_HOME, TNS_ADMIN, NLS_LANG等。

我可以在哪里设置或出现问题?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。

  1. 使用必要的变量创建文件/etc/default/zabbix-server

    ORACLE_HOME=/usr/lib/oracle/12.1/client64 LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib NLS_LANG=AMERICAN_CIS.CL8MSWIN1251 TNS_ADMIN=/usr/lib/oracle/12.1/client64/network/admin

  2. 重新启动Zabbix服务器

  3. 获取Zabbix服务器进程的主PID并使用strings -a /proc/18253/environ检查进程env(用您的PID替换18253):

    LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CONFFILE=/etc/zabbix/zabbix_server.conf ORACLE_HOME=/usr/lib/oracle/12.1/client64 LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib NLS_LANG=AMERICAN_CIS.CL8MSWIN1251 TNS_ADMIN=/usr/lib/oracle/12.1/client64/network/admin