If your environment does not allow the Collector to directly connect with the LogicMonitor data centers, you can configure the Collector to communicate through an HTTP proxy.
Updating SSL and Proxy Settings
By default, collectors are not configured to use proxies. To communicate with HTTP proxies, you need to make updates to several proxy settings located in the collector’s agent.conf
file. For detailed instructions on editing the agent.conf file, see Editing the Collector Config Files.
Once updated, the new settings should look similar to these:
# SSL & Proxy settings
ssl.enable=true
proxy.enable=true
proxy.host=10.0.0.54
proxy.port=8080
proxy.user=domain\username
proxy.pass=password
proxy.exclude=
proxy.global=false
proxy.pass.isencrypted=false
These new settings designate the following:
ssl.enable=true
Indicates that the collector will make outbound connection using SSL.proxy.enable=true
Indicates that the collector will use these settings.proxy.host=
Indicates the IP address of the proxy server.proxy.port=
Indicates the port the proxy server uses.proxy.user=
Indicates the username the collector uses when connecting to the proxy.proxy.pass=
Indicates the password the collector uses when connecting to the proxy.proxy.pass.isencrypted=
Indicates if the proxy password is encrypted or not.
Note: The settings specified above reflect a Windows-based proxy requiring authentication. Linux collectors support only basic authentication. Windows collectors support NTLM and other native windows authentication methods.
Changing Proxy Password
If a proxy server has password-based authentication, its credentials are stored in the proxy.user
and proxy.pass
fields. The proxy password is encrypted. To indicate the encryption, the proxy.pass.isencrypted
is set to true
. You can set proxy.pass.isencrypted= false
if you want to change the proxy password.
Note: This setting is available in collector version 30.104 or later.
- Navigate to Settings > Collectors.
- Under the Collectors tab, select the collector you want to configure.
- Select the More option and then select Collector Configuration.
On the Collector Configuration page, settings under the Agent Config tab are displayed. - Scroll to locate the SSL and Proxy settings.
- Enter a new password in plain text in the
proxy.pass
field. - Set the
proxy.pass.isencrypted
value tofalse
. - Select Save and Restart.
After the restart, observe that the password is encrypted and theproxy.pass.isencrypted
field is set totrue
.
Troubleshooting Collector Proxy Configuration
We have highlighted some common issues experienced (and how to resolve them) when configuring collectors to be used with HTTP proxies.
Issue: Proxy Authentication Required
When the collector is configured to use a proxy that requires basic authentication, the collector may throw the following exception:
[MSG] [WARN] [main::controller:main] [Controller2._initConfiguration:461] Unexpected status encountered from server. Will retry., CONTEXT=retry=30s, statusCode= 500, errMsg=Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
In this case, you will want to add the following configuration to the collector’s wrapper.conf:
wrapper.java.additional.16=-Djdk.http.auth.tunneling.disabledSchemes=
Issue: Invalid SSL Certificate
If a collector does not get a valid SSL certificate issued directly from LogicMonitor, it will fail to properly start. In the below example, all SSL certificates in the client environment were being intercepted and reissued using special security software (example, Blue Coat Proxy).
[03-26 15:53:03.222 EDT] [MSG] [INFO] [statusmonitor:::] [StatusListener$1.run:106] Receive peer request, CONTEXT=command=keepalive, charset=windows-1252, peer=/***.***.***.***:******
[03-26 15:53:03.268 EDT] [MSG] [WARN] [statusmonitor::scheduler:] [PropertyFilePersistentHandler._load:94] task file not found, CONTEXT=filename=C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf, EXCEPTION=C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf (The system cannot find the file specified)
java.io.FileNotFoundException: C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.santaba.common.util.scheduler.impl.PropertyFilePersistentHandler._load(PropertyFilePersistentHandler.java:88)
at com.santaba.common.util.scheduler.impl.PropertyFilePersistentHandler.<init>(PropertyFilePersistentHandler.java:30)
at com.santaba.common.util.scheduler.Schedulers.newPersistentScheduler(Schedulers.java:17)
at com.santaba.agent.collector3.CollectorDb._newScheduler(CollectorDb.java:172)
at com.santaba.agent.collector3.CollectorDb.<init>(CollectorDb.java:68)
at com.santaba.agent.collector3.CollectorDb.<clinit>(CollectorDb.java:65)
at com.santaba.agent.agentmonitor.StatusListener._getAgentStatusResponse(StatusListener.java:279)
at com.santaba.agent.agentmonitor.StatusListener$1.run(StatusListener.java:117) /
[03-26 15:53:03.947 EDT] [INFO] [1] [default] [controller] [Controller2._initHttpService:469] Agent starting with ID - 00baae57-3971-4239-9610-b512aae9c21csbagent
[03-26 15:53:04.232 EDT] [MSG] [INFO] [main::controller:main] [SSLUtilities.checkCertificates:160] Invalid or wrong SSL Certificates found, CONTEXT=info=Found total 2 certificates:
Subject: CN=*.logicmonitor.com, OU=Domain Control Validated
Issuer: CN=SSLInterception87
Type: X.509
SHA1: 9a:a6:ff:33:85:cc:13:4c:3a:13:11:77:5c:ef:5e:a7:74:65:6b:de
MD5: 61:35:08:b5:ec:71:a2:ae:05:c4:7f:54:f1:aa:6f:ad
Valid from: 2017-04-19 10:02:01 -0400
Valid to: 2020-06-18 17:33:09 -0400Subject: CN=SSLInterception3
Issuer: CN=BillyBob's-CA, DC=slhn, DC=org
Type: X.509
SHA1: 6b:a8:1f:61:7b:5d:f0:e4:ee:7e:6a:1b:bb:18:de:67:be:5c:44:1d
MD5: d0:fc:64:da:6f:9b:1f:8d:1a:52:64:dc:41:da:e7:1c
Valid from: 2017-08-09 15:08:18 -0400
Valid to: 2021-10-03 08:53:12 -0400 */
[03-26 15:53:04.232 EDT] [MSG] [WARN] [main::controller:main] [Controller2._initConfiguration:322] SANTABA SERVER ceriticates not trusted, CONTEXT=Host=generic-customer.logicmonitor.com, port=443
Solution A (Preferred)
Have the local administrator add the SSL certificate to your allow list so that it comes into the network unmodified by a proxy/firewall. This is the preferred option because it preserves security.
Solution B
Change the collector configuration setting from:
EnforceLogicMonitorSSL=true
to:
EnforceLogicMonitorSSL=false
Removing SSL enforcement lowers the security of the connection between your collector and LogicMonitor and, for this reason, should be carefully considered before implementing.
You can control the behavior of LogicMonitor collectors using configuration files. Configuration files are located in the collector’s installation directory at the following default file path:
- Linux –
/usr/local/logicmonitor/agent/conf
- Windows –
C:\Program Files (x86)\LogicMonitor\Agent\conf
You can view and update the settings in the collector configuration files on a per-collector basis on the LogicMonitor user interface.
It is recommended that you use the LogicMonitor user interface to update the settings in the collector configuration files instead of editing the files manually. You can manually modify the local collector configuration files at your own risk.
Note: You can only modify the agent.conf.local configuration file manually on the collector filesystem. Any configurations added to this file override the generic agent.conf configuration file. This enables you to configure settings such as debug.disable=false and remotesession.disable=true and ensures the settings cannot be changed on the user interface.
Editing Collector Configuration
- Navigate to Settings > Collectors.
- Under the Collectors tab, select the collector you want to configure.
- Select the More option and then select Collector Configuration.
On the Collector Configuration page, settings under the Agent Config tab are displayed. You can select the WatchDog Config, Wrapper Config, Sbproxy Config, and Website Config tabs to access more settings. - Manually edit the settings.
- Select Save and Restart to restart the collector and apply the changes.
WinRM is Microsoft’s implementation of WS-Management Protocol, a standard SOAP-based firewall friendly protocol that allows hardware and operating systems from different vendors to interoperate. Thus, WinRM provides a way to get management data from a local computer or a remote computer using WS-Management protocol.
Prerequisites
You must meet the following prerequisites to configure and use WinRM to query data.
- You must install EA Collector 35.400 or a later version.
- You must create and enable an HTTPS listener on the Windows devices. See, Creating an HTTPS Listener (port 5986).
Creating Domain User
You can create a new domain user or use an existing domain user. However, ensure that the domain user is not a member of the Administrators group. If you are going to create a new domain user, it is recommended that you first create a domain user and then install the collector using that domain user.
- Navigate to Server Manager > Tools > Active Directory Users and Computers.
- Go to the domain that you want to use for WinRM and right-click Users and select New.
- Enter the new user details and select Next.
- Enter a password and confirm it, and then select Next.
- Check details and select Finish.
Creating an HTTPS Listener (port 5986)
An HTTPS listener must be created and/or enabled on the Windows devices. If you do not have an HTTPS listener created for WinRM, follow the steps given below:
- Run the command
WinRM e winrm/config/listener
in cmd_prompt to check if port 5986 is already enabled on WinRM service. - Use a certificate signed by a trusted Certificate Authority (CA).
- Copy the thumb print of the existing certificate and run the following command on PowerShell.
winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="<YOUR_DNS_NAME>"; CertificateThumbprint="<COPIED_CERTIFICATE_THUMBPRINT>"}
‘ - To verify if the listener is created, run the command
WinRM e winrm/config/listener
in cmd_prompt to print details of port 5985 and 5986. - To add a new firewall inbound rule to allow all connections for port 5986 (TCP), follow these steps:
- Search and select the Windows Firewall with Advanced Security option. The Windows Firewall with Advanced Security window is displayed.
- In the left navigation, right-click Inbound Rules and select New Rule. The New Inbound Rule Wizard window is displayed.
- Select the Port radio button and select Next.
- Select the TCP radio button.
- Select the Specific local ports radio button and enter 5986 in the blank field. Select Next.
- Select the Allow the connection radio button and select Next.
- Select the Domain, Private, and Public checkboxes and select Next.
- Enter a rule name in the Name field and select Finish.
Setting Up WinRM Enabled Collector
To setup WinRM enabled collector, follow these steps:
- Install Windows collector
- Configure WinRM properties
- Automate WinRM non-admin configuration
- Create GPO policy
- Add WinRM tasks to the GPO policy
- Restart remote machine
Installing Windows Collector
Follow the instructions given in Installing Collectors to install Windows Collector. Ensure that you install EA Collector 35.400 or a later version.
Configuring WinRM Properties
To use the WinRM data collection feature using HTTP (port 5985), you must configure the following properties.
Property | Location in Collector Settings | Default Value | Description |
wmi.winrm.enable | agent.conf | false | Allows you to enable or disable the WinRM feature. To enable the collector to perform WinRM queries, set the value to true. |
wmi.winrm.authType | sbproxy.conf | Negotiate |
|
wmi.winrm.useSSL | true | Allows you to perform WinRM data collection using HTTPS. To do so, ensure that you have configured HTTPS setup. | |
wmi.winrm.certCheck | true |
For more information, see SkipCACheck and SkipCNCheck Microsoft documentation. As per security best practices, it is recommended that you set the value of this property to true .Note: wmi.winrm.useSSL and wmi.winrm.certCheck properties are provided only for testing purpose and will be removed in the future release of collector. |
Restart the collector after you update the configuration files with the properties.
Note: The sections starting from Automating WinRM Non-admin Configuration onwards are meant for only those who want the WMI query user to be a non-admin user.
Automating WinRM Non-admin Configuration
We have automated the WinRM non-admin configuration process by adding Windows_NonAdmin_Config.ps1
. You must consider the following points about the scripts:
- The scripts are bundled with the Windows collector installer.
- After installing collector, go to
\LogicMonitor\Agent\bin
and move the scripts to the netlogon folder. - All the machines in the domain must have access to the netlogon folder in order to access this script when executed through Group Policy (GPO).
In case of access issue, see Microsoft documentation.
Creating GPO Policy
- Navigate to Server Manager > Tools > Group Policy Management.
- Right-click the domain you want to use and select Create a GPO in this domain, and Link it here…
- Enter a name for the new GPO policy (for example, WinRM Configuration) and then select OK. Note that the Source Starter GPO will remain (none).
- Right-click the newly created GPO policy and select Edit to add WinRM tasks.
Adding WinRM Tasks to GPO Policy
- In the Group Policy Management Editor, navigate to Computer Configuration > Policies > Windows Settings > Scripts (Startup / Shutdown) and select Startup.
A Startup Properties dialogue box is displayed. - Under the Scripts tab select Add.
An Add a Script dialogue is displayed. - On the Add a Script dialogue, enter the following details.
- In the Script Name field browse for the PowerShell.exe path. Typically, the path is
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe
Note: If the path differs, browse for the specific folder where you have placed thePowershell.exe
. - In the Script Parameters field enter the following parameters for the script.
-Noninteractive -ExecutionPolicy Bypass -Noprofile -file \\<IP_Address_of_DC>\netlogon\Windows_NonAdmin_Config.ps1 -add -UserName logicmonitor\DomainUser01
- In the Script Name field browse for the PowerShell.exe path. Typically, the path is
- Select OK and then select Apply.
Restarting Domain Machine
- Open PowerShell terminal and run
gpupdate/force
. - Once the user policy is successfully updated, restart the domain machines.
To manually perform the above setup, see Windows Server Monitoring and Principle of Least Privilege.
Using the Debug Command to Verify Configuration
When the configuration is complete, you can run the !winrm
debug command to verify the WinRM setup. In addition, you can run !winrm
for any query to get the output. When the debug command runs successfully, it prints the output of the query. The format of the debug command is as follows:
!winrm host=<Computer Name> [auth=<Auth Type>] [useSSL=true|false] [certCheck=true|false] [username=foo] [password=var] [query=winrmquery]
The properties in this debug command are described in the following table:
Property Name | Description |
host | (Mandatory) The remote domain computer you want to monitor. |
auth | Supported authentication types are Kerberos and Negotiate . The default value is Negotiate . |
useSSL | WinRM data collection over HTTPS. The default value is true . |
certCheck | Indicates if certificate must be used or not. The default value is true . |
username and password | The domain user credentials. If not passed, wmi.user and wmi.pass are used. |
query | The WQL query. The default value is select * from Win32_Service . |
timeout | The timeout value in seconds for the WQL query. By default, the timeout value is 60 seconds. |
The following is an example of a query input:
!winrm host=EC2AMAZ-93376C4.logicmonitor.com auth=Kerberos username=LOGICMONITOR\WinUser01 password=WinPass@123 useSSL=false certCheck=false
Rolling Back WinRM Configuration
You can revert the changes done by the Windows_NonAdmin_Config.ps1
script. Refer the following example:
-Noninteractive -ExecutionPolicy Bypass -Noprofile -file \\<IP_Address_of_DC>\netlogon\Windows_NonAdmin_Config.ps1 -remove -UserName logicmonitor\ScriptTestUser01
Follow the steps given in Adding WinRM Tasks to GPO Policy section but run the scripts with remove
flag to roll back WinRM configuration.
Note: In the example, add the IP address of a DC with a correct path.
Troubleshooting
WQL filter issue for groovy scripts modules containing
andwmi.queryfirst()
wmi.queryAll()
WQL filter supports the following 2 formats:
- Format 1 – “select * from win32_bios where NAME LIKE ‘%’” – Double quotes surround the WQL and the clause value is enclosed with single quotes.
- Format 2 – ’select * from win32_bios where NAME LIKE “%” ’- Single quotes surround the WQL and the clause value is enclosed with double quotes.
WinRM (when you set wmi.winrm.enable= true
) supports only the format 2. If you have enabled WinRM and if for custom datasource you use the format 1, then you will see errors on calling wmi.queryFirst()
/ wmi.queryAll()
in the groovy script. To avoid the errors, we recommend you to use the format 2.
Intermittent issue – Network path not found
Due to issues with network or domain you may get the “Network path not found” message.
Error Message : Exception calling "Invoke" with "2" argument(s): "The network path was not found.".Exception.Messages
When you find this error message in the logs, to troubleshoot it, reapply the scripts as a fresh task.
To migrate service account to non-admin user separately, see Migrating Windows Collector from Admin to Non-admin User.
LogicMonitor Collectors have configuration files that can be used to control their behavior. The most robust of these configuration files is the agent.conf file. Data collection, Active Discovery, auto properties, event collection, and many other Collector-specific behavior settings are maintained by this configuration file.
The agent.conf file is located in the Collector’s installation directory. The default file path is:
- Linux Collectors: /usr/local/logicmonitor/agent/conf/agent.conf
- Windows Collectors: C:\Program Files\LogicMonitor\Agent\conf\agent.conf
As discussed in Editing the Collector Config Files, it is highly recommended that any changes or additions to the agent.conf file be made via the LogicMonitor UI (from the Collectors page) as there are safeguards in place to prevent errors. Manually modifying this file from the local Collector is not recommended and is performed at your own risk.
There are more than 600 settings that can be configured in the agent.conf file, providing you with very granular control of your Collector’s behavior and operations. Some settings display in the file by default; some may need to be added if you’d like to override the default values that are defined in the code. All values declared in the agent.conf file supersede values defined in the code.
Note: In the majority of cases, your Collector will run as needed out of the box as long as it is appropriately sized. As a general rule, we recommend approaching the customization of agent.conf settings with caution and, ideally, at the direction of a support representative.
Settings are listed next, organized by function.
General Collector Settings
Property | Type | Default | Description |
agentmonitorwatchdog | Boolean | TRUE | If TRUE, the Collector will watch watchdog processes and restart the watchdog service if issues arise. |
agent.autoupgrade | Boolean | TRUE | If TRUE, the watchdog service will upgrade the Collector when a Collector upgrade is initiated. |
keep.alive.check.times | Integer | 2 | The number of times (per 5 second) a Collector checks to see if the watchdog service is working. |
agent.min.usable.space | Integer | 1024 | The minimum usable space (in megabytes) for the Collector. |
agent.restart | Integer | 0 | Assigns the restart interval of the Collector (in hours). By default the Collector restarts after credential rotation (every 24 hours). To update this restart interval without credential rotation, update this setting. |
agent.status.port | Integer | 7212 | The agent status listening port (i.e. the port over which the Watchdog service communicates to the Collector service). |
asyncProcessWaiter.readSleep.enable | Boolean | TRUE | If TRUE, non-blocking IO is enabled. |
asyncProcessWaiter.readSleep.intervalInMills | Integer | 300 | Assigns the interval of checking and read operations in async process waiter (in milliseconds). As this value decreases, CPU usage may increase; as this value increases, throughput may decrease. |
collector.auto.restart.enable | Boolean | TRUE | If TRUE, the Collector will be automatically restarted if it is not working as expected. |
collector.auto.restart.min.interval.in.minutes | Integer | 60 | Assigns the minimum auto restart interval (in minutes). |
collector.convertLocaleEnglish.enable | Boolean | FALSE | If TRUE, locale number formatting will be applied. |
collector.dump.thread.times.before.restart | Integer | 2 | Indicates the number of times a Collector will attempt to dump threads if it is experiencing issues before restarting. 0 indicates no thread dump before restarting. |
collector.dump.thread.interval.in.seconds | Integer | 10 | If the collector.dump.thread.times.before.restart setting is >1, this setting controls the interval (in seconds) in which the Collector will attempt to dump threads. |
collector.dump.thread.files.count | Integer | 5 | The maximum file count of a thread dump. |
collector.heartbeat.hang.stacktrace | Boolean | TRUE | If TRUE, the check thread will print the stack trace for heartbeat task if heartbeat task hangs. |
collector.heartbeat.clear.hang.task | Boolean | TRUE | If TRUE, clears all heartbeat tasks if all heartbeats are hung. |
collector.heartbeat.hang.restart | Boolean | TRUE | If TRUE, the Collector will be restarted when all heartbeat tasks are hung. |
collector.jvm.locale | String | us-en | Allows tweaking of JVM locale. Tweaking is sometimes needed to correct date parsing in some locales. |
collector.scheduler.thread.count | Integer | 4 | The number of threads devoted to scheduling tasks on the Collector. |
collector.size | String | <size> | The size of the Collector. Automatically assigned by the installer. |
company | String | <company> | The company the Collector is associated with. Automatically assigned by the installer. |
connection.manager.size | Integer | 4 | The number of threads to use per-processor for web page tasks |
connection.manager.threshold | Integer | 500 | The threshold for the number of threads to be created for webpage tasks. |
credential | String | <credential> | The credential the Collector uses to authenticate itself to the LogicMonitor platform. This credential is automatically assigned by the installer and undergoes rotation every 24 hours. |
credential.isencrypted | Boolean | TRUE | If TRUE then credential the Collector uses to authenticate is encrypted. |
debug.disable | Boolean | FALSE | If TRUE, remote debug commands will be prevented from operating on the Collector. This may be useful for Collectors installed on systems in secure zones. |
discover.instance.wmi.timeout.seconds | Integer | 30 | Timeout (in seconds) is explicitly used in case of adding additional monitoring. This property is not added by default to the agent.conf. Customers who face the timeout issue can add this property with the desired timeout value. |
dns.nameserver | String | 8.8.8.8 | If dns.provider is set to “dnsjava”, this setting indicates the name server being used. |
dns.provider | String | system | DNS provider type. Alternate value accepted is “dnsjava”. If set to “system”, system DNS settings are used. If set to “dnsjava”, the value provided for dns.nameserver is used. |
feed.version.check.intervalInSec | Integer | 5 | Interval (in seconds) that feed version is checked for updates. 5 is the minimum value that can be assigned. |
groovy.expect.timeout.in.second | Integer | 60 | The connection timeout period (in seconds) for the Groovy Expect library. |
hotthreaddetector.enable | Boolean | FALSE | If TRUE, hot thread and memory usage detection is enabled. |
hotthreaddetector.cpuDetectionsOnExit | Integer | 0 | Indicates the consecutive number of times CPU usage needs to be exceeded (as defined by hotthreaddetector.cpuThreshold) in order to trigger Collector restart. 0 indicates no Collector restart. |
hotthreaddetector.cpuThreshold | Integer | 5 | The CPU usage threshold (as a percentage). If usage exceeds this setting’s value, the thread is identified as a ‘hot’ thread. |
hotthreaddetector.memDetectionsOnExit | Integer | 0 | Indicates the consecutive number of times JVM old gen memory usage needs to be exceeded (as defined by hotthreaddetector.cpuThreshold) in order to trigger Collector restart. 0 indicates no Collector restart. |
hotthreaddetector.memThreshold | Integer | 95 | The JVM old gen memory usage threshold (as a percentage). If usage exceeds this setting’s value, the Collector reports a collection status of BUSY. |
hotthreaddetector.interval | Integer | 30 | The interval (in seconds) between checking for hot threads. |
httpd.port | Integer | 7214 | The HTTPd listening port (i.e. the port over which custom JobMonitors communicate to the Collector service). |
id | Integer | <id> | The Collector’s ID. Automatically assigned by the installer. |
installer.version | Integer | 0 | Installer version. Cannot be modified. |
netscan.probe.queue.capacity | Integer | 5000 | The capacity of the probing task queue. |
netscan.script.timeout.inSeconds | Integer | 300 | The script timeout period (in seconds) for any scripted NetScan. The minimum value that can be assigned to this setting is 60. |
script.notfound.file.redownload.interval | Integer | 10 | The interval (in minutes) at which uploaded scripts are redownloaded if not found. |
script.check.modification.interval.in.minute | Integer | 5 | The interval (in minutes) at which the Collector checks for modified scripts on the LM platform. |
server | String | <server> | The portal the Collector is associated with (e.g. <x>.logicmonitor.com). Automatically assigned by the installer. |
service.connect_timeout | Integer | 5 | The timeout period (in seconds) for connecting to the platform server. |
service.read_timeout | Integer | 30 | The timeout period (in seconds) for sending/reading feeds to/from the platform server. |
service.verify_cert_by_host_header | Boolean | FALSE | If TRUE, verify certificate using host in header instead of host in URL. |
service.trustall | Boolean | TRUE | If TRUE, the Collector will not verify the certificate when connecting to the platform. |
shutdown.checkingPort | Integer | 0 | Indicates the port, if any, that must be closed before the watchdog attempts to restart the Collector. This is helpful if antivirus software is holding Collector ports (SNMP trap, syslog, and so on) open after the Collector has closed them, causing the watchdog to fail to restart the Collector. |
ssh.preferredauthentications | String | publickey,keyboard-interactive,password | Indicates the preferred methods for SSH authentication. Authentication methods are selected in order; publickey is attempted first, if that fails keyboard-interactive is attempted next, and so on. |
startup.delay | Integer | 0 | Collector initialization delay in seconds. |
startup.timeout | Integer | 180 | The timeout period (in seconds) for Collector startup. |
upgrader.delay.exit | Integer | 0 | The amount of time to delay on exit (in seconds) after upgrade. |
upgrade.download.timeout | Integer | 30 | Upgrade download timeout (in seconds). |
upgrader.wait | Integer | 10 | Upgrade wait (in seconds). |
Data Collection Method Settings
Data collection settings are organized by the following data collection methods:
Global Data Collection Settings
Name | Type | Default | Details |
collecting.history.maxItem | Integer | 3 | The maximum number of collection tasks to keep in-memory history. This information is visible with !tlist and !detail debug commands. |
collector.data.collection.retry.count.max | Integer | 1 | The number of times to retry a WMI, script, or batchscript task if not executed due to sbproxy not being ready or cache is invalid. |
collector.data.collection.retry.interval.in.seconds.min | Integer | 60 | Minimum interval delay (in seconds) for retrying a collection task. |
Collector.data.collection.retry.interval.in.seconds.max | Integer | 600 | Maximum interval delay (in seconds) for retrying a collection task. |
collector.defines | String | ping,script,snmp,webpage,jdbc,perfmon,wmi,netapp,jmx,datapump,memcached,dns,esx,xen,udp,tcp,mongo,cim,awscloudwatch,awsdynamodb,awsbilling,awss3,awssqs,batchscript | Defines the collection methods that are supported by the Collector. |
poll.now.diagnose.command.timeout.in.seconds | Integer | 50 | The timeout period (in seconds) for Poll now Diagnose command. |
poll.now.queue.size | Integer | 50 | The queue size of poll now to process requests simultaneously. |
poll.now.test.script.timeout | Integer | 50 | The timeout period (in seconds) for test script. |
poll.now.threadpool | Integer | 2 | The poll now thread pool size. |
ratelimit.enable | Boolean | FALSE | If TRUE, requests sent to a host that is up (e.g. via ping), but not responding to a protocol request (e.g. SNMP or WMI), will have rate limiting applied (using other ratelimit.<x>.<x> settings) to limit the number of requests on the failing protocol. This can help ensure that the host doesn’t tie up too many collection threads, impacting data collection on other hosts. |
ratelimit.detect.period | Integer | 1 | The interval (in minutes) in which protocol detection requests will be sent to the host. This setting is active when ratelimit.enable is set to TRUE. |
ratelimit.deactive.time | Integer | 10 | The amount of time (in minutes) in which the host will be marked as inactive if it repeatedly fails to respond to the protocol request. This setting is active when ratelimit.enable is set to TRUE. |
script.stopThread.useThreadStop | Boolean | FALSE | If TRUE, the JAVA thread.stop method will be used to force stop the script. This method is deprecated and may cause issues as a result of an inconsistent state. If FALSE, thread.interrupt is called, which may not stop some threads. |
AWS Data Collection Settings
Name | Type | Default | Details |
collector.aws.timeoutSeconds | Integer | 5 | AWS timeout (in seconds). |
BatchScript Data Collection Settings
Name | Type | Default | Details |
collector.batchscript.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.batchscript.threadpool | Integer | 20 | Batchscript threadpool size. |
collector.batchscript.timeout | Integer | 120 | The timeout period (in seconds) for handling a batchscript data collection task. |
collector.batchscript.improve.enable | Boolean | TRUE | If TRUE, the Batchscript data collection method will be improved after refactoring it. |
collector.batchscript.max.expiration.in.seconds | Integer | 3600 | Collector Batchscript max timeout (in seconds). |
CIM Data Collection Settings
Name | Type | Default | Details |
collector.cim.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines or eventcollector.defines setting). |
collector.cim.threadpool | Integer | 20 | The thread count in the pool. |
collector.cim.timeout | Integer | 30 | The timeout period (in seconds) for handling a CIM data collection task. |
cim.ssl.protocol | String | SSL | SSL protocol for CIM data collection method. |
groovy.script.runner | String | agent | Based on the value set in this property, the embedded groovy script in LogicModules use either the Standalone Scripting Engine (SSE) process, or a separate agent collector process to collect data. Note: We have temporarily disabled “sse”. Starting with EA Collector 31.200, for all new Collector installations for Windows and Linux (bootstrap and full-package) the default configuration value has been set to “agent”. |
Data Pump Data Collection Settings
Name | Type | Default | Details |
collector.datapump.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.datapump.threadpool | Integer | 1 | The thread count in the pool. |
collector.datapump.timeout | Integer | 5 | The timeout period (in seconds) for handling a Data Pump data collection task. |
DNS Data Collection Settings
Name | Type | Default | Details |
collector.dns.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.dns.threadpool | Integer | 1 | The thread count in the pool. |
collector.dns.timeout | Integer | 1 | The timeout period (in seconds) for handling a DNS data collection task. |
ESX Data Collection Settings
Name | Type | Default | Details |
collector.esx.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.esx.threadpool | Integer | 50 | The thread count in the pool. |
collector.esx.timeout | Integer | 30 | The timeout period (in seconds) for handling an ESX data collection task. |
collector.esx.connect.timeout.in.seconds | Integer | 10 | The connect timeout period (in seconds) for ESX data collection. |
collector.esx.read.timeout.in.seconds | Integer | 30 | The read timeout period (in seconds) for ESX data collection. |
collector.esx.report.connectFailure.times | Integer | 3 | Reports NaN when connection failure occurs for the number of times indicated here. |
collector.esx.customizedCommunicationInstance | Boolean | TRUE | If TRUE, the cipher algorithms indicated by collector.esx.disabled.cipherlist will be filtered out. |
collector.esx.disabled.cipherlist | String | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256 | This setting is only considered when collector.esx.customizedCommunicationInstance is TRUE. |
See AutoProperties Settings for an additional setting that relates to ESX data collection. |
JDBC Data Collection Settings
Name | Type | Default | Details |
collector.jdbc.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.jdbc.threadpool | Integer | 50 | The thread count in the pool. |
collector.jdbc.timeout | Integer | 10 | The timeout period (in seconds) for handling a JDBC data collection task. |
mysql.jdbc.driver | String | org.mariadb.jdbc.Driver | Sets the MySQL JDBC driver. Ensure that the related jar is added in wrapper.conf before changing this setting. |
startup.jdbc.delay | Integer | 0 | Startup delay (in seconds) for JDBC. |
custom.jdbc.drivers | String | Null | Displays a list of comma separated custom JDBC drivers that are loaded by collector. |
forced.register.jdbc.drivers.enable | Boolean | False | Enables JDBC drivers forcefully. |
forced.register.jdbc.drivers.list | String | Empty String | Displays a list of comma separated JDBC drivers that are forcefully loaded by collector. |
See AutoProperties Settings for additional settings that relate to JDBC data collection. |
JMX Data Collection Settings
Name | Type | Default | Details |
collector.jmx.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.jmx.threadpool | Integer | 200 | The thread counts in the pool. |
collector.jmx.timeout | Integer | 5 | The timeout period (in seconds) for handling a JMX data collection task. |
collector.jmx.batch.enable | Boolean | TRUE | If TRUE, data collected via JMX is batched. |
collector.jmx.onebyone.in.batch.enable | Boolean | TRUE | If TRUE, data attributes are collected via JMX one by one. |
collector.jmx.cache.connection.state.enable | Boolean | TRUE | If TRUE, the JMX connection state is cached. |
collector.jmx.cache.connection | Boolean | TRUE | If TRUE, JMX cache connection is enabled. |
collector.jmx.cache.connection.max | Integer | 100 | The maximum connections per URL with username and password. If the value is < 1, the connection count is not limited. |
collector.jmx.cache.connection.url.max | Integer | 10000 | The maximum cached JMX connection URL (username + password). |
collector.jmx.cache.connection.wait.timeout.in.second | Integer | 5 | The timeout period (in seconds) to wait for a free cache JMX connection. |
collector.jmx.connection.check.period.in.millisecond | Integer | 0 | Check JMX connection period (in milliseconds). If value is 0, no threads will be created to check JMX connection. |
collector.jmx.read.timeout.in.seconds | Integer | 30 | The JMX read timeout period (in seconds) for RMI and JMXMP (remote JMX is not supported by this setting). |
collector.jmx.retry.interval.min.in.second | Integer | 5 | Minimum interval (in seconds) before retrying to establish connection. |
collector.jmx.retry.interval.max.in.second | Integer | 120 | Maximum interval (in seconds) before retrying to establish connection. |
Memcached Data Collection Settings
Name | Type | Default | Details |
collector.memcached.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.memcached.threadpool | Integer | 1 | The thread count in the pool. |
collector.memcached.timeout | Integer | 30 | The timeout period (in seconds) for handling a Memcached data collection task. |
collector.script.cache.isPersistence | Boolean | true | Allows you to choose between ChronicleMap and inMemory cache.
|
Mongo Data Collection Settings
Name | Type | Default | Details |
collector.mongo.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.mongo.threadpool | Integer | 1 | The thread count in the pool. |
collector.mongo.timeout | Integer | 30 | The timeout period (in seconds) for handling a MongoDB data collection task. |
NetApp Data Collection Settings
Name | Type | Default | Details |
collector.netapp.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.netapp.threadpool | Integer | 5 | The thread count in the pool. |
collector.netapp.timeout | Integer | 15 | The timeout period (in seconds) for handling a NetApp data collection task. |
netapp.cacheExpiry | Integer | 30 | The amount of time (in seconds) NetApp perf-object-get-instances are cached. If 0, no caching takes place. |
netapp.connection.concurrency | Integer | 10 | The number of concurrent NetApp connections allowed for a single host. A value of 0 = no limitations. |
netapp.connection.threadPoolSize | Integer | 0 | Total number of threads to use for NetApp connections. If value is set to 0, this setting uses the value in place for collector.netapp.threadpool. |
Perfmon Data Collection Settings
Name | Type | Default | Details |
collector.perfmon.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.perfmon.threadpool | Integer | 5 | The thread count in the pool. |
collector.perfmon.timeout | Integer | 120 | The timeout period (in seconds) for handling a Perfmon data collection task. |
singlethreadpdh | Boolean | FALSE | If TRUE, only single-thread access is allowed for PDH transport technology. |
See Active Discovery Settings and SBProxy Settings for additional settings that relate to Perfmon data collection. |
Ping Data Collection Settings
Name | Type | Default | Details |
collector.ping.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.ping.threadpool | Integer | 5 | The thread count in the pool. |
collector.ping.timeout | Integer | 50 | The timeout period (in seconds) for handling a ping data collection task. |
collector.ping.asynchronous | Boolean | TRUE | If TRUE, the ping task is asynchronous, using the Collector’s FSMPingTask. If FALSE, the ping task is not asynchronous, using the Collector’s PingPoolTask. |
collector.ping.request.timeout.delta | Integer | 2 | The real timeout delta (in seconds) between the collector.ping.timeout and real request timeout. Used to report timeout before FSM timeout. |
pingpool.usejava | Boolean | FALSE | If TRUE, will use java ping. A proxy ping is used by default, but if issues are encountered with sbproxy, java ping can be used instead. |
See SBProxy Settings for an additional setting that relates to ping data collection. |
Script Data Collection Settings
Name | Type | Default | Details |
collector.script.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.script.threadpool | Integer | Varies based on Collector size. See Collector Capacity. | The maximum thread count to run script tasks. |
collector.script.timeout | Integer | 120 | The timeout period (in seconds) for handling any script data collection task. |
collector.script.asynchronous | Boolean | FALSE | If TRUE, the PowerShell script will run in SPSE. |
See Active Discovery Settings for an additional setting that relates to script data collection. |
SDK Script Data Collection Settings
Name | Type | Default | Details |
collector.sdkscript.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.sdkscript.threadpool | Integer | 10 | The thread count in the pool. |
collector.sdkscript.timeout | Integer | 120 | The timeout period (in seconds) for handling an SDK Script data collection task. |
sdkscript.extradependence.<n> | String | See details | Extra JAR dependencies for the SDKScript data collection method. By default, 3 JAR dependencies are defined and loaded into SDK scripts. JARs should be located in $AGENTROOT/lib. sdkscript.extradependence.1=logicmonitor-common.jar sdkscript.extradependence.2=logicmonitor-util.jar sdkscript.extradependence.3=sse.jar |
SNMP Data Collection Settings
Name | Type | Default | Details |
collector.snmp.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.snmp.threadpool | Integer | 50 | The thread count in the pool. |
collector.snmp.timeout | Integer | 5 | The timeout period (in seconds) for handling an SNMP data collection task. |
collector.snmp.asynchronous | Boolean | TRUE | If TRUE, SNMP data collection will run as an FSM SNMP task. |
snmp.get.batch.enable | Boolean | TRUE | SNMP data is collected using either batch or oneByOne mode.
snmp.get.batch.enable=true ) results in incomplete data, zero values (that is, raw data = 0), or timeouts, switch the setting to false to use oneByOne mode instead. To apply this configuration change, restart the Collector.This setting affects all SNMP polling performed by the Collector. After making this change, monitor the Collector to ensure it does not negatively impact other monitored devices. |
snmp.get.batch.autoDegrade.enable | Boolean | TRUE | If TRUE, failures in SNMP get OID requests are automatically detected and the get method is downgraded to individual OID requests. This setting is only considered if snmp.get.batch.enable is TRUE. |
snmp.extensibility.enable | Boolean | TRUE | If TRUE, SNMP4J extensibility is enabled, providing parsing support for SNMP integers with lengths > 4 bytes. |
snmp.ignore.lexicographic.order | Boolean | FALSE | If TRUE, SNMPwalk can return OIDs that are out of order, potentially causing an indefinite loop. |
snmp.pdu.timeout | Integer | 5 | SNMP PDU request timeout period (in seconds). As a general rule, this value should not be increased as too large of a timeout period may cause the SNMP retry framework to stop working correctly. Only increase this value if the remote device requires more time to respond. |
snmp.perHost.perSession.enable | Boolean | TRUE | If TRUE, an SNMP session is created for each SNMP v3 host. Enablement may lead to many SNMP threads depending upon the number of v3 hosts, CPU, and load. |
snmp.shareThreads.processThread.count | Integer | 10 | The maximum number of threads provisioned for processing/receiving responses over SNMP when sharing (via snmp.shareThreads.impl.v3.enable) is enabled. |
snmp.shareThreads.sendThread.count | Integer | 10 | The maximum number of threads provisioned for sending responses over SNMP when sharing (via snmp.shareThreads.impl.v3.enable) is enabled. |
snmp.shareThreads.impl.v3.enable | Boolean | TRUE | If TRUE, internal threads for SNMPv3 implementations are shared. A shared group of threads and queue is used to send out packets rather than scheduling of periodic tasks. |
snmp.shareThreads.impl.initialCheckDelay.minutes | Integer | 15 | (Applicable to SNMP v2c and v3) The initial delay (in minutes) before triggering a task to check for a blocked port. |
snmp.shareThreads.impl.checkInterval.minutes | Integer | 5 | (Applicable to SNMP v2c and v3) The interval (in minutes) in which a task checks for a blocked port. |
snmp.shareThreads.impl.switchport.enable | Boolean | TRUE | (Applicable to SNMP v2c and v3) TRUE – Discovers blocked port and triggers auto-switching to another port. FALSE – Only discovers blocked port but auto switch is not performed. |
snmp.timerThread.count | Integer | 4 | The number of timer threads when sharing threads. |
snmp.udp.ratelimit | Integer | 2000 | The rate limit for request (per second) that one SNMP session will handle. |
snmp.walk.batch.enable | Boolean | TRUE | If TRUE, SNMP GETBULK is used to implement SMNPwalk. If FALSE, GETNEXT is used. |
snmp.walk.batch.autoDegrade.enable | Boolean | TRUE | If TRUE, the failure of SNMP GETBULK is auto-detected and GETNEXT is used to implement SMNPwalk. |
See Active Discovery Settings and AutoProperties Settings for additional settings that relate to SNMP data collection. |
TCP Data Collection Settings
Name | Type | Default | Details |
collector.tcp.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.tcp.threadpool | Integer | 5 | The thread count in the pool. |
collector.tcp.timeout | Integer | 60 | The timeout period (in seconds) for handling a TCP data collection task. |
UDP Data Collection Settings
Name | Type | Default | Details |
collector.udp.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.udp.threadpool | Integer | 5 | The thread count in the pool. |
collector.udp.timeout | Integer | 60 | The timeout period (in seconds) for handling a UDP data collection task. |
Webpage Data Collection Settings
Property | Type | Default | Description |
collector.webpage.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.webpage.threadpool | Integer | 10 | The thread count in the pool. |
collector.webpage.timeout | Integer | 30 | The timeout period (in seconds) for handling a web page data collection task. |
collector.webpage.asynchronous | Boolean | TRUE | If TRUE, this collection method will run as an asynchronous process. |
httpapi.tls.version | String | TLSv1.3 | TLS version of HTTP connection for groovy. The supported TLS versions are TLSv1.2 and TLSv1.3. EA Collector 35.400 onwards, the default version is TLSv1.3. |
http.async.connection.request.timeout | Integer | 5 | The timeout period (in seconds) for requesting a connection from the connection manager. |
http.async.default.connectTimeout | Integer | 5 | The timeout period (in seconds) for establishing a connection. |
http.async.default.readTimeout | Integer | 5 | The timeout period (in seconds) for inactivity between two consecutive data packets. |
webpage.circular.redirect | Boolean | FALSE | Allows circular redirect following by the WEBPAGE Collector. |
webpage.normalize.uri | Boolean | TRUE | Enables you to normalise the URL of a redirected website. Collector may stop collecting data and get timed out from a website/web server when it is redirected to another website that has an extra forward slash ( / ) at the end of its URL. If TRUE, this property drops the extra forward slash ( / ) at the end of the redirected URL. |
webpage.support.rc4.ciphers | Boolean | TRUE | If TRUE, the RC4 cipher algorithm is supported for HTTP clients. |
WMI Data Collection Settings
Name | Type | Default | Details |
collector.wmi.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.wmi.threadpool | Integer | 50 | The thread count in the pool.(depending on collector size) |
collector.wmi.timeout | Integer | 120 | The timeout period (in seconds) for handling a WMI data collection task. |
collector.wmi.asynchronous | Boolean | TRUE | If TRUE, this collection method will run as an asynchronous process. |
collector.wmi.property.trim.enable | Boolean | FALSE | If TRUE, white space is trimmed from the WMI query result. |
collector.wmi.request.timeout.delta | Integer | 3 | The real timeout delta (in seconds) between the collector.wmi.timeout and real request timeout. Used to report timeout before FSM timeout. |
discover.instance.wmi.timeout.seconds | Integer | 30 | WMI query timeout length that is used when finding Processes/Services for monitoring from the Additional Monitoring dialog in the portal |
See Active Discovery Settings, AutoProperties Settings, and SBProxy Settings for additional settings that relate to WMI data collection. |
Xen Data Collection Settings
Name | Type | Default | Details |
collector.xen.enable | Boolean | TRUE | If TRUE, this collection method is enabled on the Collector (assuming it is also specified in the collector.defines setting). |
collector.xen.connect.timeout.in.seconds | Integer | 10 | Timeout (in seconds) for XenServer connection. |
collector.xen.read.timeout.in.seconds | Integer | 30 | Timeout (in seconds) for XenServer read response. |
collector.xen.threadpool | Integer | 20 | The thread count in the pool. |
collector.xen.timeout | Integer | 600 | The timeout period (in seconds) for handling a XenServer data collection task. |
xen.pool.concurrency | Integer | 10 | The number of concurrent connections to the XenServer pool master. |
xen.pool.cachesize | Integer | 10000 | The maximum number of entries allowed to be stored in the metrics cache for a XenServer pool. |
See AutoProperties Settings for additional settings that relate to XenServer data collection. |
Event Collection Method Settings
Event collection settings are organized by the following collection methods:
Global Event Collection Settings
Name | Type | Default | Details |
eventcollector.defines | String | echo,wineventlog,snmptrap,syslog,logfile,scriptevent,httpevent | Defines the event collection methods that are supported by the Collector. |
HTTP Event Collection Settings
Name | Type | Default | Details |
eventcollector.httpevent.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.httpevent.threadpool | Integer | 10 | The thread count in the pool. |
Log File Event Collection Settings
Name | Type | Default | Details |
eventcollector.logfile.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.logfile.threadpool | Integer | 10 | The thread count in the pool. |
eventcollector.logfile.autoDetectEncodingBytesThreshold | Integer | 4096 | The maximum length of bytes when detecting encoding. |
eventcollector.logfile.autoDetectEncodingConfidenceThreshold | Integer | 90 | The threshold for confidence that file encoding was successfully auto detected. When the detection confidence threshold percentage is ≥ value, auto detection is treated as a success. The range is 0-100. |
Script Event Collection Settings
Name | Type | Default | Details |
eventcollector.scriptevent.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.scriptevent.threadpool | Integer | 10 | The thread count in the pool. |
eventcollector.scriptevent.perCollector.perMin.threshold | Integer | 1000 | The maximum count of script events the Collector can generate per minute. |
eventcollector.scriptevent.perHostThreshold | Integer | 50 | The maximum events threshold per host on this Collector |
eventcollector.scriptevent.perHost.perMin.threshold | Integer | 500 | The maximum events threshold per host on this Collector, per minute. |
SNMP Trap Event Collection Settings
Name | Type | Default | Details |
eventcollector.snmptrap.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.snmptrap.threadpool | Integer | 10 | The thread count in the pool. |
eventcollector.snmptrap.address | String | udp:0.0.0.0/162 | The listening port/IP address for SNMP traps. |
eventcollector.snmptrap.community | String | <EMPTY> | The community string (applicable to SNMPv1 and SNMPv2c only) |
eventcollector.snmptrap.security | String | public | Username credential (applicable to SNMPv3 only). |
eventcollector.snmptrap.auth | String | sha | The authentication algorithm (applicable to SNMPv3 only). “md5” is also supported here. |
eventcollector.snmptrap.auth.token | String | PleaseModifyThis | The secret token for authentication (similar to password). Applicable to SNMPv3 only. |
eventcollector.snmptrap.priv | String | aes128 | The privacy algorithm (applicable to SNMPv3 only). In addition to the default aes128 algorithm, the following values are supported: des | aes | 3des | aes128 | aes192 | aes256 | aes192c | aes256c. |
eventcollector.snmptrap.priv.token | String | PleaseModifyThis | The secret token for privacy (similar to password). Applicable to SNMPv3 only. |
Syslog Event Collection Settings
Name | Type | Default | Details |
eventcollector.syslog.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.syslog.max.message.lenth | Integer | 1024 | The maximum message size (in bytes) that syslog will process. |
eventcollector.syslog.multi.thread.enable | Boolean | TRUE | If TRUE, enables multithreaded syslog server. |
eventcollector.syslog.threadpool | Integer | 10 | The thread count in the pool. |
eventcollector.syslog.port | Integer | 514 | The port used to receive Syslog messages. |
eventcollector.syslog.queue | Integer | 10000 | The queue capacity of Syslog executor. |
eventcollector.syslog.supportDateFormat.<n> | String | See details | The Syslog event date/time formatting strings. By default, the following formats <n> are supported:
1=MMM dd HH:mm:ss 2=yyyy-MM-dd’T’HH:mm:ss.SSS 3=MMM dd HH:mm:ss.SSS z 4=’date=’yyyy-MM-dd’,time=’HH:mm:ss 5=MMM dd yyyy HH:mm:ss 6=yyyy-MM-dd’T’HH:mm:ss.SSSXXX 7=yyyy-MM-dd’T’HH:mm:ss.SSSSSS’Z’ |
eventcollector.syslog.receive.buffer.size | Integer | 1048576 | The buffer size (in bytes) of Syslog event Collector UDP receive. |
Windows Event Log Collection Settings
Name | Type | Default | Details |
eventcollector.wineventlog.enable | Boolean | TRUE | If TRUE, this event collection method is enabled on the Collector (assuming it is also specified in the eventcollector.defines setting). |
eventcollector.wineventlog.threadpool | Integer | 10 | The thread count in the pool. |
eventcollector.wineventlog.timeout | Integer | 120 | The timeout period (in seconds) for handling a Windows event log event collection task. |
eventcollector.wineventlog.criticalmappings | String | Critical,Critique,Kritisch,Critico | If critical events are being reported to the event log in a language other than English, add the localized string to this setting for mapping to critical severity. |
eventcollector.wineventlog.enable.single.mode.timeout.count | Integer | 5 | When the timeout count for Windows event log collection surpasses the value assigned to this setting, single mode is enabled. This setting is only considered if event collector.wineventlog.timeout.enable.single.mode is TRUE. |
eventcollector.wineventlog.timeout.enable.single.mode | Boolean | TRUE | If TRUE, single mode is enabled when the timeout count surpasses the value assigned to eventcollector.wineventlog.enable.single.mode.timeout.count. |
eventcollector.wineventlog.interval | Integer | 120 | Interval to collect winevent log. |
eventcollector.wineventlog.max.eventitem | Integer | 500 | The maximum number of events fetched per request. If the value of this setting is 0, it will fetch all items per request. |
eventcollector.wineventlog.query.delay.time.seconds | Integer | 30 | The time (in seconds) that a query will be delayed. |
eventcollector.wineventlog.query.time.range.seconds* | Integer | 120 | The Windows event log query time range (in seconds) for each query. |
Active Discovery Settings
Name | Type | Default | Details |
ad.snmp.retry4filter.count | Integer | 3 | The number of times the SNMP Active Discovery task will retry filtering walked result. |
ad.snmp.client.retry.count | Integer | 1 | The number of times the SNMP Active Discovery task will retry. |
ad.snmp.walk.timeout | Integer | 300 | The timeout period (in seconds) for the SNMPwalk in an SNMP Active Discovery task. |
ad.snmp.retry4filter.count | Integer | 3 | The number of times the SNMP Active Discovery task will retry filtering walked result. |
discover.default.timeoutInSec | Integer | 3600 | The timeout period (in seconds) for Active Discovery tasks. |
discover.delayscheduler.enable | Boolean | TRUE | If TRUE, Active Discovery tasks are executed with the delay defined in the discover.delayscheduler.periodInSec setting. |
discover.delayscheduler.periodInSec | Integer | 60 | Active Discovery task schedule delay (in seconds). |
discover.history.maxItem | Integer | 32 | The maximum count for the number of Active Discovery history items stored in memory. |
discover.jdbc.timeoutInSec | Integer | 120 | The timeout (in seconds) for JDBC tasks in Active Discovery. |
discover.perfmon.timeoutInSec | Integer | 120 | The timeout (in seconds) for Perfmon tasks in Active Discovery. |
discover.queue.capacity | Integer | 5000 * 50 | Queue capacity for Active Discovery task. |
discover.workers | Integer | Varies based on Collector size. See Collector Capacity. | The number of worker resources allocated for Active Discovery iterations. |
discover.script.timeoutInSec | Integer | 300 | The timeout (in seconds) for script tasks in Active Discovery. |
discover.wmi.timeoutInSec | Integer | 120 | The timeout (in seconds) for WMI tasks in Active Discovery. |
See PowerShell Settings for an additional setting that relates to Active Discovery. |
AutoProperties Settings
Name | Type | Default | Details |
autoprops.detectors.order | String | wmiDetector, snmpDetector | The order in which AutoProperties are detected. |
autoprops.timeout | Integer | 60 | The timeout period (in seconds) for AutoProperties task. |
autoprops.port.timeout | Integer | 60 | The timeout period (in seconds) for port scanning during a NetScan. |
autoprops.workers | Integer | Varies based on Collector size. See Collector Capacity. | The thread pool size for AutoProperties. |
autoprops.history.maxItem | Integer | 32 | The maximum count for the number of AutoProperties history items stored in memory. |
autoprops.esx.detectedUrlFormats | String | https://%s/sdk/vimServiceVersions.xml | The URL used to detect VMware ESX server. Use “%s” as a variable for the resource name. Multiple values are supported via comma-separated list. |
autoprops.jdbc.connectTimeout | Integer | 10 | The timeout period (in seconds) for JDBC AutoProperties connection. |
autoprops.jdbc.queryTimeout | Integer | 10 | The timeout period (in seconds) for JDBC AutoProperties query. |
autoprops.queue.capacity | Integer | 5000 | The queue capacity for AutoProperties tasks. |
autoprops.wmi.retry.interval.in.second | Integer | 5 | The retry interval (in seconds) for WMI AutoProperties task. |
autoprops.wmi.retry.max.times | Integer | 20 | The maximum number of retry times for WMI AutoProperties task. |
autoprops.wmi.timeout | Integer | 60 | The timeout period (in seconds) for WMI AutoProperties task. |
autoprops.xen.apicheck | Boolean | TRUE | If TRUE, the XenServer will be detected via API method. |
autoprops.xen.apicheck.workers | Integer | 4 | The thread count for detecting XenServer via API. |
autoprops.xen.apicheck.timeout | Integer | 10 | The timeout period (in seconds) for detecting XenServer via API. |
property.detecting.task.timeout | Integer | 300 | The timeout period (in seconds) for detecting properties. |
ConfigSource Settings
Name | Type | Default | Details |
configcollector.defines | String | script | Defines ConfigSource monitoring method; only “script” is supported. |
configcollector.postprocess.threadpool | Integer | 10 | The thread pool size for the configuration collection to post process the configuration. |
configcollector.postprocess.timeout.in.seconds | Integer | 30 | The timeout period (in seconds) for configuration post processing. |
configcollector.script.enable | Boolean | TRUE | If TRUE, enables script ConfigSource monitoring. |
configcollector.script.threadpool | Integer | 30 | The thread pool size for configuration collection script tasks. |
configcollector.script.timeout | Integer | 300 | The timeout period (in seconds) for configuration collection script tasks. |
config.update.timeout.in.millisecond | Integer | 60_000 or 1 min | The timeout period (in milliseconds) for reading/writing configuration files. |
configsource.configuration.max | Integer | 3145728 | The maximum length (in bytes) of configuration reported. |
Credential Vault Settings
The following table lists the configuration properties to set in the Collector agent.conf.
Property | Type | Default | Description |
vault.bypass | Boolean | TRUE | If the value for the property is true, the vault API calls won’t happen. Note: You must set the property to false, to enable the vault API calls. |
vault.credentials.cache.expirationtime | Integer | 60 | The property specifies the value in minutes for the expiry of the credential in the vault cache on the collector. After this time, the credentials in the vault cache will expire. |
vault.credentials.refresh.delay | Integer | 15 | Controls the Credential Vault integration cache expiration refresh delay in seconds. |
vault.url.cache.enabled | Boolean | FALSE | The property specifies whether the URL cache is enabled or not. By default the property is set as false; however, if the property is set to true the collector caches the URL and secret value. If the URL for lmvault property is found in the URL cache, the respective secret value is returned, else the API call is made to fetch the secret from the vault. Setting this property to ‘true’ should resolve API rate-limiting issues. |
vault.url.cache.max.size | Integer | 1000 | The property defines the number of URLs that will be stored in the cache. |
CSProxy Settings
Name | Type | Default | Details |
csproxy.enable | Boolean | TRUE | If TRUE, the CSProxy is enabled. |
csproxy.dns.host | String | appproxy.logicmonitor.com | The DNS host for the CSProxy. |
csproxy.active.time | Integer | 1 | The time (in minutes) after which agent will begin to detect the platform. |
csproxy.santaba.detect.period | Integer | 1 | Interval (in minutes) in which platform is detected. |
csproxy.switch.time | Integer | 12 | The delay (in seconds) before the Collector will switch to CSProxy if Santaba is detected as unavailable. This will avoid unnecessary switching in cases of very brief network interruption. |
csproxy.debug.host | String | 127.0.0.1 | The host used in csproxy checking. |
csproxy.debug.mode | Boolean | TRUE | If TRUE, csproxy debug mode is enabled. |
LM Logs
Name | Type | Default | Details |
lmlogs.syslog.enabled | Boolean | FALSE | If TRUE, LM Logs feature is enabled in Collector. When enabled, Syslog EventSources will stop working. |
lmlogs.syslog.hostname.format | String | IP | Determines how hostname received in the syslog message will be resolved. Other acceptable values include “FQDN”, “HOSTNAME”, and “DO_NOTHING”. (If “DO_NOTHING” is set, the hostname is not resolved and add the received host directly as the resource id. |
lmlogs.syslog.property.name | String | system.hostname | Resource properties which we want to use for device mapping. |
lmlogs.syslog.useTimestampWhenCollectorReceivedLogs | Boolean | FALSE | Set to TRUE in order to avoid the incorrect time parsing that results when syslog events you are sending to LogicMonitor do not include timezone information. |
logsource.syslog.filter.<n>.<filter>.<operation> | String | This is filter used in lmlogs Where: 1) n is number from 1..n. 2) filter is i)severity ii) message iii) facility iv) application 3) operation will be i) equal ii) moreurgentthan iii) notequal iv) contain v) notcontain vi) regexmatch vii) regexnotmatch viii) exists ix) notexists x) greaterthan xi) greaterequal xii) lessthan xiii) lessequal E.g logsource.syslog.filter.1.severity.equal=error Configure agent for syslog Log Ingestion with filter error. Note: Starting with EA Collector 35.200 or later, the logsource.syslog.filter.<n>.<filter>.<operation> filters are not supported. You can add the filters to the LogSource to maintain the same level of filtering. For more information, see Syslog LogSource Configuration. | |
lmlogs.snmptrap.formatMessageAsJson.enabled | Boolean | false | Starting with EA Collector 36.200, you can manage the format of the SNMP trap messages.
|
lmlogs.snmptrap.community.based.auth.enabled | Boolean | true | Starting with EA Collector 36.100, you can manage the community string validation of the SNMP v1 and v2c traps.
|
lmlogs.snmptrap.enabled | Boolean | false | Starting with EA Collector 35.200, you can enable or disable the LM Logs feature for SNMP traps.
|
lmlogs.snmptrap.include.trap.description.enabled | Boolean | true | Starting with EA Collector 37.100, if a description of the translated SNMP trap OID is present in the MIB file, it will be included in the log message. If you do not want the description in the log message, set the value of this property to false . |
For more information about syslog properties, see Configuring Resource Mapping in Sending Syslog Logs.
Logger Settings
Logger settings control Collector logging. They are not related to LM Logs or EventSources.
Name | Type | Default | Details |
logger.level | String | info | The level of logging for Collector activities. Additional acceptable values include trace | debug | warn | error | disable. |
logger.output | String | console | Determines the location to which the logger outputs. |
logger.level.alerter | String | The value assigned to logger.level | The level of logging for Collector activities related to the alerter component. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.autoprops | String | The value assigned to logger.level | The level of logging for Collector activities related to AutoProperties. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.agent | String | The value assigned to logger.level | The level of logging for Collector activities related to the Collector component. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.batchscript | String | The value assigned to logger.level | The level of logging for Collector activities related to BatchScript data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.cim | String | The value assigned to logger.level | The level of logging for Collector activities related to CIM data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.datapump | String | The value assigned to logger.level | The level of logging for Collector activities related to Data Pump data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.dns | String | The value assigned to logger.level | The level of logging for Collector activities related to DNS data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.esx | String | The value assigned to logger.level | The level of logging for Collector activities related to ESX data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.externalwebpage | String | The value assigned to logger.level | The level of logging for Collector activities related to Web page data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.ipmi | String | The value assigned to logger.level | The level of logging for Collector activities related to IPMI data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.jdbc | String | The value assigned to logger.level | The level of logging for Collector activities related to JDBC data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.jmx | String | The value assigned to logger.level | The level of logging for Collector activities related to JMX data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.memcached | String | The value assigned to logger.level | The level of logging for Collector activities related to Memcached data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.mongo | String | The value assigned to logger.level | The level of logging for Collector activities related to Mongo data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.netapp | String | The value assigned to logger.level | The level of logging for Collector activities related to NetApp data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.perfmon | String | The value assigned to logger.level | The level of logging for Collector activities related to Perfmon data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.ping | String | The value assigned to logger.level | The level of logging for Collector activities related to ping data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.script | String | The value assigned to logger.level | The level of logging for Collector activities related to script data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.snmp | String | The value assigned to logger.level | The level of logging for Collector activities related to SNMP data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.s3 | String | The value assigned to logger.level | The level of logging for Collector activities related to Amazon S3 data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.tcp | String | The value assigned to logger.level | The level of logging for Collector activities related to TCP data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.udp | String | The value assigned to logger.level | The level of logging for Collector activities related to UDP data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.webpage | String | The value assigned to logger.level | The level of logging for Collector activities related to web page data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.wmi | String | The value assigned to logger.level | The level of logging for Collector activities related to WMI data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.collector.xen | String | The value assigned to logger.level | The level of logging for Collector activities related to XenServer data collection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.controller | String | The value assigned to logger.level | The level of logging for Collector activities related to the controller component. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.discover | String | The value assigned to logger.level | The level of logging for Collector activities related to Active Discovery. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.httpevent | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via HTTP. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.logfile | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via log files. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.scriptevent | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via script. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.snmptrap | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via SNMP trap. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.syslog | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via Syslog. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.eventcollector.wineventlog | String | The value assigned to logger.level | The level of logging for Collector activities related to event collection via Windows event logs. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.monitor | String | The value assigned to logger.level | The level of logging for Collector activities related to the monitoring component. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.propsdetection | String | The value assigned to logger.level | The level of logging for Collector activities related to property detection. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.reporter | String | The value assigned to logger.level | The level of logging for Collector activities related to reporting. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.sbproxy | String | The value assigned to logger.level | The level of logging for Collector activities related to the SBProxy. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.scanner | String | The value assigned to logger.level | The level of logging for Collector activities related to scanning. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.scriptproperty | String | The value assigned to logger.level | The level of logging for Collector activities related to scriptproperty. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.watchdog | String | The value assigned to logger.level | The level of logging for Collector activities related to the Watchdog service. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
logger.level.webservice | String | The value assigned to logger.level | The level of logging for Collector activities related to webservice. The acceptable values are trace | debug | info | warn | error | disable. If a value is not assigned to this setting, the value assigned to logger.level is used. |
reduce.logger.enable | Boolean | TRUE | If TRUE, the reduce logger task is enabled. |
reduce.logger.aggregate.threshold | Integer | 500 | Maximum number of logs to aggregate. |
reduce.logger.cache.number | Integer | 5 | The reduce cache number. |
reduce.logger.cache.expire.mills | Integer | 600_000/*10MIN*/ | Cache expiration time (in milliseconds). |
reduce.logger.schedule.interval | Integer | 60000 | The interval (in seconds) in which the reduce logger task is scheduled to run. |
Network Traffic Flow (NetFlow) Settings
Name | Type | Default | Details |
netflow.enable | Boolean | true | If true , NetFlow module is enabled on Collector. |
netflow.ports | Integer | 2055 | The UDP listening port for NetFlow protocol data. Supports NetFlow versions 1, 3, 5, 7, 9, and 10. |
netflow.sflow.ports | Integer | 6343 | The UDP listening port for sFlow protocol data. |
netflow.datadir | String | netflow | The path of the HSQL database. |
netflow.datadir.maxSizeInMB | Integer | 10240 | The maximum size (in megabytes) of the NetFlow data directory. |
netflow.log.maxNumPerMinute | Integer | 5 | how frequently the netflow error must get logged, default value is 5 |
netflow.netflow9.templateLife | Integer | 720 | The expiration time (in hours) for NetFlow version 9 and 10 templates. |
netflow.topFlowSamples | Integer | 1000 | The maximum sample number of top flows. Allowed range is from 100-2000. |
netflow.nbar.enabled | Boolean | false | If true , the Collector parses the applicationID and ApplicationType. LogicMonitor Enterprise and Collector version 29.101 or higher are required. |
netflow.ipv6.enabled | Boolean | true | If false , the Collector will ignore flows from IPv6 addresses. |
netflow.log.largeBytesOrPackets | Integer | 1073741824 | Logs flows with packets or bytes larger than the integer specified. |
netflow.use.new.logic | Boolean | true | If true , multi-threaded receiver logic is executed; if false , a single thread receiver. |
netflow.threads | Integer | 1 | If netflow.use.new.logic is true , the number specified here determines the number of NetFlow threads. |
sflow.threads | Integer | 1 | If netflow.use.new.logic is true , the number specified here determines the number of sFlow threads. |
netty.rcv.buff.size | Integer | 65507 | Netflow receiver buffer size (in bytes). |
netflow.sqlLog.enable | Boolean | true | If true , NetFlow HSQL logging is enabled. |
netflow.flowcache.duration | Integer | 20 | The duration (in seconds) of flows that persist in cache. |
netflow.executeCP.timeIntervalInSec | Integer | 1800 | The interval (in seconds) in which the NetFlow HSQL DB check is executed. |
netflow.executeCP.datasize | Integer | 300000000 | NetFlow HSQL DB check size (in bytes). |
netflow.latestFlowRecordCache.maxSize | Integer | 10000 | The maximum number of recent flows to hold in cache. |
netflow.latestFlowRecordCache.recordExpireInterval | Integer | 7200 | The duration (in seconds) of recent flows that persist in cache. |
netflow.flowcache.expiry.seconds | Integer | 120 | The duration (in seconds) of flows that persist in cache before inserting the flow records in the NetFlow HSQL DB. |
netflow.sampling.enabled | Boolean | false | If true , the collector parses the sampler information and performs sampling of the flow data. You must have EA Collector 29.105 or later to use this configuration. |
netflow.inserter.min.thread | Integer | 10 | The minimum thread count available for inserting flow records in the NetFlow HSQL DB. |
netflow.inserter.max.thread | Integer | 20 | The maximum thread count available for inserting flow records in the NetFlow HSQL DB. |
netflow.inserter.queue.capacity | Integer | 5000 | The maximum capacity of the queue for storing flow records before inserting them in the NetFlow HSQL DB. |
netflow.template.inserter.timeIntervalInSec | Integer | 60 | The time interval (in seconds) for inserting NetFlow templates in the NetFlow HSQL DB. |
netflow.db.connection.pool.size | Integer | 40 | The maximum number of database connections that can be simultaneously held in the NetFlow HSQL DB connection pool. |
enable.netflow.parallel.execution | Boolean | true | If true , a multi-threaded packet processing logic is used. If false , a single-threaded packet processor is used. |
PowerShell Settings
Name | Type | Default | Details |
powershell.policy | String | RemoteSigned | PowerShell execution policy. Other possible values include: Restricted | AllSigned | Unrestricted |
powershell.error.action | String | Continue | Defines the action to be taken when a non-terminating error event occurs.
|
powershell.redirect.exception.enable | Boolean | TRUE | If TRUE, PowerShell exceptions are passed as messages to user by rethrowing. |
powershell.trap.exception.enable | Boolean | FALSE | If TRUE, PowerShell exceptions are “trapped” and a value of 0 is returned regardless of what is returned by the script. |
powershell.console.width | Integer | 80 | The console screen buffer width (in columns) for PowerShell |
powershell.spse.enable | Boolean | TRUE | If TRUE, the standalone PowerShell script engine (SPSE) is enabled and all PowerShell scripts will run in the SPSE. |
powershell.spse.executor.reject.sleep.time.in.ms | Integer | 100 | The retry interval (in milliseconds) for submitting requests to SPSE. Only considered if powershell.spse.enable is TRUE. |
powershell.spse.process.count.min | Integer | 3 | The minimum number of PowerShell processes. Only considered if powershell.spse.enable is TRUE. |
powershell.spse.process.count.max | Integer | 10 | The maximum number of PowerShell processes. Only considered if powershell.spse.enable is TRUE. |
powershell.spse.queue.size | Integer | 10 | The queue size for SPSE tasks to be reported. Only considered if powershell.spse.enable is TRUE. |
powershell.spse.ad.timeout.in.sec | Integer | 300 | The timeout period (in seconds) for PowerShell script in Active Discovery context. Only considered if powershell.spse.enable is TRUE. |
Proxy and SSL Settings
Name | Type | Default | Details |
proxy.enable | Boolean | FALSE | If TRUE, the Collector will communicate through an HTTP proxy (rather than connect directly with the LogicMonitor data centers) using the proxy.<x> settings specified. |
proxy.host | String | <EMPTY> | Designates the IP address of the HTTP proxy server. |
proxy.port | Integer | <EMPTY> | Designates the port the HTTP proxy server uses. |
proxy.user | String | <EMPTY> | Designates the username the Collector uses when connecting to the HTTP proxy. |
proxy.pass | String | <EMPTY> | Designates the password the Collector uses when connecting to the HTTP proxy. |
proxy.pass.isencrypted | Boolean | FALSE | Indicates if the proxy password is encrypted or not. Enter a plain text password in the proxy.pass field and click Save and Restart to encrypt the password and set the proxy.pass.isencrypted to “true”. To change the proxy password, you can set proxy.pass.isencrypted to “false”. Note: This setting is available in Collector version 30.104 or later. |
proxy.global | Boolean | FALSE | If TRUE, ESX and XEN traffic from the Collector is additionally pushed through the proxy. If FALSE, the proxy applies to traffic between the Collector and the LogicMonitor platform only. |
ssl.enable | Boolean | TRUE | If TRUE, the connection between the Collector and the LogicMonitor platform will be encrypted via SSL. |
EnforceLogicMonitorSSL | Boolean | TRUE | If TRUE, the Collector requires a valid SSL certificate issued directly from LogicMonitor in order to initiate communication. If one is not available, the Collector will fail to properly start. Setting to FALSE removes this SSL enforcement, lowering the security of the connection between your Collector and LogicMonitor. |
See Remote Session Settings for additional settings that relate to the proxy. |
Remote Session Settings
Name | Type | Default | Details |
remotesession.disable | Boolean | FALSE | If TRUE, Remote Session capabilities are disabled for all devices assigned to the Collector. |
remotesession.proxy.enable | Boolean | TRUE | If TRUE (and assuming the proxy.enable setting is also TRUE), the Collector’s remote sessions will connect to the relay server through the local HTTP proxy configured in Proxy and SSL Settings. If proxy.enable is FALSE, this setting is ignored. |
remotesession.useproxy.forceSSLCheck | Boolean | TRUE | If TRUE, the Collector requires a valid SSL certificate from the relay server. If one is not available, the remote session will fail to initiate. Setting to FALSE removes this SSL enforcement. |
SBProxy Settings
Name | Type | Default | Details |
sbproxy.address | String | 127.0.0.1 | Address of the SBProxy server. Generally, this should not be modified. |
sbproxy.connector.capacity | Integer | Varies based on Collector size. See Collector Capacity. | The maximum number of requests that the Collector can send in parallel to sbwinproxy and sblinuxproxy. |
sbproxy.downtime.seconds | Integer | 300 | The amount of time (in seconds) since the last received response that must pass before the SBProxy is considered down. The value range allowed for this setting is 300-1200. |
sbproxy.echo.failed.count | Integer | 3 | Check sbproxy status failed count. |
sbproxy.linux.threadPoolSize | Integer | 120 | The maximum number of threads initially available for processing SBProxy requests. |
sbproxy.linux.timeout | Integer | 30 | The timeout period (in seconds) for processing a Linux server request. |
sbproxy.logsize | Integer | 64 | Log size for sbproxy.log |
sbproxy.monitor.enable | Boolean | TRUE | If TRUE, the watchdog monitors the SBProxy |
sbproxy.pdhNoAuthentication | Boolean | FALSE | If TRUE, PDH authentication is enabled. |
sbproxy.port | Integer | 7211 | The port used to communicate between Watchdog and Collector services to SBProxy. |
sbproxy.process.timeout.thread.count | Integer | 2 | Timeout thread pool count. |
sbproxy.restartOn102 | Boolean | FALSE | If TRUE and Windows encounters error 102, SBProxy will attempt to restart itself (applicable to Perfmon and WMI). |
sbproxy.starting.duration.seconds* | Integer | 60 | The amount of time (in seconds) it is assumed that SBProxy will take to start up after Collector is up. During this period, NaN will not be reported. |
sbproxy.timeout.queue.size | Integer | 1024 | The size of sbproxy timeout queue. |
sbproxy.windows.pdhQueueCapacity | Integer | 200 | PDH task queue capacity. |
sbproxy.windows.pdhTaskTimeout | Integer | 0 | The timeout period (in seconds) for PDH task processing. If set to 0, no timeout. |
sbproxy.windows.pdhThreadPoolSize | Integer | 50 | The thread pool size for PDH task handling. |
sbproxy.windows.queueCapacity | Integer | 100 | The capacity of Windows sbproxy queue. |
sbproxy.windows.taskCommitTimeout | Integer | 30 | The timeout period for putting a received task into SBProxy’s internal processing queue . |
sbproxy.windows.taskTimeout | Integer | 0 | The timeout period (in seconds) for task processing. If set to 0, no timeout. |
sbproxy.windows.threadPoolSize | Integer | 10 | The thread pool size for tasks other than PDH or WMI. |
sbproxy.windows.wmiQueueCapacity | Integer | 200 | The task queue capacity for tasks WMI. |
sbproxy.windows.wmiTaskTimeout | Integer | 0 | The timeout period (in seconds) for processing tasks other than PDH. If set to 0, no timeout |
sbproxy.windows.wmiThreadPoolSize | Integer | 60 | The thread pool size for WMI task handling. |
sbproxy.wmi.wmi64enable | Boolean | FALSE | If TRUE, 64-bit WMI is enabled. |
ping.pingers.icmp.id.increment.enable | Boolean | FALSE | Enable auto increment of ICMP ID when ping sequence reaches 65535. |
ping.pingers.icmp.per.host.enable | Boolean | FALSE | Enable different ping ICMP ID per host. |
ping.pingers.host.succes.to.fail.inc.icmpid.enable | Boolean | TRUE | Enable increment of ICMP ID when host ping fails. |
ping.pingers.id.range | String | 1000,5000 | Set ICMP identifier range for ping. The format to set the range is comma separated. For example: minimumICMPId, maximumICMPId. Sometimes a ping destination may not respond if the ICMP Id range is too large. In such scenario reduce the ICMP identifier range. |
ping.icmp.host.session.expire.time.in.seconds | Integer | 300 | Set the ICMP ping host session expire time. |
See Watchdog Settings for additional settings that relate to the SBProxy. |
SSE Settings
Name | Type | Default | Details |
sse.log.root | String | <SBAGENTROOT>/logs | The location of the SSE log files. |
sse.collectorgroup.restartpolicy.processedtask.count | Integer | 2000000 | The task count at which the SSE Collector group will restart. |
sse.collectorgroup.spawnpolicy.process.maxcount | Integer | 1 | The maximum count of SSE processes that can be spawned for the Collector group. |
sse.collectorgroup.spawnpolicy.concurrenttask.maxcount | Integer | 400 | The number of tasks that can run concurrently for each Collector group SSE process. |
sse.collectorgroup.init.timeout.inSec | Integer | 40 | Timeout (in seconds) for Collector SSE process initialization. If initialization fails, script tasks will not be sent to SSE. |
sse.collectorgroup.jvm.locale | String | en-us | Allows tweaking of JVM locale. Tweaking is sometimes needed to correct date parsing in some locales. |
sse.collectorgroup.jvm.threadpool.maxsize | Integer | 200 | The maximum thread count for SSE processing for the Collector group. |
sse.collectorgroup.jvm.heap.minInMB | Integer | 32 | The minimum heap size (in megabytes) for Collector group SSE. |
sse.collectorgroup.jvm.heap.maxInMB | Integer | 0 | If the value = 0, the maximum SSE heap size is set dynamically based on the Collector size. If the value is > 0, the value provided is used as the maximum heap size, regardless of Collector size. The sse.collectorgroup.jvm.heap.max.controlByWrapper setting must be set to FALSE for this setting to be considered. |
sse.collectorgroup.jvm.metaspace.maxInMB | Integer | 0 | The maximum metaspace size (in megabytes) for Collector group SSE. |
sse.collectorgroup.jvm.heap.max.controlByWrapper | Boolean | TRUE | If TRUE, the maximum heap size for the Collector is controlled by the Collector’s Xmx configuration. |
sse.collectorgroup.required.totalPhysicalMemory.inMB | Integer | 2048 | The required physical memory (in megabytes) for the Collector host. If the actual total physical memory is less than this value, scripts will not be scheduled to the SSE Collector group. |
sse.collectorgroup.processSpawnCountPerMinute.limitation | Integer | 1 | The count limitation (per minute) that the spawning SSE process should not exceed. |
sse.collectorgroup.scheduler.taskqueue.maxsize | Integer | 10000 | The maximum number of task allowed in the task queue in the SSE engine. |
sse.collectorgroup.spawnpolicy.loadlevel.small.threshold | Integer | 200 | The task count threshold that allows LogicMonitor to determine if a process is under small load (as compared to count running tasks). |
sse.collectorgroup.trustallcerts.enable | Boolean | TRUE | If TRUE, trust all certs in SSE. Affects HTTPS connections from Collector. |
sse.restartOn.criticalClassNotFound | Boolean | FALSE | If TRUE, SSE will restart if critical classes cannot be loaded. |
sse.runtime.conf.path | String | ./../conf/service.conf | conf path |
sse.script.stopThread.useThreadStop | Boolean | FALSE | If TRUE, the thread.stop method will be used to force stop the SSE script. This method is deprecated and may cause issues as a result of an inconsistent state. If FALSE, thread.interrupt is called, which may not not stop some threads. |
collector.script.cache.timeout | Integer | 30 | Expiration timeout (in minutes) for script cache data. Available in Collector versions 29.100 or higher. |
Topology Mapping Settings
Name | Type | Default | Details |
eri.global.timeoutInSec | Integer | 300 | ERI global task timeout (in seconds). |
eri.history.maxItem | Integer | 32 | The maximum number of ERI history items stored in memory like it is history result. |
eri.queue.capacity | Integer | 5000 * 50 | ERI task queue capacity. |
eri.workers | Integer | 10 | The number of threads available for processing ERI requests or tasks. |
topology.global.timeoutInSec | Integer | 300 | Topology task timeout (in seconds). |
topology.history.maxItem | Integer | 1000 | The maximum number of topology task history items stored in memory (cache). |
topology.queue.capacity | Integer | 250000 | Topology task queue capacity. |
topology.workers | Integer | 10 | The number of threads available for processing topology requests or tasks. |
Watchdog Settings
Name | Type | Default | Details |
watchdog.check.agent.cant.start.interval.time.in.second | Integer | 240 | The interval (in seconds) in which it will be reported that the Collector can’t restart. |
watchdog.check.scheduled.task.enable | Boolean | FALSE | If TRUE, the watchdog will schedule a task to detect whether the Collector is working. |
watchdog.clean.dumperror.interval | Integer | 10 | The interval (in minutes) in which the watchdog will check the dump error logs. |
watchdog.clean.dumperror.patterns | String | sse_err_pid*.log,collector_err_pid*.log,hs_err_pid*.mdmp,hs_err_pid*.log,replay_pid*.log | The watchdog will check the dump error logs using the pattern provided as the value for this setting (e.g. “hs_err_pidXXX.log”) and delete the oldest Java critical logs. |
watchdog.credential.rotation.interval | Integer | 24 | The interval (in hours) in which the publicly signed certificates that the Collector uses to authenticate itself to the LogicMonitor platform are rotated. |
watchdog.credential.rotation.prohibition | Integer | 1 | Prohibits credential rotation to be more frequent than duration (in hours) set. If set to 0, no prohibition. |
watchdog.credential.rotation.testmode.in.second | Integer | 0 | The credential rotation interval (in seconds) for test purposes. |
watchdog.dump.sbproxy.memory.count | Integer | 1 | The number of reserve memory dump files for sbwinproxy. Maximum allowed value is 5. |
watchdog.dump.sbproxy.memory.enable | Boolean | FALSE | If TRUE, sbwinproxy memory dump is enabled when heartbeat times out. |
watchdog.dump.sbproxy.memory.wait.seconds | Integer | 30 | The amount of time (in seconds) before dump to sbwinproxy memory is completed. |
watchdog.feed.renew.interval.in.second | Integer | 10 | Interval (in minutes) to see if feed from the server needs to be loaded to get the latest information. |
watchdog.hang.ival | Integer | 600 | The interval (in seconds) for checking if the watchdog’s main loop is hung. |
watchdog.keep.alive.timeout.in.second | Integer | 60 | The timeout period (in seconds) for reading the keep-alive response from the Collector. |
watchdog.report.version.interval.in.second | Integer | 300 | Interval (in sec) to report collector version. |
watchdog.restart | Integer | 0 | Restart watchdog interval (in hours). If set to 0, watchdog is never restarted. |
watchdog.restart.blocked.collector.enable | Boolean | TRUE | If TRUE, the watchdog is able to restart blocked Collector. |
watchdog.status.port | Integer | 7213 | The watchdog status listening port (i.e. the port over which the Collector service communicates to the Watchdog service). |
watchdog.stop.then.start.agent.interval.seconds | Integer | 5 | The delay time (in seconds) the Watchdog will wait to start Collector when restarting the Collector. |
watchdog.wait.agent.start.time.inseconds | Integer | 45 | The delay time (in seconds) after Collector start for watchdog to begin checking Collector. |
This feature is available for Collector versions 29.100 or higher.
Overview
Collector scripts require authentication tokens to communicate with certain entities. In older versions of the Collector, these Auth tokens are stored in files, which means that read and write operations are done in every LogicModule that needs to access the files. Collector versions 29.100 or higher allow you to store these Auth tokens in a cache between collection intervals until the token expires.
Using ScriptCache
The ScriptCache
class contains the following methods:
Method | Description |
ScriptCache.getCache(); |
To get the cache object to perform further operations. Returns ScriptCache object. |
ScriptCache.set(String key, String value, [optional] long expireIn); |
Set the key, value, and (optional) expireIn. If set, expireIn value is in milliseconds. Example: 3000. |
ScriptCache.get(String key); |
|
ScriptCache.remove(String key); |
The expireIn
value is optional and can be set for each key that is stored in the cache. If the value is not set for a particular key, the default expire timeout will be the value set in the collector.script.cache.timeout
in agent.conf
. For example:
collector.script.cache.timeout=30 //30 minutes
New scripts with ScriptCache
won’t work with older versions of the Collector. Importing ScriptCache
will throw an exception in older collectors. The following script example will work in all Collectors:
def scriptCache
try {
scriptCache = this.class.classLoader.loadClass("com.santaba.agent.util.script.ScriptCache").getCache();
//new way
String token = scriptCache.get("token1");
if(token == null){
//make connection, fetch new token and store it in cache
scriptCache.set("token1", "asfioajfiqu920200rdaoj9au");
} else{
//make connection
}
} catch (Exception ex) {
//old way
}
In this script, if the import statement fails for the ScriptCache
class, it will default to the old way of saving tokens with files. If it passes, it will use ScriptCache
.
The service account used by the collector needs the ability to restart the collector services. Without this right, the collector and its associated watchdog will not be able to restart each other. If you find your collectors periodically going down after 8 hours or so, group policy permissions could be preventing them from restarting themselves or one another.
Ensure the account you specify for the LogicMonitor Collector and LogicMonitor Collector Watchdog services has the Read permission, and the Stop, Start, and Pause permissions to these services.
For more information about how to grant these permission, consult your Microsoft documentation. An article with step-by-step instructions can also be found at:https://social.technet.microsoft.com/wiki/contents/articles/5752.how-to-grant-users-rights-to-manage-services-start-stop-etc.aspx.
If you find you need to update the credentials provided when installing the collector, you must log on to the collector computer and update the services. It is common to have to update this account if you mistakenly installed the collector with Local System context and now need to monitor remote computers. To change the context of the collector service:
- Start the Services administration tool, either by launching it from Administrative tools or by typingservices.msc in the Start > Find field.
- Locate the LogicMonitor Collector service.
- Right-click it, click Properties, and then select the Log On tab.
- Click Check next to This account:, and either browse to the appropriate user or type it in.
- Complete the password information and click OK.
- Acknowledge that the password will not take effect until restart.
- Repeat for the LogicMonitor Collector Watchdog service.
- Stop both services, and then start the LogicMonitor Collector Watchdog service. This will start the LogicMonitor Collector service.
You can control the behavior of LogicMonitor Collectors using configuration files. The agent.conf configuration file is located in the Collector’s installation directory in the following default file path:
- Linux: /usr/local/logicmonitor/agent/conf
- Windows: C:\Program Files\LogicMonitor\Agent\conf
You can view and update the settings in the agent.conf on a per-collector basis in the LogicMonitor user interface.
Note: In addition to the agent.conf
file, collector also supports the agent.conf.local
configuration file to configure collector settings. The agent.conf.local
is located at the same default path given above. The configurations set in the agent.conf.local
file take precedence over the configurations set in the agent.conf
settings. Thus, you can configure settings such as debug.disable=false
and remotesession.disable=true
in the agent.conf.local
file and ensure that these settings cannot be changed on the LogicMonitor user interface via the agent.conf
file. Therefore, modifying the agent.conf.local
configuration file incurs risk and must be done with caution.
The user who has access to the machine on which the collector is installed can access and update the agent.conf.local
file.
Editing the Collector Configuration Files
- Navigate to Settings > Collectors.
- From the Collectors page, find the Collector you want to configure and click the Settings icon in the Manage column to display its settings.
- Click Support, and then select “Collector Configuration.”
- Open the configuration file you want to edit.
- Toggle the Edit <name>.conf manually switch to manually edit the file.
- Click the Save and Restart button to restart the Collector and apply the changes to the configuration file.
If your environment does not allow the Collector to directly connect with the LogicMonitor data centers, you can configure the Collector to communicate through an HTTP proxy.
Updating SSL and Proxy Settings
By default, collectors are not configured to use proxies. To communicate with HTTP proxies, you need to make updates to several proxy settings located in the collector’s agent.conf
file. For detailed instructions on editing the agent.conf file, see Editing the Collector Config Files.
Once updated, the new settings should look similar to these:
# SSL & Proxy settings
ssl.enable=true
proxy.enable=true
proxy.host=10.0.0.54
proxy.port=8080
proxy.user=domain\username
proxy.pass=password
proxy.exclude=
proxy.global=false
proxy.pass.isencrypted=false
These new settings designate the following:
ssl.enable=true
Indicates that the collector will make outbound connection using SSL.proxy.enable=true
Indicates that the collector will use these settings.proxy.host=
Indicates the IP address of the proxy server.proxy.port=
Indicates the port the proxy server uses.proxy.user=
Indicates the username the collector uses when connecting to the proxy.proxy.pass=
Indicates the password the collector uses when connecting to the proxy.proxy.pass.isencrypted=
Indicates if the proxy password is encrypted or not.
Note: The settings specified above reflect a Windows-based proxy requiring authentication. Linux collectors support only basic authentication. Windows collectors support NTLM and other native windows authentication methods.
Changing Proxy Password
If a proxy server has password-based authentication, its credentials are stored in the proxy.user
and proxy.pass
fields. The proxy password is encrypted. To indicate the encryption, the proxy.pass.isencrypted
is set to true
. You can set proxy.pass.isencrypted= false
if you want to change the proxy password.
Note: This setting is available in collector version 30.104 or later.
- Navigate to Settings > Collectors.
- Under the Collectors tab, select the collector you want to configure.
- Select the More option and then select Collector Configuration.
On the Collector Configuration page, settings under the Agent Config tab are displayed. - Scroll to locate the SSL and Proxy settings.
- Enter a new password in plain text in the
proxy.pass
field. - Set the
proxy.pass.isencrypted
value tofalse
. - Select Save and Restart.
After the restart, observe that the password is encrypted and theproxy.pass.isencrypted
field is set totrue
.
Troubleshooting Collector Proxy Configuration
We have highlighted some common issues experienced (and how to resolve them) when configuring collectors to be used with HTTP proxies.
Issue: Proxy Authentication Required
When the collector is configured to use a proxy that requires basic authentication, the collector may throw the following exception:
[MSG] [WARN] [main::controller:main] [Controller2._initConfiguration:461] Unexpected status encountered from server. Will retry., CONTEXT=retry=30s, statusCode= 500, errMsg=Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
In this case, you will want to add the following configuration to the collector’s wrapper.conf:
wrapper.java.additional.16=-Djdk.http.auth.tunneling.disabledSchemes=
Issue: Invalid SSL Certificate
If a collector does not get a valid SSL certificate issued directly from LogicMonitor, it will fail to properly start. In the below example, all SSL certificates in the client environment were being intercepted and reissued using special security software (example, Blue Coat Proxy).
[03-26 15:53:03.222 EDT] [MSG] [INFO] [statusmonitor:::] [StatusListener$1.run:106] Receive peer request, CONTEXT=command=keepalive, charset=windows-1252, peer=/***.***.***.***:******
[03-26 15:53:03.268 EDT] [MSG] [WARN] [statusmonitor::scheduler:] [PropertyFilePersistentHandler._load:94] task file not found, CONTEXT=filename=C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf, EXCEPTION=C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf (The system cannot find the file specified)
java.io.FileNotFoundException: C:\Program Files (x86)\LogicMonitor\Agent\conf\persistent_task.conf (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.santaba.common.util.scheduler.impl.PropertyFilePersistentHandler._load(PropertyFilePersistentHandler.java:88)
at com.santaba.common.util.scheduler.impl.PropertyFilePersistentHandler.<init>(PropertyFilePersistentHandler.java:30)
at com.santaba.common.util.scheduler.Schedulers.newPersistentScheduler(Schedulers.java:17)
at com.santaba.agent.collector3.CollectorDb._newScheduler(CollectorDb.java:172)
at com.santaba.agent.collector3.CollectorDb.<init>(CollectorDb.java:68)
at com.santaba.agent.collector3.CollectorDb.<clinit>(CollectorDb.java:65)
at com.santaba.agent.agentmonitor.StatusListener._getAgentStatusResponse(StatusListener.java:279)
at com.santaba.agent.agentmonitor.StatusListener$1.run(StatusListener.java:117) /
[03-26 15:53:03.947 EDT] [INFO] [1] [default] [controller] [Controller2._initHttpService:469] Agent starting with ID - 00baae57-3971-4239-9610-b512aae9c21csbagent
[03-26 15:53:04.232 EDT] [MSG] [INFO] [main::controller:main] [SSLUtilities.checkCertificates:160] Invalid or wrong SSL Certificates found, CONTEXT=info=Found total 2 certificates:
Subject: CN=*.logicmonitor.com, OU=Domain Control Validated
Issuer: CN=SSLInterception87
Type: X.509
SHA1: 9a:a6:ff:33:85:cc:13:4c:3a:13:11:77:5c:ef:5e:a7:74:65:6b:de
MD5: 61:35:08:b5:ec:71:a2:ae:05:c4:7f:54:f1:aa:6f:ad
Valid from: 2017-04-19 10:02:01 -0400
Valid to: 2020-06-18 17:33:09 -0400Subject: CN=SSLInterception3
Issuer: CN=BillyBob's-CA, DC=slhn, DC=org
Type: X.509
SHA1: 6b:a8:1f:61:7b:5d:f0:e4:ee:7e:6a:1b:bb:18:de:67:be:5c:44:1d
MD5: d0:fc:64:da:6f:9b:1f:8d:1a:52:64:dc:41:da:e7:1c
Valid from: 2017-08-09 15:08:18 -0400
Valid to: 2021-10-03 08:53:12 -0400 */
[03-26 15:53:04.232 EDT] [MSG] [WARN] [main::controller:main] [Controller2._initConfiguration:322] SANTABA SERVER ceriticates not trusted, CONTEXT=Host=generic-customer.logicmonitor.com, port=443
Solution A (Preferred)
Have the local administrator add the SSL certificate to your allow list so that it comes into the network unmodified by a proxy/firewall. This is the preferred option because it preserves security.
Solution B
Change the collector configuration setting from:
EnforceLogicMonitorSSL=true
to:
EnforceLogicMonitorSSL=false
Removing SSL enforcement lowers the security of the connection between your collector and LogicMonitor and, for this reason, should be carefully considered before implementing.