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

Topics - sperlm

#1
Hello, I have troubles following the wiki page Using APT Repository.

Here are the steps I took so far:
* updated /etc/apt/sources.list file with actual repository address
deb http://packages.netxms.org/debian/ wheezy main

* initialized GnuPG (if I didnt do this - key would not install and apt-get update would throw key errors)
gpg --list-keys
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created

gpg --list-keys - this time no response, suppose that means OK

* download and install key
wget -q -O - http://packages.netxms.org/netxms.gpg | apt-key add -
even tried to just wget http://packages.netxms.org/netxms.gpg and apt-key add netxms.gpg

The problems are these:

1) gpg --list-keys still returns no information, I suppose it should say /root/.gnupg/netxms.gpg ?

2) apt-get update returns less key errors but also less informative...
Hit http://ftp.cz.debian.org wheezy Release.gpg
Hit http://ftp.cz.debian.org wheezy-updates Release.gpg
Hit http://ftp.cz.debian.org wheezy Release
Hit http://ftp.cz.debian.org wheezy-updates Release
Hit http://packages.netxms.org wheezy Release.gpg
Hit http://packages.netxms.org wheezy Release
Hit http://ftp.cz.debian.org wheezy/main Sources
Hit http://ftp.cz.debian.org wheezy/main amd64 Packages
Hit http://security.debian.org wheezy/updates Release.gpg
Hit http://ftp.cz.debian.org wheezy/main Translation-en
Hit http://ftp.cz.debian.org wheezy-updates/main Sources
Hit http://ftp.cz.debian.org wheezy-updates/main amd64 Packages/DiffIndex
Hit http://ftp.cz.debian.org wheezy-updates/main Translation-en/DiffIndex
Hit http://security.debian.org wheezy/updates Release
Hit http://packages.netxms.org wheezy/main amd64 Packages
Hit http://security.debian.org wheezy/updates/main Sources
Hit http://security.debian.org wheezy/updates/main amd64 Packages
Hit http://security.debian.org wheezy/updates/main Translation-en
Ign http://packages.netxms.org wheezy/main Translation-en_US
Ign http://packages.netxms.org wheezy/main Translation-en
Reading package lists... Done
W: There is no public key available for the following key IDs:
7638D0442B90D010
W: There is no public key available for the following key IDs:
7638D0442B90D010
W: There is no public key available for the following key IDs:
9D6D8F6BC857C906


Not really sure if this is connected with netxms.gpg key at all.

3) how do I check if the key is installed correctly ?

4) is apt-get install netxms=1.2.17  the  correct command to update to 1.2.17 version or should I instruct to update all the packages specifically (netxms-agent netxms-server netxms-server-mysql netxms-base) ?
Not sure if there are versions for all packages or not. Our current version is 1.2.16.

With regards

Milan Sperl
#2
General Support / new nodes search function [SOLVED]
September 02, 2014, 02:11:03 PM
Hello,

   I have Infrastructure Services structure built up (for dependency script, info on hierarchy in messages and to help build up network maps). And I was wondering if there is anything I can do to check if there are new nodes that need to be "bound" to the structure.

I was thinking of building a script that gets node on a discovery poll and compares if it is somewhere in Infrastructure Services. If not, add it to some temporary folder in the infrastructure (so it is "found" on the next poll, and highlighted as "new").
Problems I can see are load it could make on every poll, but more importantly - I don't have idea how to check the infrastructure to compare it. The node can be anywhere deep in the infrastructure, how would you solve such check ?

Script that does it once per request might be even better and this has led me to another question - is there some kind of parameter in database that might say there is a link and the node has been "bound" somewhere ?
For start it would be sufficient to run a query against the DB to check if nodes are "not bound anywhere".
Have not found suitable parameter though.

With regards,

M.Sperl
#3
General Support / Network Discovery options [SOLVED]
August 29, 2014, 05:11:32 PM
Hello, once again I have been reviewing Network Discovery Configuration and found out that it is not working as I need it to.

