Tips or Tweaks for controlling when a daily ConfigSource runs?
I have a config source, that really under the hood is doing some other task, a coding task, and it used to conveniently run every day at 22:47 or something like that, but because of reasons, now it runs at 10:05 every morning. This is some ancient script someone else wrote in python and it runs on a collector. I’ll probably convert it to be groovy, and have it run hourly, but only act when the hour digit on the time is 22 or something wacky. But short of that, it did have me wonder, are there any tricky ways to change when a daily config source runs? Because from what I can tell, they run at the time they were made, or I guess at the last time the collector went down because of a domain password problem :) *cough*. I could just try a meaningless edit on the ConfigSource and see if that does it. I dont think bouncing the collector service will do it because on rare occasion the service restarts at a time other than its normal time and that doesnt change CS run times. Just wondering if anyone has any tips or tricks? I’ll probably just rewrite this to run hourly but act only on a specific hour of the day. But just fishing for ideas. I really wish we could schedule ConfigSources like we can reports. Thanks!89Views8likes7CommentsTesla Motors LogicModule Suite
I previously published a datasource for Tesla Motors Battery Statistics - which presents compelling vehicle battery and charging information that is fetched from the Tesla REST API. To complement those efforts, I've written a few other Tesla Motors LogicModules that return a variety of different, but still interesting, datapoints - including a ConfigSource that displays configuration information about the vehicle itself (are the doors locked? Is the sunroof open?) The following is a list of all the Tesla Motors LogicModules now available (see the above-linked post for additional info on how this all works.) DataSource 'Battery Statistics' tracks battery and charger performance and health metrics Tesla Motors Battery Statisticspreviously posted to the Exchange but included here for sake of keeping everything together.) The datasource name isTeslaMotors_BatteryStatisticsand has lmLocatorDXLLKY. DataSource 'Climate Statistics' tracks inside and outside temperatures, as well as driver and passenger temperature settings. The datasource name isTeslaMotors_ClimateStatisticsand has lmLocatorYZRWXC. ConfigSource 'Car Configuration' collects textual configuration data, cleans it up and makes it easily readable (screenshot attached.) The configsource name isTeslaMotors_Configurationand has lmLocatorGRY9AE. DataSource 'Location Data' tracks compass heading, latitude and longitude, and power. The datasource name isTeslaMotors_LocationDataand has lmLocatorAYWYWA. DataSource 'Odometer Reading' does exactly what you might expect. The datasource name isTeslaMotors_BatteryStatisticsand has lmLocatorHHJRD82Views12likes5CommentsWorkarounds for long ConfigSources?
I have a couple of devices where the Configis so long that the FortiOS Config shows “...Data Truncated...” in both the UI and the download. I looked in the code and so I know the limit and see that the ConfigSource is checking for a specific max size and displaying as much as it can (carving out room for the truncation message). Anyway, I’m assuming this is some UI limit, or else LM’s code would have just printed sections back to back, until done. So I’m wondering if anyone in the community has had the issue, and if anyone has a workaround? Thanks!74Views10likes3CommentsNeed help on PaloAlto_FW_RunningConfigXML API configsource
Currently, the sole option is to collect/view the configuration xml when a change occurs. So,IsthereawayinLMtogenerateareportusingthePaloAlto_FW_RunningConfigXMLAPIconfigsource? or Is it possible to collect the configuration backup at any specific time interval? Thanks in advance :)67Views16likes2CommentsConfigSource checks by Value regex quirks?
I made a ConfigSource which applies just to our LogicMonitor Account resource object, and it tracks changes to folders, in case anyone moves things they shouldnt. It runs once an hour. I’ve got it working (with some false error in it too to test the config check) but my Arbitrary Text checks by Value which use Regex just aren’t working, but they work on regex101 and I can see the capture groups work fine. But no matter what, I could never get an error to trigger when my output started with anything other than “OK” so I was forced to just switch to a groovy script check for the presence of “ERROR CHANGE:”. But again, I’m certain my regex is correct, and I verified it on Regex 101. So I’m just wondering if there are any known “quirks” about LogicMonitor’s regex or input stream from the config source that would be “Tricky” in any sense. For example, I already consider it weird that in AppliesTo checks with =~, which supposedly use Regex, are somehow case insensitive by default in LM, but arent in regex generally. Because I cannot for the life of me get the Value option with a capture group being not equal to OK to work in any sense. But my regex groups things fine in regex101. So I almost wonder if maybe ^ and $ dont apply, maybe the whole output is considered one line or something strange under the hood. I’m grasping at straws. ^([^:]+?):.*?$ ^([^:]+):.*$ All my output lines from my ConfigSource either start with OK: or they start with ERROR: …. and I’m throwing an error when the capture group has a value that is not equal to OK. So logically, if my regex value matches at all, it should throw an error now for sure, since I have lines with both in my output (I wont bore anyone with sample output). Anyway, I got my alerts working by using the groovy script check for a hard coded value, just wondering generally if there are any known quirks with Value checks. I know its possible somehow that I’ve just done something dumb too. But more broadly I’m wondering if there are any other known weird things? Thanks!49Views3likes1CommentCommon Config Sources vs Legacy LM Config Sources
We use LM Config and have since day 1. I’m wondering if any of you have migrated off the legacy LM Config sources and onto the “Common Config” method? What sort of gaps in data did you have? I’m sort of stuck on the idea of having to dump one for another or potentially have some that work only with legacy vs Common methods? Seems like it could be hard to manage. Do you have any challenges today using the new way?109Views5likes1CommentApply ConfigSources to devices that have alert trigged from other configsource
Hello I'm searching for a way to apply configsources to devices who have a specific active alert triggered. E.g. use case: ConfigSource "Cisco_Compliance" who checks if a device has the following command present: "transport input ssh". -> alert gets triggered if command is not present. I have another configsource "vty_ssh_only" which will execute some commands so "transport input ssh" gets configured on the device. So what I want is to be able to apply the "vty_ssh_only" config source only to the devices who have the alert triggered from the "Cisco_Compliance"config source. I already reached out to LM support who said this should be possible but didn’t know how to do it ... Does anyone have an idea on how to accomplish this? Thanks Kind RegardsSolved61Views9likes2CommentsConfig Backup Reports
We are migrating from a legacy tool to LogicMonitor for Configuration Backups, but just noticed one issue. There isn’t a built in way to report on when the last config was backed up and when the last config checked to see if there is a new one to backup. Some clients want to see this VS “no alarms”.Solved498Views8likes5CommentsCant get javax.mail.Session to work? (Groovy Datasource or ConfigSource)
Last week or so I asked a question about using groovy to send emails, and I was pointed to some datasources such as email_TransitTime and etc, to use as a template. I’m just getting a chance to look at that this week. And I hit a snag, and I’m not sure if this is user error or something else. I snagged the code for email_TransitTime and I did what I always do, which is to strip the code down to just the most minimal thing for object creation or for calling the classes etc that I see used, and I immediately hit the problem that the LM Groovy script always tells me: “No such property: Session for class”As it happens on our portal, nobody is even using email_TransitTime, so I cant really be sure, but it seems like something may be wrong on the portal. Here is the code I’m using, this is literally the entirety of the datasource code for now, and I literally just did the imports related to mail that email_TransitTime uses, and then just as that code does, I snag the properties and then try to make a call, without defining anything etc. import com.santaba.agent.groovyapi.expect.Expect; import com.santaba.agent.groovyapi.snmp.Snmp; import com.santaba.agent.groovyapi.http.*; import com.santaba.agent.groovyapi.jmx.*; import org.xbill.DNS.*; //mail? import javax.mail.* import javax.mail.internet.* import javax.mail.search.* //import javax.mail.Session //smtpProps.put("mail.smtp.port", "25"); def smtpProps = System.getProperties(); def smtpSession = Session.getInstance(smtpProps, null); println 0; return 0; So I poked around online for just java and groovy use of javax.mail.Session and I found some similar instances of people having a similar error and they fixed it by putting some other java file somewhere, but I cant control all of this obviously on the LM platform. I guess. But what I’m getting at is that I cant even interact with javax.mail.Session at all, from playing around with it, or trying to import javax.mail.Session directly or anything. Can anyone think of anything obvious going on? I dont see how email_TransitTime could even work on our portal. I’ve never had any issues using classes I’ve seen used in other config sources or datasources, and I’ve even never hit a problem using imports and code examples I see for java generically. I’ve found super simple examples of code online people are doing that basically are doing something just as minimal, and that line “def smtpSession = Session.getInstance(smtpProps, null);” works for them …. at least for those that could get the javax.mail.Session imported or available to them. I’m stumped. Help? :) Thanks!105Views1like2CommentsUsing groovy script to send email (inside a DS or CS)?
We use a resource associated with a specific collector to run scripts using config sources as the mechanism. One of the scripts I am writing now posts to a “UserDisable_Warning” config source a list of users whose suspension is imminent. I would like to use the config source to also send an email to the user, but I’m worried I’m going to have to do a bunch of crazy stuff to set up things on the collector. But I’d rather not use the collector’s exchange to send email, because I dont have direct access to it (go figure) and some of the datasources I’ve seen look like a serious pain to use (Email_TransitTime, for example) as a template. I was wondering if anyone knows a simpler way to send email. When a resource has an alert with an escalation chain that contains an email, I was under the assumption that no exchange server or imap or anything else has to be set up on the collector. Or so I thought. So I’m kinda hoping there is some easy way to avoid having to set up mail stuff on a collector, and just have that collector, via a groovy script, send an email out somehow. Like in my wildest dreams I would import something, and then do java.pipedream.Email.send (“blah@foo.blah”,”LM expiration for blah@foo.blah”,”Dear Blah,\nYour LM account expires in X days.\n\n--MyCompany”). Or at least something not reliant on setting up email servers or clients or etc on the collector. Maybe I’m completely off in the wrong direction. What would be the easiest way to have groovy send an email, preferably with me not having a lot of control of my own collector (even though I’m portal admin; work silos, know what I’m sayin’? :) )? Thanks!355Views3likes7Comments