Joe Tran

  • Content Count

  • Joined

  • Last visited

  • Days Won


Community Reputation

18 Good

About Joe Tran

  • Rank
    Community All Star

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. P.S. If I have not gone crazy in my line of thinking, please update the REST API Documentation to include descriptions/methods/models etc for /setting/alert/internalalerts resources. 😀👋
  2. I will admit that I had completely forgotten that External Alerting was a thing. When we first started with LogicMonitor (like 3+ years ago), someone at LogicMonitor had mentioned External Alerting as a potential solution for a random use-case and I had immediately disregarded out of hand--favoring a Custom HTTP Delivery integration instead. Fast forward to now and this post, and all this recent talk about self-heal and actions and an idea was sparked. Some internal partners are building automation tools to resolve issues and are pretty comfortable with some DIY. Originally, I had figured I would have to get them setup with an AWS Gateway+Lambda function that can receive alerts triggered which would then start a cascade of custom code, in the correct AWS VPC, to self-heal--but why bother when we have external alerting right? The client environments that I monitor and that these internal partners manage have dedicated collectors in each client environment. Just assign that client's collector to that client's resource groups, throw in a broker-like script that takes in necessary resource metadata, datasource, and execute the necessary remediation scripts. Disregard any alerts for datasources not supported by our self-healing project. This assumes that I'm interpreting External Alerting correctly. The key thing for this to work for my use case would be the ability to have External Alerting AND our normal Alert Rules apply to the same resources/alerts. The Alert Rules would still be responsible for delivering the alert to our ticketing system. Timing of when Alert Rules would trigger and when External Alerting would trigger would be nice. The support center page for this makes it seem the collector polls the resource group at regular, but unknown, intervals. The Alert Rules would populate alert with the ##externalticketid## and it would be neat to have the External Alerting also take that in as a parameter to update said ticket. I would also need to know if the script executed from this is subject to timeouts, concurrency limits, etc or if there is a limit to the number of External Alerting configs. Am I way off base?
  3. Joe Tran

    Radical Suggestion for Web Sites

    So they already renamed Devices to Resources. I can only hope this feature request is on the horizon 😉. Totally not wishful thinking, right? 😅
  4. I need to spend more time in a non-admin role 😑. It looks like all users, despite what is defined in "User Access" for their roles, are able to list other users via Dash Sharing and Reports Schedule. We feel that should not be the case. I would only want my coworkers to be able to do this, NOT my clients who should not be aware of each other (at least not through our monitoring application).
  5. I've opened a case with support and in the meantime, I've gone through all our client user accounts and disabled their access to Reports until we get this sorted out.
  6. I love the Reports UI but my users who have only View access to Reports or any given Report Group SHOULD NOT be able to see the reports generated by other users. The previously generated reports are great, but they are hosted in S3 and don't check against the user roles we have assigned to our users. We have a common set of reports that all of our clients use and when they run them on-demand in the old UI, that's all they get--that particular run. Client ABC can now see a version of a report that was run by Client XYZ by clicking on a link. Not good. Making all runs of a report available for all users with access to those reports creates a management headache.
  7. Joe Tran

    AWS Lambda Alias

    I like it. I made two modifications to our local copy: - disabled Active Discovery - changed the metric path from Resource=##WILDVALUE## to Since adding a property is a manual step anyway, I figured keeping this LM resource as "cloudy" as possible better suited our needs. The scripted Active Discovery never created the DSI for me and that's probably because I didn't assign a collector to the monitor the LM Cloud resource.
  8. AWS lists that the Listener limit is on a per ELB basis. The AWS_ClassicELB_ServiceLimits datasource seems to intimate that the ListenerUsage is returning the total number of listeners for the given region. Is this useful information to capture on a regional basis or should this be refactored to apply to each classic ELB?
  9. Most of the Linux environments I work with are RHEL or CentOS and our prompts look like: [username@hostname ~]$ I can't seem to find a prompt pattern that works for both the closing square bracket and the dollar sign when writing a script using the com.santaba.agent.groovyapi.expect.Expect package. No amount of escaping seems to work like '\\]\\$' or ']\\$'. I do need the multi-character prompt because the output I want to parse will include errant $, but not ]$. Multi-character prompts are generally not a problem because I often have to expect a sudo password prompt using a 'username:' pattern and this works without issue. Any ideas on how to tackle this?
  10. Joe Tran

    view access to website steps

    I've waffled on this feature a bit internally. Being able to see the request payloads would give the viewer access to see privileged credential information potentially.
  11. Honestly, I don't use glob in the Resource searching, but I can confirm it is behaving as @Mosh describes.
  12. Joe Tran

    parsing response

    CORRECTION to my last post. You'll want to iterate through 'items' list which is in the 'data' JSON-object.
  13. Joe Tran

    Auto Assign Device group based on IPs

    You could hypothetically use dynamic groups and helluva lot of regex to do that. The system.ips property appears to be one of those array properties, so use the join( ) function to combine them. Then use regular expression equality--- join(system.ips, ",") =~ "192\\.168\\.0\\.[0-2]?[0-9](?:,|$)" This should filter the group's membership to only include devices with IPs from to
  14. Joe Tran

    parsing response

    A couple things. If you are using the requests Python package, you can use the .json() method from the response class. The .content property will return bytes, and that just makes things more complicated than necessary. Assuming this is v1 REST API (because you are referencing the 'data' key from the response), is your API call hitting the /device/devices/{devId} or is it /device/devices resource path (i.e. are you GET'ing a specific device by id or a list of devices)? A GET for /device/devices should return a <class 'list'> object for the 'data' key or, as @Mike Moniz mentioned, will return 0 to n number of devices. So either iterate through all the devices in 'data' or if you only care about the first device, reference the 0 index of 'data' import requests [...] # use .json() method instead of .content jsonResponse = response.json() # Iterate through all devices in 'data' for device in jsonResponse['data']: deviceID = device['id'] print('ID', str(deviceID)) # Only care about the first device in 'data' deviceID=(jsonResponse['data'][0]['id']) print('ID', str(deviceID))