Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Nagios + check_oracle_instant / 25 сообщений из 38, страница 1 из 2
04.06.2010, 10:05
    #36668452
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
Доброе время суток!
Подскажите пожалуйста, никак не могу побороть.
Пытаюсь прикрутить к 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
04.06.2010, 12:47
    #36669068
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
questioner,

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

ждёт команду после подключения
...
Рейтинг: 0 / 0
04.06.2010, 22:32
    #36670512
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
04.06.2010, 22:48
    #36670543
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
07.06.2010, 09:12
    #36672311
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
07.06.2010, 09:32
    #36672337
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
questioner,

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

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

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

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

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

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

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

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
07.06.2010, 11:05
    #36672581
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
07.06.2010, 11:12
    #36672606
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
Журавлев Денис,

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

Попробовал на другом пользователе, проблемы те же.
...
Рейтинг: 0 / 0
07.06.2010, 11:25
    #36672651
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
07.06.2010, 11:37
    #36672681
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
questionerЖуравлев Денис,

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

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

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

-c "sqlplus user/pass@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(Host=ip\)\(Port=1521\)\)\(CONNECT_DATA=\(SID=sid\)\)\)"
...
Рейтинг: 0 / 0
07.06.2010, 11:39
    #36672686
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
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
07.06.2010, 11:48
    #36672707
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
Журавлев Денис,

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
07.06.2010, 11:52
    #36672716
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nagios + check_oracle_instant
questioner,

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

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


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