Bug early release Collector Update V34.500
I have updated some of our collectors to the early release V34.500. After the update, there were various alerts from the DataSource Citrix_XenApp_DatastoreStatus, which could no longer read any data. After a short error analysis and further tests with other collectors, I replaced the here-string in the PowerShell script with a normal string input: OOTB: # Get XenApp specific creds $XenAppUser = @' ##XENAPP.USER## '@ $XenAppPass = @' ##XENAPP.PASS## '@ After customization: # Get XenApp specific creds $XenAppUser = '##XENAPP.USER##' $XenAppPass = '##XENAPP.PASS##' The query then worked perfectly again. Has anyone else experienced this phenomenon in their environment?Solved131Views21likes5CommentsLinuxNewProcesses DataSource -- Auto discovery and key off of HOST-RESOURCES-MIB::hrSWRunName
Hello all! I just wanted to share my edits. I never could get LinuxNewProcesses to work for my needs.. but we really wanted it to also have auto discovery and automatically add a list of toolsets that we have deployed across the board. I did this LONG ago and my wildvalue was the PID…but that’s dangerous and I ended up creating thousands of entries in the LM database because my processes (thousands of them) were always changing. . . .this takes a different approach and keys off of the process name. #1 You just need to have a property defined with a comma separated list These names need to be from “HOST-RESOURCES-MIB::hrSWRunName” #2 My polling is every minute but don’t alert unless it’s been down for an hour…for my scenario, I do this on purpose because some of my applications run for about 5 minutes and then aren’t kicked off again for another 10…so adjust as needed :) The status is under a security review right now.. I’ll post the lmLocator if it makes it! Otherwise here’s the autodiscovery.. the collection script wont’ work and you’ll have to modify it import com.santaba.agent.groovyapi.snmp.Snmp; def OID_NAME = ".1.3.6.1.2.1.25.4.2.1.2"; def host = hostProps.get("system.hostname"); def services = hostProps.get("linux.services").split(','); Map<String, String> result = Snmp.walkAsMap(host, OID_NAME, null) result.forEach({ index,value->index = index; value = value; for (service in services) { if (value ==~ /${service}/) { def CMD_OID = ".1.3.6.1.2.1.25.4.2.1.4." + index; def service_cmd = Snmp.get(host, CMD_OID); def desc = index + " | " + service_cmd; out.println value + "##" + value + "##" + desc } } }) Script: Line 89: if ("${name}" == "${processPath}") {133Views19likes3CommentsTesting groovy script on local ubuntu machine
I am searching for a way to run groovy scripts on my local ubuntu (WSL) while being able to work with the same classes that are used by the collectors. To achieve this I installed a java+groovy and deployed a collector. However I am unable to import the classes like“com.santaba.agent.groovyapi.snmp.Snmp” Is there any way to achieve this? Or can I somehow locally access the collector shell to test groovy code without the need to use the LM web UI? So, I am basically searching for a way to develop scripted DataSources using CLI, without fiddling with the web UI. Any guidance very much appreciated.Solved239Views18likes9CommentsMonitoring folders on Windows servers
I was recently asked by a customer if it was possible to monitor the size of a folder or the file count in a folder on a Windows server. Well there sure is, <whistles> YO UNC Monitor- come on down. UNC Monitor- is part of the Core DS, the DSs that are installed by default when LogicMonitor is first deployed. As seen on the UNC Monitor Description section: Great, there is a way to do this. Ok how do I do this? Hmm? Well looking at the next section of the DS, Technical Notes. Add an instance manually, oooohh k. But how do I perform this specific voodoo? Hmm maybe if I look further down on the DS? Ok there is the Groovy Script, what do I get when I run the Test Script? Ok so I do have 5 folders that contain 41 files using a total of 7,013 KB. Great that’s some info but still not what I need for a path and I still don’t know how to “add the instance manually” Maybe there is some documentation on how to do this? Oh yeah it’s right here Step 2 states “click the down arrow icon button located next to the manage button for that device. From this dropdown menu, select “Add Other Monitoring” So now I know the steps I need to take and I know that there are folders that are shared. How do I know what the shared folders are without having to log onto the server? That’s where the debug facility comes in for help. The easiest way to access debug is open any raw data screen and click on debug You will be presented with all the available commands. To assist in finding the available folder shared we will be using !wmi If you aren’t familiar with any command just type the command and you will be presented with information. In this case I want to show the shared folders on this server. With a bit of knowledge on Win32 Classes we can find this info. I’ll cover Win32 Classes in another post. Now I have everything I need to get this folder monitored through UNC, RIGHT?!? RIGHT?!? I’m looking at the device and there is no DS for UNC showing How do I add it manually if I don’t have DS ugggh. Since I have my handy dandy info from the documentation I know I need to: Once you click on that you get Add a name as you want it to show up on the instance list. Then you can add a path from the list that was obtained through leveraging the debug facility. Once both of those are filled in,hit save twice and tada you get And more importantly you now have alert tuning that you can perform on this specific UNC drive817Views17likes2Comments"Operation not supported" when adding a data source.
I have deleoped my own metric (a small PHP script which is served by PHP-FPM and should be fetched by the HTTP method). The script supports active discovery, because the returned datapoints vary among monitored instances. However, when having finished filling out the form to create a new data source, an error message tells me “Operation not supported”. Sorry, there is no clue about what exactly the error is. Can someone help me out in this? Kind regards, Robert.Solved74Views16likes6CommentsOracle jdbc JAR file update
LogicMonitor's collector utilizes an outdated version of the Oracle JDBC jar file. It's essential to upgrade to the most recent version available in the Maven repository to take advantage of new secure database connection types. However, users should note a significant change in behavior with the new jar: while the old version automatically closed abandoned Oracle database connections, the new version does not, potentially leading to an excessive number of open connections. This surge in open connections can overload and crash an Oracle server where connections aren’t limited by user. Therefore, clients must either ensure that customizations explicitly close database connections or adjust their server settings to impose limits on the number of concurrent open connections. All of the newest Logicmonitor datasources properly close connections but some of the older modules did not do this. Logicmonitor has created a module to test for this problem and alert if it occurs. Oracle_Database_MonitorUser will keep track of the number of connections in use by the monitoring user and alert if the number of connections is too high. This update is scheduled for collector 35.400. Make sure this module is installed before upgrading to collect 35.400 and monitor your database connections before rolling this out to general release.74Views15likes0CommentsXpath woes
Hey all, Been trying to figure out why this Xpath syntax is not working and I’m at a point where it seems like it’s an issue specific to LM…hoping someone knows of a fix/workaround. Abridged XML response that I’m getting from a device we want to monitor: <?xml version="1.0" ?> <BACrest:GetValue xmlns:BACrest="urn:BACrestService"> [...] <BACrest:return>75.034996</BACrest:return> </BACrest:GetValue > I’m trying to get the value insideBACrest:return. Using the XML section of this article as reference. Also using freeformatter.com as suggested here to validate my Xpath syntax. I’ve tried a bunch of various syntax options that all work largely as expected in freeformatter but don’t work in LM: I get either NaN or 0. I have verified that I’m getting the expected XML in the body of the response. Various syntaxes I’ve tried: BACrest:GetValue/BACrest:return /BACrest:GetValue/BACrest:return /BACrest:GetValue/BACrest:return/text() number(/BACrest:GetValue/BACrest:return) string(/BACrest:GetValue/BACrest:return) ...etc. Then I thought maybe LM needs to have an integer (is that a thing?) so I tried this: substring-before(/BACrest:GetValue/BACrest:return, '.') ...which returns just 75 in freeformatter. Ideas? Thanks!Solved104Views15likes3CommentsA DataSource to Troubleshoot ERI Merging
One of the most common behaviours noticed in topology maps is ERI Merging. This is caused when two or more devices share the same identifier (ERI). The example I always like to give when I’m teaching Topology Mapping is the word “football”. To a European like myselfthis is a game played with your feet, however in other parts of the worldthis is an altogether different game. Now let’s imagine we have a Topology Map connecting various sports together; what would show up if the map connects “football” to “basketball” - would it be the kicking game or the throwing game? Well, in LogicMonitor, it would be effectively indeterministic to tell. The two games would merge into a single object in the map (they merge into one of the resources at “random”). A key indicator of merging is one device showing as another device in the topology map. Luckily, there are a few out of the boxways to overcome this merging - the topo.blacklistand topo.namespace properties. If you’re interested in finding out more about merging how these are used, I have created a LearningByte which you can watch for free in LM Academy here - you will need a free Academy account created first. https://academy.logicmonitor.com/topology-mapping-toponamespace-topoblacklist/1329206 In order to use the blacklist property, you must know which ERIs are being merged. This can be discovered in the UI through a manual comparison of ERIs between resources (you can export to excel and process there if you’d like), however this can be a cumbersome process and doesn’t reveal how many resources are merged. That’s where my new ERIMergeTroubleshooter comes in. Using the LogicMonitor API to run the !erimergelist and !erimergedetail collector debug commands, it creates one instance for each merged ERI and a subsequent instance level property listing which other resources merge with that ERI. For example, we can see that this “Router” resource has merged with a “Server” resource. Applying the troubleshooter DataSource, it immediately reveals which particular ERI has merged, and which resource it has merged with (this is a trivial example, although most situations are often more complex). If you’d like to try out this custom Logicmodule, it can be imported now from the LMExchange (locator: F26PEJ); it will be great to hear some feedback from real world testing! Caveats: By default, this applies to all resources in the portal, so users should modify the appliesto if they require testing on specific devices only The module has not been tested against or developed for chained ERI merging API credentials are to be added as device properties based on the technical notes Thanks!212Views15likes1CommentAruba Central Monitoring?
If you are responsible for monitoring Aruba Wireless Access Points, CXSwitches, and/or EdgeConnect SD-WANand might be interested in an official Aruba Central integration, please consider completing this short questionnaire. It’s completely voluntary, confidential, consistsof four multiple-choice questions, and should take less than 1minuteto complete. Thanks for your consideration. https://docs.google.com/forms/d/e/1FAIpQLSd3O8AIMj_aXA24Pcc9q_ZBGDOUmrKFe4_d1aedyEfjVBkn2w/viewform?usp=sf_linkSolved884Views15likes2Comments