What I want to achieve:
- scan only subnets that are precisely specified

At first I set:
- General - network discovery setting - Active and passive
- Default SNMP community string - filled (our own string)
- Active Discovery Targets - subnets specified
- Filter - No filtering

But this scanned literally everything.

I am not sure if setting General to Disabled will help (according to wiki the list in Active Discovery Targets has no effect if active discovery is off).
Seeing as General has three options:
- Disabled
- Passive
- Active and passive
I am not really sure if "Disabled" means "Active only" or "Nothing at all".

Or should I check Active and passive and add the same list of desired subnets to the Address Filters ?

Clarification would be really helpful.

With regards,

Milan Sperl
#4
Hello, after some reconsiderations we decided to try installing NetXMS on Debian from packages.

- made fresh Debian installation
- updated apt, dist-upbrade, configured ssh, iptables
- installed mysql and set up DB for NetXMS
- added "deb https://www.netxms.org/apt wheezy main" to sources.list
- tried to install NetXMS (apt-get install netxms-agent netxms-server netxms-server-mysql netxms-base)

And this is where my problems start, I am not fully used to debian and packages installation so this is where the problem might lie but I have got questions that need to be answered:

1) how can I add options to apt-get install command to specify the configuration ? (is it needed ?)
--with-server --with-mysql (--with-agent) --prefix=/opt/netxms
(never added the --with-agent option, is it really needed ? always had the agent anyway)

2) where can I get sample config files ? (I suppose these should be present in contrib directory, but there is no such)
- is copy from old installation safe option ? (without fear something was changed in newer versions)

3) is it safe to migrate only some DBs from old installation if we want to keep only list of found IPs with old IDs so that we can later import old network maps and hierarchy structure for example ?

Can you please help me by answering these questions?
(the third one is not mandatory, will experiment on it as soon as I get the server running)

With regards,

Milan Sperl

edit: the server is up and running, questions still stand (are there options available when installing via packages?, where to get up-to-date config files and how to migrate only infrastructure + network maps)

p.s. for testing purposes I need block all netxms comunication going outside, is it sufficient to block only outgoing ports 161 and 162 ?
#5
Hello,

   this problem is probably what caused (and still is the cause of) my problems with creating Network Maps. Maybe not but whenever server is restarted, there are normal messages in the logfile. As soon as I try to create new map (and fail due to timeout) log starts filling with this message "Database Connection Pool exhausted, fallback connection used".

We are running NetXMS 1.2.10 and MySQL 5.1.69, both on the same CentOS machine.

What can be the problem ?

With regards
Milan Sperl

edit: the messages start appearing anyway, restarted sql and checked database (no direct connection to the map creation problem)
#6
In the GetNodeInterfaces example there are used two parameters - name and id.

My question is - can other parameters from Interfaces be used the same way or it is not possible at all ?

I'm trying to get a list of peers with "i->peerInterface", no results with GetNodeIntefaces or GetObectChildren too - script fails at this point with "invalid operation on object".

Any help?
#7
General Support / Syslog - basics [SOLVED]
January 23, 2014, 12:03:45 PM
Hello,

   I have read as much as I could about syslog watching and parsing here, but I found out that I cannot start with this functionality as I have problems setting up syslog functionality by itself.

I noticed that netxmsd.conf file has LogFile = {syslog} by default and yet the log in console Syslog is empty.
Somewhere here I read that server log is managed by the agent so I changed agent configuration file (by LogFile = {syslog}), but with no results. Tried with remote agent also.

Is there something specific needed or configured to have syslog accept log from agent ?

My current configuration is:
Code (server) Select
DBDriver = /opt/netxms/lib/libnxddr_mysql.so
DBServer = localhost
DBName = ******
DBLogin = ******
DBPassword = ******
LogFailedSQLQueries = yes
LogFile = {syslog}
JavaPath=/usr/bin/java
JavaLibraryDirectory=/opt/netxms/java-lib
JDBCDriver=com.mysql.jdbc.Driver
JDBCUrl=jdbc:mysql://localhost:3306/netxms


