找不到sqlplus命令zabbix

时间:2017-02-01 09:24:31

标签: oracle sqlplus zabbix

我正在努力发现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

感谢所有!!!!

2 个答案:

答案 0 :(得分:0)

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

来自TFM:

  

该命令将在用户Zabbix服务器运行时执行,所以任何   应该在a中处理访问权限或环境变量   必要时包装脚本和命令的权限应该   允许该用户执行它。

答案 1 :(得分:0)

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

  

export ORACLE_HOME = {Oracle Client的路径}

     

export LD_LIBRARY_PATH = $ {LD_LIBRARY_PATH}:$ {ORACLE_HOME} / lib

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

相关问题