News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Victor Kirhenshtein

#4516
Quote from: sperlm on June 07, 2013, 01:49:48 PM
Thanks for the reply, filters work exactly as I need now.

Few clarifications:

a)
In my previous question 4) I was referring to the wiki information under Templates section "Macros in template items"
QuoteYou can use various macros in name, description, and instance fields of template DCI.
namely: script:name - String returned by script name. Script should be stored in script library (accessible via Configuration -> Script Library). Inside the script, you can access current node's properties via $node variable.

To put the question short - where exactly it can be used?
(as the wiki information does not make sense to me - DCI form has no "name", macro {instance} can be used in the Parameter on the other hand)

Macros in templates expands when template being applied to node. It is useful when you want to put some node-specific information during template apply (node IP address for example) into parameter name or description.  "name" was the old universal name for what you now see as "Parameter" for agent DCI, "OID" for SNMP DCI, etc. It is still used in some places.

Quote from: sperlm on June 07, 2013, 01:49:48 PM
b)
Performance tab - a little insight on this would be appreciated.
(did not find any on wiki or forums and this looks like it can solve my problem with viewing the collected data, namely the automated ones)

Performance tab shows line charts with last hour data for all DCIs marked to be shown on performance tab. You can enable DCI for performance tab in DCI properties, on "Performance Tab" page.

Quote from: sperlm on June 07, 2013, 01:49:48 PM
b)
If dci and node parameters are global, does it mean we can use class reference attributes like $node->snmpOID anywhere?
I am already filtering nodes for templates with this functionality so I assume it is possible.

Yes, all scripts related to nodes have $node variable set, and all scripts related to DCIs have $dci variable set.

Quote from: sperlm on June 07, 2013, 01:49:48 PM
c)
I also tried to use the same script functions from instance discovery in automatic apply rules for templates but could get results only with direct scripts, when I try to do the same thing with use/script it does nothing (or I was not able to test it properly).

There are no difference between automatic apply rule script an any other script regarding library use. Most likely you've make some mistake. Please post your scripts here.

Best regards,
Victor
#4517
Hi!

This feature seems interesting. I have added it to our issue tracker as feature request (https://www.radensolutions.com/chiliproject/issues/290). As for accessing AD from NetXMS server, on UNIX/Linux we probably can use LDAP.
Also, it is possible now to create Python script for nxshell (http://wiki.netxms.org/wiki/Using_nxshell_to_automate_bulk_operations) which will use LDAP to access AD and NetXMS API to create appropriate objects under infrastructure services tree. This will not be simple script though.

Best regards,
Victor
#4518
Hi!

You pass $1 to GetNodeInterfaces. It's a first argument of the script. It depends on context, but it's unlikely that it will be node object. If you want to work with "current" node (i.e. owner node of DCI in transformation script), you can use built-in variable $node. In other cases, you can use FindNodeObject function to obtain reference to node object you are interested in.

Best regards,
Victor
#4519
Hi!

Yes, this is the way to go - create hierarchy of DCIs with source Internal/Dummy and transformation script reading average value from previous DCI in hierarchy. For example, for System.CPU.Usage parameter transformation script to calculate 10-minutes average will look like this:


now = time();
return GetAvgDCIValue($node, FindDCIByName("System.CPU.Usage"), now - 600, now);  // 600 is number of seconds


Best regards,
Victor
#4520
С UTF-8 работать нормально не будет. Надо либо ставить CP1251, или делать UNICODE сборку. Ну и не забыть проверить, что в базе с кодировкой все в порядке.
#4521
Also, on what OS your server is running? I'll build a patched driver for you.
#4522
You right about configured and adopted lists. I think I should change the driver to read both configured and adopted radios, and change status of APs/radios if they not found in adopted list. Can you send me full SNMP walk dumps of .1.3.6.1.4.1.388.14.3.2.1.11.5 and .1.3.6.1.4.1.388.14.3.2.1.11.11? I don't have instant access to the device, so I cannot get this information for testing. Btw, when I design wireless monitoring part, I was also thinking about putting radios as interface objects below access point objects. Do you think it could be useful?

Best regards,
Victor
#4523
That's the problem, server expects correct response here. Is there any standard MIBs this device supports? Anything under .1.3.6.1.2.1.1 or .1.3.6.1.2.1.2?

Best regards,
Victor
#4524
Another possible problem could be if device does not support standard MIBs. NetXMS server tries to retrieve OIDs .1.3.6.1.2.1.1.2.0 and .1.3.6.1.2.1.1.1.0 to check if device can respond to SNMP. If device does not support system MIB for some reason then server will not be able to detect SNMP agent on it. Can you check that device responds to these OIDs?

Best regards,
Victor
#4525
Can you please get event history for this host and send it to me? (You can export log viewer content to CSV file in 1.2.7).

Best regards,
Victor
#4526
Can you please do configuration poll on that device from console and send me the output?

Best regards,
Victor
#4527
General Support / Re: DNS Service monitor
June 06, 2013, 02:32:35 PM
You should set a threshold on your DCI (with condition "last values equals 0"), and add rule in event processing policy to generate an alarm. Here is a tutorial for a similar task: http://wiki.netxms.org/wiki/How_to_send_e-mail_notification_when_disk_space_is_low - it should help you understand the concept.

Best regards,
Victor
#4528
Hi!

To use exysting SYMBOL-WS driver, device must support the following OIDs: .1.3.6.1.4.1.388.14.3.2.1.9.2.1 (adopted access points), .1.3.6.1.4.1.388.14.3.2.1.9.4.1 (unadopted access points), .1.3.6.1.4.1.388.14.3.2.1.12.3.1 (mobile units). Please check that they are supported, and if yes, send me walk results of .1.3.6.1.2.1.1 - I'll add device ID to the list of supported by driver.

Best regards,
Victor
#4529
Quote from: sperlm on June 05, 2013, 04:50:34 PM
1) "$1" means "{instance}" then, are there other parameters or just this one?

Yes, in instance filtering script first parameter ($1) is current instance value, same value that will be substituted for {instance}. There are also two predefined global variables - $node, which points to current node object, and $dci, which points to current DCI object.

Quote from: sperlm on June 05, 2013, 04:50:34 PM
2) Can I call scripts in the filter? Is it the "script:name" function?
(I am trying calling scripts now but cant get results yet)
Reason is obvious - to be able to change the filter for more DCIs at once than just one.
I am thinking about forwarding parameters to the script too.

