ExternalParameter (опять)

Started by Alex, June 26, 2009, 01:12:57 PM

Previous topic - Next topic

Alex

Перестал отрабатывать вызов ExternalParameter.. Дата последнего запроса 1970 год... Скрипт с сервера руками запускаю и он отрабатывает нормально. Почему через NetXMS не отрабатывает понять не могу. Есть ли возможность включить какой-то дебаг относительно выполнения ExternalParameter из DCI???

Спасибо заранее.

Victor Kirhenshtein

Proveril - k sozaleniju nikakoj trassirovki tam net. A na kakoj sisteme agent? Ja sdelaju patch s debug soobschenijami chtobi mozno bilo ponjat' v chem problema.

Alex

Агент и сервер на одном серваке под лялихом...

Victor Kirhenshtein

V attache fail exec.cpp - im nado zamenit' suschestvujuschij v src/agent/core/ i peresobrat' agenta. Potom zapustit' agenta s kljuchom -D i zaprosit' parametr - dolzen bit' debug po ispolneniju external parametra.

Alex

[12-Aug-2009 10:28:01] Debug: H_ExternalParameter called for "SipAnswer(IP_ADDRESS)" "E/usr/bin/perl /root/scripts/sip_stat/answer.pl $1"
[12-Aug-2009 10:28:01] Debug: H_ExternalParameter: command line is "/usr/bin/perl /root/scripts/sip_stat/answer.pl IP_ADDRESS"
[12-Aug-2009 10:28:01] Debug: H_ExternalParameter (shell exec): worker thread created
[12-Aug-2009 10:28:02] Debug: H_ExternalParameter/POpenWorker: worker thread pipe read result: 1
[12-Aug-2009 10:28:02] Debug: H_ExternalParameter (shell exec): execution status 0
[12-Aug-2009 10:28:02] Debug: {0} Sending message CMD_REQUEST_COMPLETED (size 48)


вроде выполняется, но... результат, который возвращает pipe почему-то 1.. с других нодов, он равен 4-ем...

при этом как я уже говорил, когда руками запускаешь с сервера этот скрипт, то все работает нормально.

Victor Kirhenshtein

Похоже дальше надо вставлять отладочную печать в скрипт. Можно добавить в скрипт, чтобы он выводил результат не только на stdout, но и в какой-нибудь файл? Тогда сразу будет понятно, в какую сторону дальше копоть.

Alex

Виктор, все перерыл и дебаги всего уже снял.. Понять причин не могу.. Честно.. Смена IOS на Cisco была, сразу перестало все работать с NetXMS, руками скрипт исполняется на ура и все работает. В итоге при запросе через NetXMS выполняется rsh команда, Cisco видит ее, отдает ответ, а скрипт говорит что команда не выполнилась и никаких при этом ошибок на STDERR и STDOUT.. Вообщем вчера весь день голову ломал так и не понял причин ((

Victor Kirhenshtein

А пользователь тот-же при запуске скрипта руками, под которым агент работает? Единственно что приходит в голову - разница в environment и/или другой пользователь при запуске из-под агента и руками. Кстати, а если скрипт этот скажем через cron запустить, он работает?

Alex

ENV проверял.. одинаковый. NetXMS из под root-а. Руками тоже из под рута запускаю... Вот кстати вопрос из под крона.. Хм.. Надо попробовать...