2017-02-01 10 views
-1

저는 Zabbix의 세계를 연구하고 있습니다. 특히 외부 스크립트를 통해 Zabbix 서버로 Oracle 데이터베이스를 모니터링하려고합니다. 그러나 다른 외부 스크립트가 작동한다고 가정하면 sqlplus를 사용하여 스크립트를 만들었지 만 Zabbix에서는 "명령을 찾을 수 없습니다"라는 메시지가 표시됩니다. 왠지 말해줘? 코드는 다음과 같습니다sqlplus 명령을 찾을 수 없습니다. zabbix

check.pl 
#!/usr/bin/perl 
use strict; 
use warnings; 
my $out=`echo "select * from v$version;" | sqlplus user/[email protected]_database:port`; 
print $out; 

코드는 매우 간단합니다. 나는 언제나처럼 항목을 만들었고, "외부 검사"유형으로 전달되었으며 스크립트를 입력 한 열쇠가되었습니다. 아무도 내 문제를 해결할 수 있습니까?

사전

모든 사람에게 감사 나는 함께 IT를 해결 : 내가 분명하지 않다 또한 경우, 단지 아니라 포럼의 "모욕"보다 더 많은 정보를 요구하는 모든

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

이 스크립트를 실행하는 컴퓨터가 linux 또는 windows입니까? 그렇다면 Linux에 Oracle 클라이언트/SQL 클라이언트를 설치 했습니까? – Ankit

+0

@Ankit 안녕하세요, 컴퓨터가 Linux입니다. Oracle 클라이언트/SQL 클라이언트가 설치됩니다. 터미널에서 코드를 실행하면 작동하지만 Zabbix에 삽입하면 "command not found"가 표시됩니다. 내 영어로 미안해. – user7209199

답변

0

분명히 zabbix 서버에는 sqlplus을 찾을 수있는 환경이 없습니다. 스크립트에서 sqlplus의 전체 경로를 사용하기 만 할 수도 있지만 (그만큼 충분하지 않을 수도 있음) 스크립트에 필요한 모든 환경 변수를 설정하는 래퍼 스크립트를 만들면됩니다. TFM에서

는 :

The command will be executed as the user Zabbix server runs as, so any access permissions or environment variables should be handled in a wrapper script, if necessary, and permissions on the command should allow that user to execute it.

+0

안녕하세요, 문제는 허가라고 생각하지만 설정하는 방법은 없습니다. 너 나 좀 도와 줄 수있어? – user7209199

+0

리눅스 콘솔 창에 다음을 입력하십시오 :'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 ';'(이 사이트에서 서식을 사용하기 때문에 백틱을 변경해야한다는 것을주의하십시오) –

+0

이것은 나의 새로운 오류입니다 : /usr/lib/oracle/11.2/client64/bin/sqlplus : 공유 라이브러리를로드하는 중 오류가 발생했습니다 : libsqlplus.so : 공유 객체 파일을 열 수 없습니다 : 해당 파일이나 디렉토리가 없습니다. – user7209199

0

또한 SQLPLUS 실행하는 데 필요한 SQLPLUS 라이브러리를 구성해야합니다. zabbix 서버를 시작하기 위해 사용하는 스크립트는 zabbix가 실행에 필요한 모든 라이브러리를 찾을 수 있도록 시작 스크립트에서 oracle 항목 아래에 구성 할 수 있습니다.

여전히 .so 파일과 관련된 문제가있는 경우 SQL 클라이언트 설치에 몇 가지 문제가 있어야합니다.

+0

zabbix 서버를 시작하려면 systemctl start zabbix-server를 사용합니다. 그래서이 설정을 스크립트 perl에 삽입해야합니까? – user7209199

+0

예. 하지만 perl에 대한 지식이별로 없기 때문에 변수를 선언하는 구문은 Perl과 다를 수 있습니다. :) – Ankit

+0

oracle 클라이언트의 경로는 어디에서 찾을 수 있습니까? – user7209199