Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

Version 1.6.2

New config settings

CheckServiceAliveInLog - true/false, enable log file monitoring for alive message. Checks in the logs of the service if it conatains the text “[IS ALIVE]” in the last time set in the next setting. If this is not detected, the agent will attept to restart the service
CheckServiceAliveInLogMinutes - how often check the alive message in the service log
For now this feature is supported only with AdSync version 1.2.0.2

Updated to agent 1.5.1

SphereShield Agent is a Windows Service to monitor other AGAT service and restart it if needed.
Monitored service can be:

...

Example of the configuration file: 

Code Block
languagexml
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
	<!--===================================================================================================-->
	<!-- Logging - The customer needs to enter his company name instead AGAT in CustomerName and LogFileFullName keys-->
	<add key="CustomerName" value="AGAT"/>
	<add key="LogFileFullName" value="C:\Agat\Logs\ServiceAgent\AGAT\ServiceAgent.log" />
	<add key="LogFileMaxSize" value="100" />
	<!-- Log level values: off, fatal, error, warn, debug, info, all, alert, critical -->
	<add key="LogFileLevel" value="all" />
	<add key="EventLogLevel" value="warn" />

	<!--===================================================================================================-->
	<!-- DB Connection -->
	<!-- Agent can work without DB. This mode does not support portal UI operation - service management operation for remote restart 
		and is designed mainly for Authentication extender monitoring. To work without DB set DBRequired to false. -->
	<add key="DBRequired" value="true" />
	<add key="ConnectionString" value="Data Source=[SQLSERVER];Initial Catalog=[DataBaseName];Persist Security Info=True;User ID=[username];Password=[password]" />

	<add key="Key" value="" />
	<add key="IV" value="" />

	<!--===================================================================================================-->
	<!-- Monitored service -->
	<!-- The name of the service to monitor / restart: AgatSipFilter, Bastion, AgatSphereShieldCasbAdapter, AgatContentManagerService -->
	<add key="ServiceName" value="AgatSfbSipFilter" />

	<!-- How long should agent wait for restart to complete. If does not manage to start, agent will create event in the event log for manual operation to be done. -->
	<add key="ServiceRestartTimeoutSeconds" value="30" />

	<!-- Define how often will the monitoring happen
		Note: Restart will occur only after ServiceMonitorNumberOfAttemptsBeforeRestart consecutive failures. Therefore cycle time should be configured accordingly. 
		If ConnectionString is set, the following setting will be ignored as the relevant value will be read from DB. -->
	<add key="ServiceMonitorFrequencySeconds" value="60" />

	<!-- Number of checks before service restart 
		If ConnectionString is set, the following setting will be ignored as the relevant value will be read from DB. -->
	<add key="ServiceMonitorNumberOfAttemptsBeforeRestart" value="3" />

	<!--===================================================================================================-->
	<!-- Ethical Wall load monitoring - relevant for SIP Filter only -->
	<add key="MonitorEthicalWallLoad" value="false" />

	<!-- Define how often will the Ethical Wall load monitoring happen -->
	<add key="MonitorEthicalWallLoadFrequencyMinutes" value="30" />

	<!--===================================================================================================-->
	<!-- Bastion healthcheck configuration - relevant for Bastion only -->

	<!-- Set to true if Bastion is running as Forward proxy, false if Bastion is running as Reverse proxy. -->
	<add key="BastionForwardProxy" value="false" />

	<!-- Bastion IP for the healthcheck request -->
	<!-- Note: Default port is 443 for Reverse Proxy and 80 for Forward Proxy. 
		If port other than default is used, please add :<portnumber> to the end of the IP. -->
	<add key="BastionIp" value="127.0.0.1" />

	<!-- Bastion host for the healthcheck request -->
	<add key="BastionHealthcheckHost" value="test.skypeshield.com" />

	<!-- Maximum latency for getting healthcheck results. Set value to 0 to disable latency check. -->
	<add key="BastionMaxHealthcheckLatencyMilliseconds" value="0" />

	<!-- Folder for output of troubleshooting procedure, will include archive of log files. -->
	<add key="TroubleshootingOutputFolder" value="C:\Agat\Logs" />

	<!-- Set to true to split troubleshooting archive into volumes, useful for email attachments -->
	<add key="TroubleshootingSplitIntoVolumes" value="true" />

	<!-- Size of troubleshooting archive split volume in MB. -->
	<add key="TroubleshootingSplitVolumeSize" value="10" />

	<!-- Number of last days to include in troubleshooting archive. -->
	<add key="TroubleshootingDaysRange" value="1" />

	<!--===================================================================================================-->
	<!-- What issues will cause sending email: all, dbConnectionFailure, bastionDbConnectionFailure, restartFailure, restartSuccess
		Multiple values may be configured by comma, may be left empty to disable emailing at all.
		Note that for any value except empty - SMTP should be configured below. -->
	<add key="EmailIssues" value="" />

	<!-- SMTP configuration - settings for admin notification when agent detects an issue 
		If ConnectionString is set, no need to set the following SMTP configuration settings as they are read from DB. -->
	<add key="SMTP_HostName" value="" />
	<add key="SMTP_Port" value="" />
	<add key="SMTP_AccountUsername" value="" />
	<add key="SMTP_AccountPassword" value="" />
	<add key="SMTP_RequiresSsl" value="false" />
	<add key="SMTP_RequiresAuthentication" value="false" />
	<add key="SMTP_MailRecipient" value="" />
	<!-- The frequency of sending mail notification. 
		 This value depends on the "Service Monitoring Frequency (seconds)" value in Admin Portal (ServiceMonitorFrequencySeconds setting). 
		 For example, if ServiceMonitorFrequencySeconds is set to 60 seconds and SMTP_Sending_Frequency is set to 10 , 
		 the agent will send mail when issue detected and than additional mail every 10 min ( 60X10 = 600 sec = 10 min )
	-->
	<add key="SMTP_Sending_Frequency" value="10" />

	<!--===================================================================================================-->
	<!-- Support emails -->
	<!-- What issues will cause sending email to support team: all, dbConnectionFailure, bastionDbConnectionFailure, restartFailure, restartSuccess
		Multiple values may be configured by comma, may be left empty to disable emailing at all.
		Note that for any value except empty - SMTP should be configured below. -->
	<add key="SupportEmailIssues" value="" />

	<!-- Support SMTP configuration - settings for support notification when agent detects an issue -->
	<add key="SupportSMTP_HostName" value="" />
	<add key="SupportSMTP_Port" value="" />
	<add key="SupportSMTP_AccountUsername" value="" />
	<add key="SupportSMTP_AccountPassword" value="" />
	<add key="SupportSMTP_RequiresSsl" value="false" />
	<add key="SupportSMTP_RequiresAuthentication" value="false" />
	<add key="SupportSMTP_MailRecipient" value="" />
	<!-- The frequency of sending mail notification to support team. 
		 This value depends on the "Service Monitoring Frequency (seconds)" value in Admin Portal (ServiceMonitorFrequencySeconds setting). 
		 For example, if ServiceMonitorFrequencySeconds is set to 60 seconds and SMTP_Sending_Frequency is set to 10 , 
		 the agent will send mail when issue detected and than additional mail every 10 min ( 60X10 = 600 sec = 10 min )
	-->
	<add key="SupportSMTP_Sending_Frequency" value="10" />
