powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Nagios + check_oracle_instant
25 сообщений из 38, страница 1 из 2
Nagios + check_oracle_instant
    #36668452
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!
Подскажите пожалуйста, никак не могу побороть.
Пытаюсь прикрутить к Nagios 3.2 на Ubuntu аддон check_oracle_instant.
Всё делаю как описано по ссылке
http://exchange.nagios.org/directory/Databases/Plugins/Oracle/Check-Oracle-status-%26-health-without-install-Oracle-client/details

далее если выполнят команду из операционки, то результат верный, а в браузере постоянно
Unable to connect to ХХХХ ORACLE !!!
Так же из операционки тест
sqlplus user/passwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid)))
проходит верно.
пытался точками останова найти где не выполняется, так вот sqlplus user/passwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid))) выдаёт пустой результат.

В чём может быть причина?
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36669068
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Переменные среды ORACLE_HOME и LD_LIBRARY_PATH для процесса веб-сервера какие? (ps e | grep)
Скорее всего ваш веб-сервер запущен в окружении, для которого не установлены эти переменные.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36669408
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже были такие подозрения, но я пробовал выводить значения этих переменных в браузере, там то что нужно.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36670500
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

ждёт команду после подключения
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36670512
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Код: plaintext
1.
2.
3.
4.
open (SQL,"sqlplus -s $user/$pass@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\) << EOF
set pagesize 0
set numformat 999.999
$param_array[$i][3]
EOF |") or die;
на этом дохнет или раньше (на system)?
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36670543
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
check_oracle_instant
Код: plaintext
sqlplus -s

sqlplus -s
SQL*Plus® User's Guide and Reference SILENT Option

-S[ILENT]

Suppresses all SQL*Plus information and prompt messages, including the command prompt , the echoing of commands, and the banner normally displayed when you start SQL*Plus. If you omit username or password, SQL*Plus prompts for them, but the prompts are not visible! Use SILENT to invoke SQL*Plus within another program so that the use of SQL*Plus is invisible to the user.

SILENT is a useful mode for creating reports for the web using the SQLPLUS -MARKUP command inside a CGI script or operating system script. The SQL*Plus banner and prompts are suppressed and do not appear in reports created using the SILENT option.
check_oracle_instant
Код: plaintext
if ( $res =~/^\s*\S+/ )
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672311
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Умирает тут.
Логика проста...заведомо используется неверный логин и пароль и ожидаю увидеть ошибку ORA-01017. Главная задача понять что оракл жив.

расставлял точки останова.
sub logon {
print "111";
open (SQL,"sqlplus -s system/mismatch@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\)</dev/null
|") or die;
print "222";
while ( my $res = <SQL> )
{
print "333";
if ($res =~ /^(ORA-\d{5})/) {return $1;}
}
print "444";
}
Выводится только 111222444
в $res пусто.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672337
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

См. пост выше. Запуская sqlplus в режиме silent
Код: plaintext
sqlplus -s
ты не увидишь этого сообщения.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672370
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Хм, странно. Скрипт предложен разработчиком. К тому же из командной строки скрипт работает верно.
Как же быть? Есть предложение?
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672383
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

от прям таки из командной строки запускаешь
Код: plaintext
sqlplus -s system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid))) 
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672384
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

И всё работает нормально?
Не верю! © Станиславский
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672387
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Предложение есть. Выкинуть -s и отработать скрипт без оного.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672402
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

если бы было так просто :(
я это пробовал раньше, не помогло.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672418
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажите
su - пользователь_nagios -с "sqlplus user/passwd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid)))"
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672557
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис,

Интересная странность:

nagios@nagios:~$ id
uid=1001(nagios) gid=1001(nagios)
nagios@nagios:~$ sqlplus sys/пароль@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid_name)))

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 7 10:49:36 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production

SQL> quit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
nagios@nagios:~$ su - nagios -c sqlplus sys/пароль@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid_name)))
Пароль: (ввёл пароль пользователя nagios)

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 7 10:49:58 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Enter user-name: sys
Enter password:
ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name:
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672581
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner
nagios@nagios:~$ su - nagios -c sqlplus sys/пароль@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid_name)))
ч0 прям так без двойных кавычек o_0 ?
sys кстати только как as sysdba может, поэтому тренируйтесь на другом пользователе
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672606
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис,

Потому что когда с кавычками - ошибка:
-su: -c: line 0: Ошибка синтаксиса около неожиданной лексемы `('

Попробовал на другом пользователе, проблемы те же.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672651
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

от nagios покажите результат
Код: plaintext
sqlplus -s system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid)))
и
Код: plaintext
sqlplus system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid)))
А также результат принтов при
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
sub logon {
print "111";
open (SQL,"sqlplus system/mismatch@\\(DESCRIPTION=\\(ADDRESS=\\(PROTOCOL=TCP\\)\\(Host=$host\\)\\(Port=$port\\)\\)\\(CONNECT_DATA=\\(SID=$sid\\)\\)\\)</dev/null
|") or die;
print "222";
while ( my $res = <SQL> )
{
print "333";
print $res;
if ($res =~ /^(ORA-\d{ 5 })/) {return $ 1 ;}
}
print "444";
}
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672681
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerЖуравлев Денис,

Потому что когда с кавычками - ошибка:
-su: -c: line 0: Ошибка синтаксиса около неожиданной лексемы `('

Попробовал на другом пользователе, проблемы те же.

тогда экранируйте

-c "sqlplus user/pass@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(Host=ip\)\(Port=1521\)\)\(CONNECT_DATA=\(SID=sid\)\)\)"
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672686
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

nagios@nagios:~$ id
uid=1001(nagios) gid=1001(nagios) РіСЂСѓРїРїС‹=1001(nagios),1002(nagcmd)
nagios@nagios:~$ sqlplus -s system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid)))
ERROR:
ORA-01017: invalid username/password; logon denied

^C


nagios@nagios:~$ sqlplus system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP)(Port=1521))(CONNECT_DATA=(SID=sid)))

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 7 11:25:23 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:


Результат вывода из браузера 111222444Unable to connect to sid ORACLE !!!
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672707
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис,

su - nagios -c "sqlplus system/pswd@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(Host=IP\)\(Port=1521\)\)\(CONNECT_DATA=\(SID=sid\)\)\)"

nagios@nagios:~$ su - nagios -c "sqlplus system/mismatch@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(Host=10.35.0.207\)\(Port=1521\)\)\(CONNECT_DATA=\(SID=baand\)\)\)"

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 7 11:45:04 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:

После экранирования соединился.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672716
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

Код: plaintext
open (SQL,"head -n 1 /dev/random |") or die;
и
Код: plaintext
open (SQL,"head -n 1 /dev/random") or die;

выведите результат обеих команд
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672718
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner
^C

даже в -s режиме он три раза пароль переспрашивает, причем ждет ввода.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ERROR:
ORA-01017: invalid username/password; logon denied

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

ERROR:
ORA-12162: TNS:net service name is incorrectly specified

SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus


я бы следал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
sqlplus -S /nolog
conn ditdba/asdasd@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=192.168.3.2)(Port=1521))(CONNECT_DATA=(SID=cher)))
ERROR:
ORA-01017: invalid username/password; logon denied


exit
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672719
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня как-то сильно смущает пайп в конце каждой команды в этом скрипте.
...
Рейтинг: 0 / 0
Nagios + check_oracle_instant
    #36672730
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и как финальный аккорд
Код: plaintext
sqlplus -s system/mismatch@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=IP or hostname)(Port=port))(CONNECT_DATA=(SID=sid))) |
в консоли
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Nagios + check_oracle_instant
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]