All Activity

This stream auto-updates

  1. Today
  2. Hi @Kerry DeVilbiss, The locator code in the current exchange is not working. I also tried to make my own DataSource following your example but it is now workin and I get a "There would be no instances discovered for the selected device." message when I try your example Can you check if the current version of LM needs another "Write-Host $name".Enabled="$enabled" syntax since I see different examples in the documentation when I look at https://www.logicmonitor.com/support/logicmodules/datasources/active-discovery/script-active-discovery/ Regards, Jeroen
  3. Greatly appreciated! I'll take a look at this today and pick it apart.
  4. Yesterday
  5. @Austin Culbertson one of the module engineers mentioned that VMware_vCenter_VMPerformance is multi-threaded, and maybe a bit cleaner than than SO link. ctrl-f for "Executors" in the collection script.
  6. Unfortunately, Service Insights is not an option for us, as we would need to configure on the order of 1000+ Services, each with maybe only 1-4 instances for data being aggregated. Not really an option for us, unfortunately (I've spent a lot of time banging my head against this particular wall ) Do you know what library plays nicely in this case? Is GPars the right one? I'm just trying to find something that will work -- would be best if it's something that works natively with existing libraries (though it shouldn't really be a problem if not). [edit] Herp, I forgot to read the Stack Overflow -- sounds like maybe going straight Java might be best. I'll see if I can work with this -- Thank you!
  7. @Austin Culbertson it's possible, but I don't have any examples handy. You need to make sure you clean up any threads you spawn. Might be able to get started with this: https://stackoverflow.com/questions/26004337/java-multithreaded-port-scanner If you have Service Insights, you could aggregate that data there across your 16 hosts.
  8. Has anyone tried to use any type of code-level multi-threading within a DataSource, by chance? Is this even possible? My use case is for querying 16 different hosts for SNMP information and then aggregating the data based upon certain properties - Think "Combine traffic amongst all TenGigE0/0/0/10 interfaces that have the description 'P2P connection', then all TenGigE0/0/0/10 interfaces with description 'P2P interfaces for Zayo'" -- This is not my _actual_ use case, but an approximation. At present, collection times are hovering around 110 seconds to run through all the operations we need, which is getting a little close to the 2 minute mark for my tastes -- I'd prefer not to have to develop a whole suite of tooling to take advantage of Push metrics if possible, so I'm trying to see what I can do to optimize my groovy script, and it seems like threading is the next logical answer for this; that being said, I've not done anything multithreading before, so there's that I've tried using GPars, but it doesn't seem like it's installed by default (so I installed it as a custom library), and I'm having a little trouble getting it to work (which might be because this might not be a thing that I can do, for myriad reasons?).
  9. Here's the recording of today's webinar. Please consider filling out our feedback survey. Question index: 2:38: are there any pros / cons for using Linux based collectors ? 6:13: Are there any issues running the Collector on a server providing other services (WSUS for example), or should it be standalone? 11:30: Are there any automation possibilities? For example, if a service stops on a Windows server, is there a way LogicMonitor can try to restart the service? Linked Github repo here 17:23: Is there a way to monitor the underlying Azure infrastructure, not our components but the Azure components on which they run? 21:37: Is there any way to see if other customers are exporting data from LogicMonitor to view the data in another system? Grafana? PowerBI? LM API documentation here Webinar schedule for 2021 Main Community Home page 38:12: Is LM Logs a part of LogicMonitor, or is it an external tool we'll have to buy? LM Logs Main Support Documentation 40:08: can you show how to tweek/change anomality part for logs or it can be done?
  10. Thank you! Much appreciated. I will look into it while you search for your notes.
  11. Hi Jonathan, This can be done. I will try to find my notes and post them here. Meanwhile, on the LM side you have to create an Integration which posts message to http endpoint. On the MS Teams side you need to create a webhook in the teams-channel which is used by LM to post a message I'll let you know when I found my notes
  12. Hello, We are planning to move from Slack to Microsoft Teams and therefore need to look into how we change our Slack integration alerts into MS Teams alerts. Is there any up to date information/instructions on this? TIA.
  13. Last week
  14. There is an official feature request already in the system for this. It's currently gathering support as in, the product management team needs to know that many customers want this feature before they can prioritize it. Everybody pile on.
  15. Hello @Jeroen Gouma, I don't know if this is the best solution but, we had a similar need in the past. We have a data source that discovers different instances (one per client essentially). Since Roles don't allow you to drill down to Instance level permissions, what we ended up doing was instead of giving any access to the actual resource that owns the data source, we've created 'Services' that only grab select the specific instances/metrics we want (created a group of service per customer), then on the 'Roles' you can give read/manage permissions for that service only (on a per customer role basis). Not sure if I was clear enough on my explanation but, that's how we ended up doing. Thanks!
  16. Hi, as MSP we use LM for several clients who sometimes have their own dashboards (which are restricted to only their own environment of course). This works fine. Currently we are developing some generic datasources that will be running on 1 of our own servers to gather data for multiple customers (i.e. billing & usage data). We don't want to do this for each individual customer but run it on 1 central place. Is there a way to give a customer view permissions on only a small part of the data in our "central"environment? Idealy a standarized dashboard showing them only what they are allowed to see. Thanks in advance!
  17. Ranjan

    Salesforce

    SaaS Monitoring can be enabled either with Pro or Enterprise license. So, yes SFDC monitoring is available both under Pro and Enterprise packages.
  18. Hey Team, I was just wondering if there was much or any head way on this?
  19. Another request for this! Currently, we turn alerting on the instance off, then back on. It gets the job done, but we don't always want to give every team permission to do that.
  20. This functionality would be nice to have. We currently have many teams in our portal, and I've routinely had to clone DataSources to solve this issue. You can already alter the threshold at the group and instance level but it would be nice to modify the trigger interval for that threshold. For instance, we have several teams that want to be made aware immediately when the status of their interfaces goes down, but other teams would rather it be down for several polling cycles before being alerted. Having multiple DataSources solves this but turns into a decent amount of upkeep.
  21. Earlier
  22. This is still an issue for us, wonderin if anyone else this problem?
  23. Also, if you're testing from a tool like PuTTY, IIRC it draws Username and Password prompts to the screen as if they're coming from the server, when they're actually coming from PuTTY.
  24. It's probably timing out during one of the expect() methods because it isn't finding a match.
  25. I added this but I am still getting a timeout with the discovery script // The enable command will elevate the prompt if possible. cli.send("enable\n") cli.expect([/[Uu]?ser\s?[Nn]ame\s?:/, /[Pp]?assword\s?:/] as String[], smallBufferSize) if (cli.matched() =~ /[Uu]?ser\s?[Nn]ame\s?:/) { cli.send("${user}\n") cli.expect("[Pp]?assword:", smallBufferSize) } if (cli.matched() =~ /[Pp]?assword\s?:/) { cli.send("${pass}\n") } // The enable command may have changed the prompt. We've got to get it again. prompt = "^${cli.matched().replaceAll(termClean, '').trim().replaceAll(/[.*+?^()|\[\]\\{}$]/, '\\\\$0')}"
  26. The good news is it seems dev has finally released new modules that are more configurable, but I have not looked at how much complexity was shifted to propertysources and how maintainable that will end up being. They tied to ssh.user/ssh.pass still, though, so you will still run the risk of incurring costs unexpectedly if you use those for non-LMConfig reasons (like errdisabled port detection). I think it is possible to disable LMConfig modules in the subtree alert tuning, though, so that may mitigate the risk. OSS tools do a much better job than LM did previously, hoping this brings some parity (and fixes for non-change thrashing we see all the time). I would never dream of editing a 1200+ line module and then have to merge changes into updates later.
  27. Alright, so cards on the table: it's really hard to guide someone through an Expect script without being able to see the raw input/response in action, so you'll have to play with this to get it to work. This section of code in both scripts sends the "enable" command to enter elevated privilege mode: // The enable command will elevate the prompt if possible. cli.send("enable\n") cli.expect(["(?i)password:", "${prompt[0..-2]}[>#\$]", prompt] as String[], smallBufferSize) if (cli.matched().toLowerCase().contains("password")) { cli.send("${epas}\n") cli.expect(rawPrompt, smallBufferSize) } The cli.send("enable\n") is what sends the word "enable" to the device. Currently, the script then waits for the device to respond with some text containing "password:". Since the response is actually "username:" or something like it, you'll need to add some code between the cli.send and the first cli.expect so that the script is expecting (using cli.expect) "username:" instead of "password:". Then you'll need to send the username (using cli.send). The username is contained in the ${user} variable so you should be able to do something very similar to what was done earlier in the script where the initial login happened: if (cli.matched() =~ /[Uu]?ser\s?[Nn]ame\s?:/) { cli.send("${user}\n") cli.expect("[Pp]?assword:", smallBufferSize) } I'm sorry it can't be as easy as "just use this code" but, this is often how it goes with Expect.
  28. Same username and password used to login
  1. Load more activity