【问题标题】:sqlplus command not found zabbixzabbix找不到sqlplus命令
【发布时间】:2017-02-01 09:24:31
【问题描述】:

我正在努力探索 Zabbix 的世界。特别是我正在尝试通过外部脚本使用 Zabbix 服务器监控 Oracle 数据库。然而,鉴于其他外部脚本可以工作,我用 sqlplus 创建了一个,但在 Zabbix 上我得到“找不到命令”。你能告诉我为什么吗? 代码是:

check.pl
#!/usr/bin/perl
use strict;
use warnings;
my $out=`echo "select * from v$version;" | sqlplus user/password@ip_database:port`;
print $out;

代码很简单。 我像往常一样创建了一个项目,作为“外部检查”类型传递,并输入了我的脚本。谁能解决我的问题?另外,如果我不清楚,请在论坛上询问更多信息而不是“侮辱”:提前感谢大家

我解决了这个问题:

echo "/usr/lib/oracle/11.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client64/lib" >> /etc/profile

谢谢大家!!!!

【问题讨论】:

  • 你执行这个脚本的机器是linux还是windows?如果是Linux,那你是不是安装了Oracle客户端/SQL客户端?
  • @Ankit 你好,机器是Linux。 Oracle 客户端/SQL 客户端安装在上面。如果在终端上尝试代码它可以工作,但是当我在 Zabbix 上插入它时,我得到“找不到命令”。对不起我的英语。

标签: oracle sqlplus zabbix


【解决方案1】:

显然你的zabbix服务器没有找到sqlplus的必要环境。您可以简单地在脚本中使用 sqlplus 的完整路径(但仅此一项可能还不够),或者创建一个包装脚本来为您的脚本设置所有必要的环境变量。

来自 TFM:

该命令将按照用户 Zabbix 服务器运行的方式执行,因此任何 访问权限或环境变量应在 包装脚本,如有必要,命令的权限应该 允许该用户执行它。

【讨论】:

  • 嗨,我也认为问题出在权限上,但我不知道如何设置它。你能帮帮我吗?
  • 在 linux 控制台窗口中,输入:which sqlplus。输出可能类似于/opt/oracle/product/11.2.0/bin/sqlplus。在您的脚本中,将sqlplus 替换为which 命令的输出,例如my $out='echo "select * from v$version;" | /opt/oracle/product/11.2.0/bin/sqlplus user/password@ip_database:port';(请注意我必须更改脚本中的反引号,因为该站点使用它们进行格式化)
  • 我试了一下,这是我的新错误:/usr/lib/oracle/11.2/client64/bin/sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:否这样的文件或目录
  • 要使其工作,您需要将几个环境变量设置为适当的值:ORACLE_HOMELD_LIBRARY_PATH 甚至更多。
【解决方案2】:

您还必须配置运行 sqlplus 所需的 sqlplus 库。用于启动 zabbix 服务器的脚本,您可以在启动脚本中配置下面的 oracle 内容,以便 zabbix 可以找到所有必要的库来运行。

export ORACLE_HOME={Oracle 客户端路径}

导出 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib

如果仍然存在与 .so 文件相关的问题,那么您的 SQL 客户端安装中肯定存在一些问题。

【讨论】:

  • 要启动 zabbix 服务器,我使用 systemctl start zabbix-server。所以这个配置我必须插入到脚本 perl 中?
  • 是的。但是在 Perl 中声明上述变量的语法可能会有所不同,因为我对 perl 了解不多。 :)
  • 在哪里可以找到oracle客户端的路径?
  • 正如下面评论中提到的,我猜这将是您的 Oracle 客户端路径“/opt/oracle/product/11.2.0”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
相关资源
最近更新 更多