Yes, you can call scripts from the library. You should specify library scripts you will be calling with use operator, then you'll be able to call functions from these scripts. For example, you have script in a library named Transformations:


sub bytesToBits(bytes)
{
   return bytes * 8;
}

sub butsToBytes(bits)
{
   return bits / 8;
}


Then, if you want to use function bytesToBits in another script, you can do:


use Transformations;

return bytesToBits($1);


Quote from: sperlm on June 05, 2013, 04:50:34 PM
3) Running configuration poll doesnt seem to work for me, I have to wait really long time to see the results. Is there a setting which disables this?

As there are internal locks on data collection configuration, it is important to close data collection editor view before doing configuration poll.

Quote from: sperlm on June 05, 2013, 04:50:34 PM
4) By the way, in the properties of OID there are no fields called name or instance so I am a bit confused as to where "script:name" functionality can be used.

Sorry, I didn't understand the question.

Quote from: sperlm on June 05, 2013, 04:50:34 PM
5) I already found "ApplyDCIFromTemplateToDisabledDCI" and set it back to old behaviour (1) so this means every change in DCI starts "reapplying" process and all I need is just wait or there is some static time (like 30 minutes) in which templates check if their nodes have actual OIDs?
I found ConfigurationPollingInterval (3600), not sure if it is correct information to look at though.

Instance discovery and templates are different processes. Template being applied to nodes as soon as you close data collection editor for template. Instance discovery, on the other hand, is an automated process - check for new instances occurs at each configuration poll, once per hour by default. And yes, you're right - it is controlled by ConfigurationPollingInterval  configuration parameter.

Quote from: sperlm on June 05, 2013, 04:50:34 PM
6) FindObject() function can be omitted in scripts if I dont need the safety function of returning null when the node is unknown/denied?

Most of the scripts (transformation, filtering, etc.) always have global variable $node set at startup. This variable points to current node (i.e. node owning DCI or source of event). You only need FindObject when you need access to another node object.

Best regards,
Victor
#4530
Отдельного автоматического опроса имен интерфейсов нет, это делается в рамках configuration poll. Периодичность опроса конфигурации задается через параметры сервера (меню Configuration -> Server Configuration в консоли), параметр ConfigurationPollingInterval (в секундах).