Code (server agent) Select
MasterServers = 127.0.0.1, netxmsserver.company.domain
LogFile = {syslog}


Code (remote agent) Select
MasterServers = netxmsserverIPaddress
LogFile = {syslog}
FileStore = /var/nxagentd


No subagents or parsing yet.
All we need for the time being is to store larger logs from devices that are not suitable for maintaining large logs by itself (and to keep the logs in one place).

With regards,
Milan Sperl
#8
Hello,

   we have subnets 172.17.0.0/24 and 172.17.1.0/24 as a part of our infrastructure but NetXMS is not recognizing these subnets and does not show them in the Entire Network section. Is this set by default or is there something we might have done wrong?

IPs (e.g. 172.17.1.10) of devices in those networks are pingable, reachable and visible in NetXMS in other subnet just fine (128.0.0.0/2).
There is subnet 172.0.0.0/24 showing for NetXMS server too...

With regards,

Milan Sperl
#9
Hi,

   ever since I saw the script for filtering out consequent alarms as shown on wiki page Situations Overview I was trying to think of not needing to specify what depends on what, but base it on actual topology instead.

I came up with an idea to filter out alarms based on topology availability. For example - if dependent node triggers alarm, it first checks if the node it is topologically dependent on is down or not.
Sorting nodes in Infrastructure based on this is logical anyway...

The infrastructure looks like this:
-Infrastructure Services
|- X01-locality
||- N-nodeA
||- D-dependency_node
||- X11-sub
|||- N-nodeB
|- X02-locality
...

The problem with the script might be trivial because I need some string related comparison for the names of containers and node names.

What I am trying to do is list node parents of "N-nodeB" with
nparents = GetNodeParents(FindObject($1));
foreach(i : nparents)
{
    println "Parent name='" . i->name;
}

... I get bunch of parents like this:

QuoteParent name='10.0.5.0/24'
Parent name...
...
Parent name='X11-sub' <=Infrastructure Services Folder

At this point I cannot get the right command to filter out just the infrastructure folder "X11-sub" because I need to compare just a part of the name, not the whole string. I only need to see if the name starts with "X" and that cannot be done by - if i->name=="X".

After that I will be looking for object parents of that folder, then for object children and find those with dependency status "D" and trigger the alarm based on availibility of that node.

I cannot get past this "compare based on part of the string" part only... any hints?

With regards

Milan Sperl

#10
General Support / Alcoma devices and map integration
October 29, 2013, 05:29:08 PM
Hello,

   this has bothered me for a while now...

Alcoma devices do not have LLDP functionality (confirmed with system developer) and does not appear on Network Maps.

But in the event : "Include end nodes" turned on + one device in Alcoma pair goes offline = Alcoma shows on the map.
On top of it, the device also shows information about network peers in the Interface tab, but as soon as the offline device is back online this information disappears.

My questions would be
- how comes the network peers information is removed when the pair node goes back online
- is it possible somehow define devices without LLDP functionality to be acknowledged and incorporated by the Automatic Network Map process ?

The information about the peer takes into account only network interface of the device so I wouldnt mind these device pairs not being connected, just showing as end nodes at the correct place would be sufficient.

With regards,

Milan Sperl
#11
Feature Requests / Mixed Network Map modes
October 24, 2013, 03:35:41 PM
Hello,

   automated network maps work perfect, but in reality it is somewhat lacking in flexibility related to intentional adjustments and tweaking.

What I am talking about is a network consisting of parts which are "separated" by BPDU drops or consist of devices incapable of LLDP (which are omitted in the map).

So I was thinking how to bypass these limitations...

* BPDU drops and other port related "separations"
If there was an option to select more than one seed node when the map is created (or better - be able to add/remove "additional seeds").
this would be used on maps that have more than one "separated" parts, because seeding the map from the separated part would only create map with only that one part in addition to the main part

