本文介绍了使用 Zabbix 监控 Oracle DB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I install and configure Oracle instant client and unixODBC. When login with root, can connect to db by sqlplus or isql.

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不解析指定的连接标识符]|.

But in Zabbix admin panel I got error Cannot connect to ODBC DSN:[SQL_ERROR]:[08004][12154][[unixODBC][Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified]|.

我认为这是 zabbix 用户不存在环境的问题,因为 sudo -u zabbix env 输出不包含 ORACLE_HOME、TNS_ADMIN、NLS_LANG

I think this is trouble with no exists env for zabbix user, because sudo -u zabbix env output not contain ORACLE_HOME, TNS_ADMIN, NLS_LANG etc.

我可以在哪里设置它或者有什么问题?

Where I can set it or what a problem?

推荐答案

我解决了我的问题.

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

ORACLE_HOME=/usr/lib/oracle/12.1/client64LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/libNLS_LANG=AMERICAN_CIS.CL8MSWIN1251TNS_ADMIN=/usr/lib/oracle/12.1/client64/network/admin

重启 Zabbix 服务器

Restart Zabbix server

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

Get main PID of Zabbix server process and check process env with strings -a /proc/18253/environ (replace 18253 with your PID):

LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binCONFFILE=/etc/zabbix/zabbix_server.confORACLE_HOME=/usr/lib/oracle/12.1/client64LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/libNLS_LANG=AMERICAN_CIS.CL8MSWIN1251TNS_ADMIN=/usr/lib/oracle/12.1/client64/network/admin

这篇关于使用 Zabbix 监控 Oracle DB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-07 01:19