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 - mgthump

#1
General / Re: DCI poll time out, record a value
December 04, 2019, 06:33:31 PM
Thank you!
#2
General / DCI poll time out, record a value
November 29, 2019, 10:36:18 PM
I'm trying to figure out how to get a DCI poll to record a "1" for a timeout rather than no value, and thus no change in a graph.


I've got a simple transform setup to change a modulation value of a radio to its capacity. but when the link is down due to weather, and the poll doesn't complete, no data get recorded. on the graph, it appears as though everything is fine when in fact it is offline.

here is my transform script.

if ($1 == 1) return 475000000;
if ($1 == 2) return 950000000;
if ($1 == 3) return 1930000000;
if ($1 == "") return 1;



Thanks!
#3
General Support / database writer possibly hanging
April 19, 2019, 10:13:26 PM
I've been having a problem where my netxms service seems to be running but stops recording data after an hour or two.     I've tried turning off discovery, and playing with the collector values, i haven't had any success in resolving this.   

here is what my queues look like in the morning after its freezes up:

netxmsd: show queues
Data collector                   : 0
DCI cache loader                 : 0
Template updates                 : 0
Database writer                     : 1146
Database writer (IData)          : 4742949
Database writer (raw DCI values) : 34542
Event processor                     : 799
Event log writer                     : 656
Poller                                    : 1181
Node discovery poller            : 0
Syslog processing                 : 0
Syslog writer                        : 0
Scheduler                            : 0


when it's working normally, my raw DCI values will jump to 10,000 or so, but quickly go back to zero, Idata will do the same even log writer seems to fluctuate up to 1,000 sometimes and very slowly comes back. usually, I see less than 100 for the log writer.

where should I check next?

Thanks!
#4
General Support / Re: top 5 or 10 busy APs
April 19, 2019, 02:17:52 AM
Tursiops,

I haven't played with summary tables yet. i'll check into those.

I like your script idea, i'm still getting the hang of scripts, but i'll follow your advice and try and build that. if i get it, i'll post what I've come up with in case anyone else wants this tool.


Thank you!!!
#5
General Support / Re: top 5 or 10 busy APs
April 16, 2019, 10:40:10 PM
the utilization data is collected from SNMP on .1.3.6.1.4.1.17713.21.2.1.113.0 and stored as an integer.  This returns a value on 1 to 1000 representing the % of air time used at the AP.


Thank you!
#6
General Support / top 5 or 10 busy APs
April 16, 2019, 06:47:12 PM
I'm trying to figure out how to build a transform script to give us the top 5 or 10 busy access points on our network, or all access points with an airtime utilization over X amount for a given time period.    7 pm to 11 pm for example.   

I haven't had any luck searching around the forum for this, any suggestions?


Thank you!!!
#7
Thank you, Victor.   

that example was a touch more flexible.   

great work with NetXMS by the way.  absolute love this program even though I'm still only scratching the surface!
#8
This method worked!!!!   I had to use the description as well, but I had been trying to wrap my mind around this stuff for a while.   you and Victor are geniuses.

I've very much a noob with scripting and each little bit I think I grasp a touch more. 

Thanks again, fellas!



Quote from: Tursiops on April 04, 2019, 02:24:29 PM
If I understand you correctly, you want a total figure of a specific DCI that exists on all nodes which are assigned to a template.

You could create a dummy node, assign it to the same template and create a separate Script DCI on it, similar to this:

templates = GetNodeTemplates($node);
total=0;
foreach(t : templates) {
if ( t->name == "<NAMEOFYOURTEMPLATE>" ) {
children = GetObjectChildren(t);
foreach(c : children) {
dciValue = GetDCIValue(c,FindDCIByName(c,"<YOUROID>"));
if ( dciValue != null ) total+=dciValue;
}
}
}
return total;


Quite possible that this can be simplified.
I just tested that against a PostgreSQL Template we have, to add up the size of some databases with the same name. I used FindDCIByDescription for this purpose, but the effect will be the same.
Example output (with some additional println to show the individual database sizes to confirm this works):
Database Size: 17988120
Database Size: 1099291160
Database Size: 20306456
Database Size: 49494552
Database Size: 19675672
Database Size: 30808600
Database Size: 16579096


*** FINISHED ***

Result: Total: 1254143656


You can then add this particular script DCI to your Dashboard.
#9
in the middle of those options.

I'd like our APs to be pulled into a template automatically (I've got that part setup and working) and i have that template collecting the amount of connected Clients from each AP.
Then i'd like a dashboard (or another method inbetween first if needed)  to look at every AP in that template, look at the OID for the number of connected subs and give me the total. 

so  AP 1  has 10 clients,
and AP 2 has 10 more clients skipping to ap 53 all of them with 10 clients each, Id like a dashboard to show me a result of 530 total connected clients across all APs.
I'd like this to happen based on the template container itself if possible so new access points get pulled in automatically.

Thanks!!!!
#10
I'm looking for a way to add up all of the wireless clients connected to an AP, then show this in a dashboard.   the tricky part I can't figure out, is there a way to make this dynamic so as we build our network further, it is automatically sucked into the software?    I've got auto bind setup for an AP template, maybe a way to use the template to build this?


Thanks in advance!
#11
after updating to 2.2.13, i get a little different message.   

#12
I forgot to mention,   terminals on all other computers except the server timeout and fail. they sit on synchronizing objects: work bench for a few minutes and fail. 
loading it on the server takes a long time, but does open.   checking the box for slow connection doesn't change it.

these problems started at the same time.
#13
last few weeks i've ran into some really poor performance, i think it is database related.

I started to see error writing to database, full. errors in the debug screen after the service was started (sorry i didn't note the exact error) but it was resolved by shorting retention timers and reducing some nodes.    I changed the log retention time from 90 to 1 day to help clear it up, the low space error stopped. 

the attached screen shot was taken from the server while restarting the server process. it takes about 30 minutes to start, mostly posting this message over and over. a couple weeks ago it was about a minute to start. i've only got 1 user account, if this is some how related to that.   the server sits in a VM and all other functions and VMs seem to be ok.

i'm using 2.1.2, windows 7 OS, and sql server 2012.

any ideas what i can do to restore previous performance?


Thanks in advance!
#14
General Support / Re: Sum values from nodes
October 20, 2018, 02:38:07 AM
I'm trying to build a variable script to find all objects beneath a template contain and sum a value from a DCI .1.3.6.1.4.1.17713.21.1.2.10.0. that is common to every device within the container.

is there a way to take the node and DCI values and create them in a dynamic fashion?  the goal is to read the total number of connected subs to an AP and have this read additional APs over time automatically.   I've gotten spoiled with the auto-bind functions :)


val1 = GetDCIValueByDescription(FindObject("node1"), "DCI1 description");
val2 = GetDCIValueByDescription(FindObject("node2"), "DCI2 description");

if (val1 == null || val2 == null)
  return 0;

return val1 + val2;
#15
General Support / Re: can't import Cambium epmp 3.5 mibs
November 22, 2017, 02:12:44 AM
I didn't provide a destination file, once i did this it was successful.


Thanks!