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

感谢大家!!!

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

从全聚焦方式(TFM)出发:

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

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

export ORACLE_HOME={Oracle 客户端路径}

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

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

最新更新