• Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by mnagel

  1. I would not hold your breath -- I have had to fight just to get and keep SPF enabled on our email. Regardless, even if you could use the builtin alerts with a distinct From address, you would still have portal links embedded in the message that reveal it is LogicMonitor. You could do what we do and submit everything via a custom email integration (or a web integration via an API handler), then handle the data any way you like. In our case, we feed the tokens into an actual template system to format messages using conditional logic and all that stuff missing in the LM blind token substitutio
  2. Here are at least two items that need to be added to make the dashboard token feature more useful: adjust widgets that cannot use tokens so they can (e.g., Alerts, Netflow, etc.) allow arbitrary tokens to be inserted as needed within widget fields (e.g., device patterns, instance patterns, etc.) A concrete example of the latter came upon me this morning. We have multiple locations with similar equipment for which we want to display Internet usage details, one set per dashboard (cgraph and netflow widgets). The edge device names vary as do the uplink ports to the ISPs in each
  3. Many examples of using WMI from Groovy, none that select from Win32_Service, but should be simple enough to adjust the query. See Microsoft_LyncServer_StorageService as one example.
  4. The normal way I monitor services is via AD, but you would end up with a new instance wildvalue each time it was changed if you use the normal option (WMI-based datasource). If you use Groovy script DS instead, you could strip the PID portion to build the wildvalue so that the data is stable. There should be some examples of that in the existing datasource repo, need to dig around....
  5. Yeah, brings back horrible memories of me requesting repeatedly the documentation on how to pass parameters and getting the most insane response from support :).
  6. Best we have been able to do here is a script leveraging the API to download as many endpoints as we are able to access with checkin to a git repo. Works, but needs frequent tweaking as things change on the backend. Having a way to revert to a previous snapshot or similar would be very handy. My script came about originally after I implemented alert rule resequencing with an error and lost some rules. My latest incarnation of this script has an option to check the items as well for problems (e.g., broken widgets).
  7. I recommend opening a support ticket on this -- it is a bug or at least an undesirable limitation in the SSH library. Possibly fixed in a newer collector version.
  8. Seems like a no-brainer to support that, right? The only way you could as it stands is via API calls, which, without library support, is a non-starter for me. It could be done if you want to maintain many copies of the same code across modules (which seems to be the norm now, except they are all slightly different based on who writes them as you would expect).
  9. Since I can't wait for this, we now have code to grab widget data for all supported widget types incorporated into our existing backup script (pulls virtually anything I can from the API into a Git repo regularly). Most issues can be detected via exception (non-200 status code), some require a bit more analysis (no data in any line in a cgraph, for example). Working reasonably well now for the first phase, which is to be aware of busted widgets before we are embarrassed during client review. Next phase will be to analyze data more specifically to the context (once I figure out how to represen
  10. I am incorporating this into my resource check script. For now, the first item I am testing is Windows_DHCP, which requires that the DHCP Server role is installed (we have an auto.winfeatures property that is populated by a PropertySource. I don't recall where we got it, somewhere in these forums IIRC :). The PS code is simple: hostname=hostProps.get("system.hostname") my_query="Select NAME from Win32_serverfeature" def session =; import com.santaba.agent.groovyapi.win32.WMI def result = session.queryAll("CIMv2", my_query, 15); println "WinFeatures=" + result.NAME
  11. It seems like a bug to me that if you assign Thresholds in a role that you are allowed to edit thresholds, but not toggle alerts or notifications on and off. Please either include that within Thresholds, or add another permission to enable that without having to assign full Manager permissions.
  12. Unfortunately, they will need to make instance groups into actual groups first, which I have requested many times. As it stands they are basically limited tags where you can only have a single tag for any instance and then you can apply thresholds to the tag, but those don't apply to new items tagged the same way. This is why they throw up the warning about how new instances won't get thresholds automatically. We've had to workaround that with API scripts to refresh those instance group tags and thresholds when new volumes are added to servers (as just one example). I assume if they ever ar
  13. I would start here: There is an example of how to use this (not in an LM-friendly way) at There is also an example (a bit dated) on how to expose data via SNMP here: The problem seems to be a general lack of standard monitoring since OpenVPN runs on so many platforms. If check_nrpe works, perhaps just punt and use that via an LM script datasource :).
  14. It sounds like you are expecting a function to be able to take arguments, because "function". I did as well many years ago when I wanted to create a single isClient function with the client name as an argument, but found after a very painful support ticket that they absolutely are not functions, just macros. You would need to write a separate version for each check. In this case, you would have to add a new function like this and a new one for each version: system.virtualization=~"VMware" && auto.version_number =~"6\\.5\\.0*"
  15. I would like to have SSL expiration profiles I can apply to websites with automatic selection based on the CA. This is (for now) based on the fact that Let's Encrypt certificates tend to have short expiration intervals, but it seems like a good general solution to discover stuff automatically as elsewhere within LM. Thanks, Mark
  16. We have for some time used LucidChart to present network diagrams to our clients via an iframe in a widget. The Topology Mapping feature has its place, but it is not a substitute for diagramming. Among other things, TM has no support for most WAN topologies. I had not looked into it much before, but LucidChart has a Data Service API and in theory, various device details could be replicated via that method ( It will take me some time to digest that and figure out how that would be useful for presenting information from LM, but it sure loo
  17. Nice! Will definitely give that one a try...
  18. @Sarah Terry Just watched your Level Up presentation on dashboard tokens, which I am familiar with. The idea presented to change tokens on the fly to change the view is nice, but requiring dashboard editing makes it inaccessible to regular users. A fix for that would be to add a token settings dropdown to allow regular users to adjust tokens from a list of pre-canned values that admins can manage. This would also avoid changing the underlying tokens in a persistent manner, enabling context changes for anyone using the dashboard.
  19. I have spent much time the past few years grappling with how to handle alerting within LM. The "LM way" is to not send too many actual alerts (via email, etc.) and instead review aggregates on dashboards. But, that is a mindless repetitive task people should not have to do to pick up on problems, and flooding inboxes is the only other option. My suggestion is to implement a method within widgets to alert when data contained exceeds thresholds (or is abnormal). As a very specific example, if I set a widget to show all core switch interface error rates, I would want to set an alert for the wi
  20. This is a specific case of the more general needed feature of linked (inherited) clones -- this applies to anything that can be cloned so that inheritance and overrides can be leveraged. My original request on this many years back applied to LogicModules (datasources primarily), but the same applies here and to virtually any primary object type that can be cloned. I have been pushing for this repeatedly across the years. Instead of linked clones for modules we now have SMR via Exchange -- much better than blind replacement, but linked clones would be far superior (including this dashboard inhe
  21. There are many gaps like that -- you also cannot search by properties in the resource pane. My workaround is to leverage our API-based endpoint backup script to find things with grep. Clunky, but helps. Most often I am looking for code examples.
  22. This is a specific case of the more general "RBAC and groups are not sufficient to support an MSP model", which I have been trying to get fixed for years. There needs to be structural support for multiple clients, not bolted on as is currently done. I never use the wizard, didn't realize it did this was how it worked :).
  23. I just checked and it looks like currently all the commands require no special privileges, but also not all may be appropriate for every Linux flavor. I know a few spotchecks show some will not work on EL6 (which, to be fair, is EOL later this year). Linux_SSH_BlockDevicePerformance: def command = \"cat /proc/diskstats\"; Linux_SSH_CPUCores: def command = 'cat /proc/cpuinfo' Linux_SSH_CPUCores: def command = 'cat /proc/stat' Linux_SSH_CPUMemory: def command = 'vmstat -s -S K; echo -n \"Cores:\";nproc --all; echo -n \"load:\"; uptime' Linux_SSH_Filesystems: def comma
  24. If the box does respond to SNMP, then it will never discover the Linux_SSH property even if you define credentials because addCategory_Linux_SSH only applies if the system has no categories or only "collector" (which seems like an error). This may explain your AD problems if any category was added to those devices for any reason. Once that is detected, the various modules will work. I am not sure if root is required for all of the modules, but I expect it is for at least a few and as you say, this is not documented anywhere explicitly. Since it must be defined at the device level, you w
  25. Right -- I tried the same and it looks like reports don't handle ILPs. They certainly should -- probably will need to escalate to LM to get it fixed, and they may say it is a feature request :).