Возможность использования скриптов на сервере

Started by Alex, August 09, 2007, 10:50:28 AM

Previous topic - Next topic

Alex

Есть ли возможность использования своих скриптов на стороне сервера? Задача такая. На голосовой Cisco есть trunk-group-а. Хотелось бы получать по ней статистику активных звонков. К сожалению найти SNMP OID под это дело у меня не получилось, именно поэтому смотрю в сторону скриптов. Если есть возможность, то как его можно прикрутить к DCI?

Victor Kirhenshtein

Это можно сделать через ExternalParameter в агенте. В конфиге агента пишем

ExternalParameter = MyParameterName:my_script

После чего можем определить DCI для параметра MyParameterName на ноде где стоит агент. При каждом запросе параметра будет вызываться скрипт. Значением будет первая строчка выданная скриптом на stdout.

Alex

У меня есть Cisco с SIP. К сожалению подсчет кол-ва одновременных звонков как на терминацию, так и на оригинацию стандартными средствами сделать не получается по причине не существования в природе такого MIB для SNMP. Был написан скрипт на Perl. Как его прикрутить к NetXMS, чтоб можно было вызывать этот скрипт с параметром? В качестве параметра должен быть host. Т.е. к примеру:
"/usr/bin/perl /usr/local/bin/myscript.pl hostname"
Этот скрипт возвращает всего одну цифру.

weec

Quote from: Victor Kirhenshtein on August 09, 2007, 06:15:29 PMExternalParameter = MyParameterName:my_script
попробуйте использовать MyParameterName($1), где в качестве первого аргумента укажите hostname

Alex Kirhenshtein

ExternalParameter = MyParameterName(*):/usr/bin/perl /usr/local/bin/myscript.pl $1



Из nxagentd.conf:

#
# ExternalParameter
#
# Add parameter handled by external command. To add multiple parameters, you
# should use multiple ExternalParameter entries. Please note that on Windows
# agent uses system process execution API for execution of specified
# command, so you cannot use pipes or shell commands. If you need to
# execute command via shell, use ExternalParameterShellExec instead.
#
# Syntax:
# ExternalParameter = <parameter_name>:<command_line>
# If you specify parameter name as "name(*)", then you can use $1 .. $9 in
# command line to substitute actual arguments passed from server.
#
# Examples:
# ExternalParameter = Test:echo test
# ExternalParameter = LineCount(*):cat $1 | wc -l
# ExternalParameter = Test2(*):myprog $1 $2


Alex

в конфиги прописал выполнение скрипта. а где, как и что прописать в DCI? сорри, но реально не могу понять :(

weec


Alex

И...а....о... Может я как-то не так выразился...
Объясняю ситуацию:
Cisco (на неё поставить nxagent ну никак не представляется возможным)
Сервер (на нем запущены nxagentd и netxmsd).

Задача.
При снятии статистики с этой конкретного Cisco устройства, нужно чтобы NetXMS вызывал скрипт на стороне сервера для этого конкретно устройства.

Вопрос можно ли использовать как "InternalShellExeс"?

Victor Kirhenshtein

T.e. nuzno chtobi script ispolnjalsja na hoste A no znachenie shlo v DCI dlja hosta B? Esli tak, to normal'nogo reshenija poka net. Edinstvenno chto mogu predlozit' - eto ispol'zovat' push DCI i ne vizivat' script s servera, a zapuskat' ego po cron'u i ispol'zovat' nxpush dlja peredachi novogo znachenija DCI na server monitoringa.

Alex

Появится ли такая возможность в будущем? Если да, то когда?

Victor Kirhenshtein

Uze pochti pojavilas' :) Ja sdelal novij attribut u DCI - "proxy node" - t.e. DCI konfiguritsja na odnoj node a znachenie real'no sprashivaetsja u nodi vistavlennoj kak proxy. Protestiruju i vilozu promezutochnij reliz - mozno budet probovat'.

Victor Kirhenshtein

Vilozil promezutochnij reliz 0.2.20-dev2 na https://www.netxms.org/download/rc/ . Nado delat' upgrade i serveru, i consoli. VNIMANIE: esli posle upgrade'a redaktirovat' DCI konsol'ju ot versii 0.2.19, to nastroiki "proxy node" budut sbrosheni v znachenie po umolchaniju.

Alex

В nxagentd.conf прописал следующее:

ExternalParameter = SipOrig(*):/usr/bin/perl /root/scripts/sip_stat/originate.pl $1

Что и как в DCI я должен выставить?

Что в качестве Data Parameter, Data Origin я должен выставить? При использовании в качестве Origin NetXMS Agent и Data Parameter SipOrigin 192.168.100.22.
При этом не работает ничего. Скрипт на стороне сервера даже не вызывается.
В качестве ProxyNode используется хост, на котором установлен NetXMS с параметрами:
./configure --with-server --with-mysql --with-agent --with-nxhttpd

Victor Kirhenshtein

Esli ExternalParameter opredelen kak SipOrig(*), to v Parameter nado pisat'

SipOrig(192.168.100.22)

Ostal'noe vrode vse pravil'no. Dolzen rabotat.
Mozno eshe zapustit' agenta s kljuchom -D i posmotret' na kakoj parametr prihodjat zaprosi.