我正在努力发现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
感谢所有!!!!
答案 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客户端安装中必定存在一些问题。