* manually adding nodes
The possibility to hard-add devices between two automated ones based on a rule (after the map automatically updates), or being able to override some logic and add nodes to a list of found devices.
this could help with adding non-standard devices without LLDP functionality, right now I have to create two maps - one automated, and one manual with the missing devices

Without these options I had to create one manual map with several drill downs. Trying to unneedingly split up the network so the automatic maps can handle it. It is not perfect as all drill down maps show the main part of the map unless I select appropriate radius and seed node for the map....

Do you think something could be done along those lines ?

With regards,

Milan Sperl
#12
Hello, I am struggling with creating Network Maps...

After upgrading to 1.2.8 every time I try to create any type of Network Map I get this "Problem Occured - 'Create new network map' has encountered a problem. Cannot create network map object "test": Request timed out".
Not sure if the problem appeared with new version as the map adding feature was needed only recently.

Already created maps work fine.

With regards

Milan Sperl
#13
Hello,

   is there a way, apart from SQL query, to get information stored in NetXMS ?

The goal would be having a wiki/document or simply a link that would list Overview (General and Comments) information for Object with predefined ID for example?

A sort of html link with user login/password (created for this readonly purpose).
Does not have to be a link, any batch script would do (to pass needed information to a text file for example).

With Regards

Milan Sperl
#14
Hello,

   I have been creating filtering and even some scripts that imitate snmpwalk or trying to polish tool to mass-create DCI (based on my snmpwalk) but some problems with management functions arised.
(I am looking into python for nxshell functionality now, but I believe commands from Function Reference should be working without nxshell.)

Some functions work, but some do not and I don't know why..

For example - GetNodeParents, GetNodeInterfaces, GetObjectParents, GetObjectChildren

The first line where I use these functions makes the script broken, even test scripts like this are not working...
interfaces = GetNodeInterfaces($1);
foreach(i : interfaces)
{
    println "Interface: name='" . i->name . "' id=" . i->id;
}

All I get is: ERROR: Script finished with error: Error 14 in line 1: Function or operation argument is not an object

Can someone enlighten me what I do wrong please?

With regards

Milan Sperl
#15
Hello,

   I am trying to use the function of automate creating DCIs but I have a problem because I cannot properly use calling of scripts or dont know which parameters I can use within the filter (without scripts).

What I have:
Nodes with similar OIDs, but the tracked value (CPU usage) has different "last ID". In my case:
.1.3.6.1.4.1.25506.2.6.1.1.1.1.6.47
.1.3.6.1.4.1.25506.2.6.1.1.1.1.6.65 (etc)
All nodes have one common thing - all other values are "0"
So one node has trackable value in 47, all others are "0".

What I want to achieve:
Set DCI in template to apply DCIs based on having non-"0" value

What I achieved so far:
I set OID with these settings:

General
Description: CPU OID:{instance} (to make the DCI show number of the last ID)
Parameter: .1.3.6.1.4.1.25506.2.6.1.1.1.1.6.{instance} (to show scanned OID, I think when using Instance Discovery function this "parameter" could remain empty, it will still work so this is only for informative purpose too)
Origin: SNMP (just to be sure)
Data Type: Integer

Instance Discovery
Instance discovery method: SNMP Walk - OIDs
Base SNMP OID: .1.3.6.1.4.1.25506.2.6.1.1.1.1.6
Instance discovery fltering script: ...

... and this part is unknown for me.

It would be great if I could use some kind of parameter to get the value of the currently SNMPwalked OID so that I can simply write:

"walkedValue != 0;" (if the walked value is non-zero, proceed)

Or get the currently walked OID so that I can write a script:

transport = CreateSNMPTransport(FindObject($node));
varbind = SNMPGet(transport, walkedOID);
if (varbind->value != 0) return 1;
else return 0;

Or save the script to the script library and call it:

script:filter

To my underrstanding this is limited to name, description, and instance fields of template DCI so a "normal" call of script:

filter();

But there is still the problem with getting the walkedOID value so I am really at loss how to solve this. It seems there is definitely a way and I am just not being able to see it.

Can you please point me the way ?
Thanks in advance.

Milan Sperl