</appSettings>

Logging

  • CustomerName - Can install multiple agents for different customers on the same machine and customer name should be different for each one.

  • LogFileFullName - The path to the agent logs. Need to replace AGAT with customer name. If installed with installer it does the work.

  • LogFileMaxSize - Defines the maximum size of the log file before the agent will clear out and create a new log.

  • LogFileLevel - The severity level of the logs generated by the agent. Possible values: off, fatal, error, warn, debug, info, all, alert, critical

  • EventLogLevel - The severity of the logs sent to the event viewer.

...

Email notifications to admin

Settings for admin notification when the agent detects an issue.

...

Email notifications to support

Settings for support notification when the agent detects an issue.

...

  • [DB mode] write agent alive time in service management table for monitored service row

  • check if monitored service is running and start it if not

  • [DB mode] check if monitored service is alive in service management table

  • [Bastion] check if Bastion and filters are OK:

    • Bastion healthcheck procedure:

      • for forward proxy:
        request https://[BastionHealthcheckHost]/healthcheck with proxy BastionIP
        for example https://test.skypeshield.com/teams_protection/healthcheck with proxy 127.0.0.1

      • for reverse proxy:
        request https://[BastionIp]/skypeshieldhealth with host header BastionHealthcheckHost
        for example https://127.0.0.1/skypeshieldhealth with host header test.skypeshield.com

      • if received HTTP 200 status code (during response time of BastionMaxHealthcheckLatencyMilliseconds if set not to 0) - Bastion and filters are OK (no restart is done)

      • if received other HTTP status or error/exception - except statuses 404 (Not Found), 403 (Forbidden) and 401 (Unauthorized) - will try to restart Bastion service after 3 consecutive failures every 10 seconds - only if already in production mode.

    • if healthcheck result not OK and the agent is in production mode (received 5 sequence OK results) - consider healthcheck as not passed

    • otherwise if healthcheck result is OK or the agent not in production mode (not received 5 sequence OK results) - consider healthcheck as passed

    • the agent will go into production mode (restart on error) only after receiving good result for 5 times indicating the correct operation to avoid misconfiguration in install.

  • If alive check or bastion healthcheck not passed - restart the monitored service

  • If failed to start the service X (X = ServiceMonitorNumberOfAttemptsBeforeRestart) times - kill the monitored service

...