Web Server / Services


Applications Manager supports monitoring of the following Web Services to check their status :

 

It performs the following checks to ensure its availability and represents the information in the form of graphs. Availability tab, gives the Availability history for the past 24 hours or 30 days. Performance tab gives the Health Status and events for the past 24 hours or 30 days. List view enables you to perform bulk admin configurations. Click on the individual monitors listed, to view the following information.

 

Apache Server

To create an Apache Monitor, follow the steps given below: Refer to the Prerequisites that are needed for Apache monitoring.

  1. Click on New Monitor link. Choose Apache Server.

  2. Enter the IP Address or hostname of the host in which the Monitor is running.

  3. Enter the SubNetMask of the network.

  4. Provide the port number in which the monitor is running.

  5. Choose SSL option, if SSL is enabled in Apache Server.

  6. Enter the polling interval time in minutes.

  7. If you are adding a new monitor from an Admin Server, select a Managed Server.

  8. Enter the Apache User Name and Password if the Apache Server is authenticated.

  9. Modify the Apache Server Status URL if required. The default Server Status URL through which the data transfer details, access details, etc., are collected is http://<host-name:portNumber>server-status?auto. You can now modify the server status URL using this option, if the server status URL is different.

  10. Choose the Monitor Group from the combo box with which you want to associate Apache Monitor (optional). You can choose multiple groups to associate your monitor.

  11. Click Add Monitor(s). This discovers the Apache from the network and starts monitoring them.

 

Service Type

Checks

Apache Server
  • Connects to the Apache and checks its availability and response time.
  • When Server Status and Extended Status are enabled, then the following data can be obtained.

    Parameters

    Description

    Response Time The time taken for the apache server to respond while monitoring in milliseconds.
    CPU Load Specifies the percentage of load on the machine.
    Requests/Minute The average number of requests received by the server in one minute.
    Bytes/Request The number of bytes transferred per request.
    Busy Servers Number of workers currently busy.
    Idle Servers Number of workers currently idle.
    Bytes per Sec The number of bytes transferred per second.
  • To Enable the Server Status, follow the steps given below:

1. In Apache's httpd.conf file, locate "Location /server-status" tag. If you are not able to locate the server-status tag, do the following.
2. Remove the comment in the Location/Server-status tag, to Enable SetHandler server-status
3. Change the attribute "Deny from All"  to "Allow from <ip_address>"  (Replace <ip_address> with the IP address of the Applications Manager server).
4. Remove the comment in "LoadModule status_module modules/mod_status.so".
5. Save the conf file and restart the Apache Server

  • To enable the Extended-status, follow the steps given below:

1. Locate "ExtendedStatus" Attribute in httpd.conf file. 
2. Remove the comment to enable the status. 
3. Save the conf file and restart the Apache Server

 

Note

For Apache 2.2.3 and above, make the following changes in the
/opt/apache-httpd-2.2.3/conf/httpd.conf file.

Add the following lines at the end of the file,
<Location /server-status>
SetHandler server-status
Order deny,allow
Allow from <ip_address>
</Location>
ExtendedStatus On

Then restart the Apache server, try to connect to http://<your.server.name>/server-status and then you should be able to view the server status.

 

Note: Click here for more information about the configuration

Top

 

 

 

IIS Server

To create an IIS Monitor, follow the steps given below:

  1. Click on New Monitor link. Choose IIS Server.

  2. Enter the IP Address or hostname of the host in which the Monitor is running.

  3. Enter the SubNetMask of the network.

  4. Provide the port number in which the monitor is running.

  5. Choose SSL option, if SSL is enabled in IIS Server.

  6. Enter the polling interval time in minutes.

  7. If you are adding a new monitor from an Admin Server, select a Managed Server.

  8. Choose the Monitor Group from the combo box with which you want to associate IIS Monitor (optional). You can choose multiple groups to associate your monitor.

  9. Click Add Monitor(s). This discovers the IIS Server from the network and starts monitoring them.

 

Note: To collect 'Website Statistics' and 'Application Pools' data, the host where the IIS Server is running should be monitored in WMI mode.

 

IIS Server
  • Connects to the IIS server and checks its availability.

  • Monitors response time and updates the status based on a given threshold.

  • If the host in which IIS server is running is monitored in WMI mode, the website stats can also be monitored. Health of the IIS Server depends upon the health of the websites. Health of the Website depends upon attributes that are mentioned below.

  • Bytes Transferred : Bytes Sent Per Second, Bytes Received per Second, Bytes Total Per Second

  • Files Transferred: Files Sent Per sec, Files Received Per sec, Files Transferred Per Sec

  • Connection Statistics: Current Connections

  • Anonymous Users: Current Anonymous Users, Anonymous Users per Second

  • Non Anonymous Users: Current NonAnonymous Users, Non Anonymous Users per Second

  • Application Pools: Availability and health of the various web applications in the pool.

  • CPU Usage (in %): The percentage of time that the worker process has used the CPU since last update.

  • Memory Usage (in %): The percentage of used memory in an IIS application pool.

  • Number of Worker Process: The number of worker processes (different programs) assigned to a pool.

Top

Nginx Server

To create a Nginx Monitor, follow the steps given below:

  1. Click on New Monitor link. Choose Nginx Server.

  2. Enter Display Name of the server.

  3. Enter the IP Address or hostname of the host in which the monitor is running.

  4. Provide the port number in which the monitor is running.

  5. Choose SSL option, if SSL is enabled in Nginx Server.

  6. Enter the Nginx User Name and Password if the Nginx Server is authenticated.

  7. Modify the Nginx Server Status URI if required. This is for getting the server status. The default Server Status URI is nginx_status. You can modify the server status URI using this option, if the server status URI is different.

  8. Enter the polling interval time in minutes.

  9. If you are adding a new monitor from an Admin Server, select a Managed Server.

  10. Choose the Monitor Group from the combo box with which you want to associate Nginx Monitor (optional). You can choose multiple groups to associate your monitor.

  11. Click Add Monitor(s). This discovers the Nginx Server from the network and starts monitoring them.

To Enable the Server Status, follow the steps given below:

  1. Configure the location /server_status method in nginx.conf file, to enable server_status.

  2. The value of stub_status attribute should be "on".

  3. Change the attribute "deny all" to "Allow all".

  4. Save the conf file and restart the Nginx Server.

Nginx Server
  • Connects to the Nginx server and checks its availability.

  • Active Connections: Refers to connections that are active currently.

  • Requests Per Second: Refers to number of requests received per second.

  • Requests in Reading State: Refers to number of requests in reading state currently.

  • Requests in Writing State: Refers to number of requests in writing state currently.

  • Requests in Waiting State: Refers to number of requests in waiting state currently.

 

PHP

To create a PHP Monitor, follow the steps given below:

  1. Find the phpstats.php file that's bundled with Applications Manager. The file is located at: AppManager_Home folder -> Working\resources folder -> phpstats.php.
  2. Place the phpstats.php file in the webserver's document root to start monitoring. Applications Manager connects to the server and retrives PHP and checks its availability.
  3. Click on New Monitor link. Select PHP Monitoring.

  4. Enter the IP Address or hostname of the host in which the Monitor is running.

  5. Enter the SubNetMask of the network.

  6. Provide the port number in which the monitor is running.

  7. Choose SSL option, if SSL is enabled in PHP.

  8. Enter the path to be connected. By default, ' /phpstats.php ' is shown. http://hostname:portNo/"path to be connected" will be used for connection

  9. Enter the polling interval time in minutes.

  1. If you are adding a new monitor from an Admin Server, select a Managed Server.

  2. Choose the Monitor Group from the combo box with which you want to associate PHP Monitor (optional). You can choose multiple groups to associate your monitor.

  3. Click Add Monitor(s). This discovers the PHP Service from the network and starts monitoring them.

PHP Monitoring
  • Connects to the server and retrives PHP and checks its availability.

  • Monitors response time and updates the status based on a given threshold.

  • In Linux, Page fault of the system in which the PHP is hosted is also shown. We can configure the alarm and actions based on the threshold condition.

Top

SSL Certificate Monitor

To create a SSL Certificate Monitor, follow the steps given below:

  1. Click on New Monitor link. Choose SSL Certificate Monitor.

  2. Provide an appropriate Display Name for the SSL Certificate monitor.
  3. Enter the Domain name for which SSL certificate is required to be monitored.

  4. Provide the port in which the server is running [Default port is 443].

  5. Check the box Need proxy to connect to the domain if the server is connected through proxy. In such cases you should also configure proxy server settings through the 'Configure Proxy' option available in the Admin tab.

  6. Enter the Timeout value in seconds.

  7. Provide the polling interval in minutes.

  8. If you are adding a new monitor from an Admin Server, select a Managed Server.

  9. Choose the Monitor Group from the combo box with which you want to associate the SSL Certificate Monitor (optional). You can choose multiple groups to associate your monitor.

  10. Click Add Monitor(s). This discovers the SSL Certificate from the server and starts monitoring it.

SSL Certificate Monitoring
  • Connects to the server and retrieves the details pertaining to the validity and authenticity of the SSL Certificate.

  • Monitors the availability and response time of the domain being added.

  • Issued To: Displays the details of the organization for which the certificate is issued.

  • Issued By: Displays the details about the Certification Authority of your domain.

  • Validity: Specifies details such as the issue date and expiry date of the SSL Certificate and also the number of days left for expiry.

  • Threshold can be set to configure alarms which will alert you before your certificate expires.

Top

 

Web Server

To create a Web Server Monitor, follow the steps given below:

  1. Click on New Monitor link. Choose Web Server.

  2. Enter the IP Address or hostname of the host in which the Monitor is running.

  3. Enter the SubNetMask of the network.

  4. Provide the port number in which the monitor is running.

  5. Enter the polling interval time in minutes.

  6. If you are adding a new monitor from an Admin Server, select a Managed Server.

  7. Choose the Monitor Group from the combo box with which you want to associate Web Server Monitor (optional). You can choose multiple groups to associate your monitor.

  8. Click Add Monitor(s). This discovers the Web server from the network and starts monitoring them.

If you have added Monitors and not associated them with a Monitor Group, you can do this manually anytime. For information on associating a Monitor with a Monitor Group, refer to Associating Monitor with Monitor Groups topic.

 

Web Server

  • Connects to the web server and checks its availability.

  • Monitors response time and updates the status based on a given threshold.

 

 

Top

Web Services

Web Service Monitoring

Web Services is an XML-based technology that allow applications to communicate with each other, regardless of the environment, by exchanging messages in a standardized format (XML) via web interfaces (SOAP and WSDL APIs).

 

ManageEngine Applications Manager provides a flexible approach to manage a SOA that uses SOAP Web Services. It helps business managers configure SLAs and track high level availablity of the Web Service. Application admins can monitor the performance of these Web Services by configuring Applications Manager to execute 'Operations' published by the Web Service. By specifying the WSDL, a simple wizard helps you configure operations that need to be invoked and gives the ability to specify arguments to the operation. In addition to this, there is out-of-the-box support for configuring thresholds on individual operation execution times and user-defined XSLT parameters.

 

To create Web Services Monitor, follow the steps given below:

 

Note: If you want to access Web Services through Proxy , Kindly go to Admin > Configure Proxy Settings > Check if Proxy is configured, else configure the same. For hosts that don't require Proxy, add them to the No Proxy list.

 

  1. Click on New Monitor link. Choose Web Services.

  2. Enter the WSDL URL.

  3. Select the checkbox if proxy is required for connection to the WSDL URL.

  4. Enter the polling interval time in minutes.

  5. If you are adding a new monitor from an Admin Server, select a Managed Server.

  6. Enter the Timeout.

  7. Give the User Name and Password, if it is required to invoke the webservice operation.

  8. Add a Header: You can use our pre-defined headers or create your own custom headers to invoke operations. Use '#' to seperate multiple headers.Use ':' to sepearate individual keys and values. For Example- Content-Type:text/application+xop;charset=UTF-9#Pragma:no-cache

  9. During monitor creation, provide the token for extracting a specific value from the SOAP Response for sequential execution. The token is of the format OperationName_SEP_TagToBeExtracted.

  10. Choose the Monitor Group from the combo box with which you want to associate Web Services Monitor (optional). You can choose multiple groups to associate your monitor.

  11. Click Add Monitor(s). 

If you have added Monitors and not associated them with a Monitor Group, you can do this manually anytime. For information on associating a Monitor with a Monitor Group, refer to Associating Monitor with Monitor Groups topic.

 

After creation of Web Services monitor, you can proceed to add the required operations and configure the thresholds and alarms for the same.

 

Adding Operations

You can add Operations to the Web Service for monitoring. Operations are abstract descriptions of actions supported by the service.

 

Follow the steps given below to add operations:

  1. Click the Add Operation link present on the right-hand side of the web services monitor screen. This displays the Add Operation screen.

  2. The operations configured in the web service will be listed in the Select Operation drop-down list box. You can either choose any of these operations or choose custom operation.

  3. If you select a pre-configured operation, the SOAP Action and SOAP Request values for the operation will be automatically displayed. Replace the '?' in the SOAP request with your input value. The Operation Name has to be specified for pre-defined operations too.

  4. If you choose the custom operation, you have to specify the Operation Name, SOAP Action and SOAP Request values. (Click to know about Adding XSLT segment.)

  5. You can use the Test Operation option to check the output before adding the operation for monitoring.

  6. Click Save button to add the operation. Click Save and Configure Another button to add the operation and configure another operation.

The Operations thus added, will be listed in the details page under the Operation Statistics section. In this section, you can view the details of the operation such as Operation Name, SOAP Request, SOAP Response, status and execution time. Applications Manager provides a link in the Alert Email for SOAP Action, to view the SOAP response for the specific operation. You can also configure thresholds and alarms for all the operations.

 

The Web Service Functions are used to give dynamic input for each SOAP Request. You have to replace the input value with the function specified in the above format.

 

Function Description Usage
${random(MinValue,MaxValue)} This function will generate Random numbers as input. ${random(100,1000)}
This will generate a random number between 100 and 1000 E.g. 446.
${time(TimeFormat)} This method will generate current date and time as input. You can specify your own Date and Time Format. ${time(yyyy-MM-dd(HH:mm:SSS))}
This will generate the date and time in this format2015-09-21(16:49:717).
${time(TimeFormat)#(1d,-1y)} This method will generate custom year,date and time as input. You can specify your own Date and Time Format. ${time(yyyy-MM-dd(HH:mm:SSS))#(5d,2m,-1y)}
This will generate the date and time in this format2014-11-26(16:49:717).
${passAuthToken(authtoken)} This method will replace token/access key which is already derived from SOAP Response mentioned in ''Authentication Token''. ${passAuthToken(authtoken)}
This will generate token node in this format<LogOnToken>${passAuthToken(authtoken)}</LogOnToken>. Tag name <LogOnToken> is just an example, it could be anything actually.
${nonce()} This method will generate a random base64 encoded,16-byte nonce value. ${nonce()}
This will generate a random base64 encoded,16-byte nonce value to prevent request duplication. Ex : NGMzb05BeHF6V1dHNTNuNQ==

 

Adding XSLT input

How to use XSLT for a particular SOAP Operation?

When adding a particular operation, click 'Add XSL Transformation' button and provide the necessary formatting input. To return mulitple values, ensure that:

  • The output format is set to text. This can be done by adding the XSLT code using the output tag. Ex : <xsl:output method="text"/>.

  • Provide the output in key-value pairs. For example, to add an attribute for checking the temperature, make sure that the XSLT output is of the format "Temperature:100".

  • The key-value pairs should be separated by a new line entry.

    Key1 : Value1

    Key2 : Value2

    Key3: Value3

The keys should be unique within a particular SOAP Operation. They can be duplicated across operations.

 

How to add XSLT input to existing operations ?

  • Click Manage operations and select edit and add the necessary changes. Click Update.

  • Click on the operation details. Select the SOAP Request tab and add the changes and click Update.

Where to view the attributes created using XSLT ?
Under the Operation Statistics table, select the operation for which you wish to view the XSLT data. This opens the SOAP Response tab under which the attributes are listed in a tabular format with functionality to add thresholds and view reports. For numeric data, the graphic data is displayed after the table.

 

How do I enable reports for the attributes?

  • Go to the Reports tab and select Enable reports.

  • Select Web Services type

  • Check the attributes for which you wish to generate reports.

  • Click Update. Wait for data archival to occur to view the reports.

 

Editing Arguments

Click the Manage Operation link under the 'Operation Statistics' section to go to the 'Manage Operation' page. In this page, click the  icon to edit the Operation Display name as well as the Arguments including SOAP Action and SOAP Request values.

 

How to add XSLT input to existing operations ?

  • Click Manage operations and select edit and add the necessary changes. Click Update.

  • Click on the operation details. Select the SOAP Request tab and add the changes and click Update.

 

Where to view the attributes created using XSLT ?

  • Under the Operation Statistics table, select the operation for which you wish to view the XSLT data. This opens the SOAP Response tab under which the attributes are listed in a tabular format with functionality to add thresholds and view reports. For numeric data, the graphic data is displayed after the table.

 

How do I enable reports for the attributes?

 

You can enable reports for the attributes in the following two ways:

 

From the SOAP Response Page:

  • In the SOAP Response Page, the details of all the XSLT attributes are listed in a table.

  • The check boxes provided in the table allow the user to enable / disable reports for the attributes at the Operation level.

  • Select the attributes from the table and select either enable reports or disable reports option present at the bottom of the table to perform the required action.

From the Reports Tab:

  • Go to the Reports tab and select Enable reports.

  • Select Web Services type.

  • Check the attributes for which you wish to generate reports.

  • Click Update.

  • Wait for data archival to occur to view the reports.

 

Web Service

  • Connects to the web service and checks its availability.

  • Monitors WSDL URL response time and updates the status based on a given threshold.

  • Monitors Web Service Operation Execution time.

  • Monitors the values of the user defined XSLT attributes.

 

 

Note:

Sequential execution of SOAP Operations

  • Create a sequence of SOAP Operations wherein the output obtained from one SOAP Response is used as the input for the next SOAP Request.
  • Procedure:
    • During monitor creation, provide the token for extracting a specific value from the SOAP Response. The token is of the format OperationName_SEP_TagToBeExtracted.
    • For example, the SOAP Operation GetCitiesByCountry returns the list of cities present in a particular country. Each city is specified within <City> tag in the SOAP Response. To extract the first city from the SOAP Response the Authentication token would be GetCitiesByCountry_SEP_City.

After monitor creation, add the operations. For the operations where the input is taken from the response of another operation, call the function passAuthToken. Syntax : ${passAuthToken(authtoken)}. Example : ${passAuthToken(GetCitiesByCountry_SEP_City)}

 

REST API - An Overview

REST (REpresentational State Transfer) is a design concept (architecture) for managing state information which defines how data communication is to be done using HTTP protocols. The API calls which adhere to the REST definition (pretty much most of them!) are called REST APIs.

 

Monitoring REST API - What we do.

  • Monitor the availability and response time of your REST API endpoints.
  • Get insight into the response time of mobile and web applications that use your API.
  • Verify that the APIs are returning the correct data in the response details tab.
  • Get notification when key API transactions fail.
  • Detect downtime and fix critical issues before customers are affected.

 

REST API monitoring - Adding a new monitor

To configure an API Monitor, follow the steps mentioned below :

  • Click on New Monitor link. Select REST API.
  • Enter Display Name of the monitor.
  • Enter REST API URL i.e the API call to be monitored.
  • Enter Timeout in Seconds - the amount of time spent by APM to establish a connection with the server hosting the API service.
  • Select the Form Submission method used to access the API.
  • Enter the credential details for User Authentication like user name and password if required or select credentials from a Credential Manager list. If no authentication is required, then leave the fields blank.
  • Configure the HTTP(s) Headers required to establish a connection with the API server. Use '#' to separate the header name and value. For specifying multiple headers, use the separator key '_sep_'. Example:User-Agent#Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36_sep_Accept-Charset#utf-8.
  • Specify the type of response to be expected. For XML and JSON response, user can define specific response values to monitor in the Response Details tab in the Monitor Details page.
  • Make sure the proxy settings configured in AppManager matches with the proxy settings in the browser. Bypassing the local addresses and subnet mask are required based on the API being monitored.
  • Make sure that the content you try to match is present in the API response.
  • Click Test Credentials button, to make sure the API service is accessible from the Applications Manager installed machine.
  • Choose the Monitor Group from the combo box with which you want to associate REST API Monitor (optional). You can choose multiple groups to associate your monitor.
  • Click Add Monitor(s). This discovers the API service from the network and starts monitoring.

 

Use the AddMonitor API to add a REST API monitor

Syntax

http://[Host]:[Port]/AppManager/xml/AddMonitor?apikey=[API Key]&type=RESTAPIMonitor&displayname=[Display Name]&API=[REST API URL]&Timeout=[Timeout Value in Seconds]&Method=[GET/POST/PUT/DELETE]&RespType=[XML]&UserName=[Username]&Password=[Password]

 

Parameter

Description

type The type of the monitor you want to add. Value should be RESTAPIMonitor
displayname The display name of the monitor.
API The API call to be monitored.
Timeout The amount of time spent by APM to establish a connection with the server hosting the API service. (in seconds)
Method The Form Submission method used to access the API. (GET/POST/PUT/DELETE)
RespType The type of response to be expected.(Text/XML/JSON).
payLoadType

The format in which request data will be sent (applicable only for POST & PUT methods). Value can be FORM, Text, XML or JSON.

payLoad The request data (the format should match the payLoadType specified).
customHeaders Specify the headers to establish a connection with the API server. Use sep to separate the header name and value. For specifying multiple headers, use the separator #(Please encode the request parameters if they are sent via GET).

 

Example

http://Prod-server7:9010/AppManager/xml/AddMonitor?apikey=8519e4fadfd79d5dc78bce7489bd9319&type=RESTAPIMonitor&displayname=Dummy&API=http://www.google.co.in/&Timeout=10&Method=POST&payLoadType=Text&payLoad=PayloadContent&customHeaders=Accept_sep_application/json; version=2.0#User-Agent_sep_Mozilla/5.0 (Windows NT 6.3;Win64; x64)&UserName=User1&Password=Pass_123

 

Monitored Parameters

Go to the Monitors Category View by clicking the Monitors tab. Click on REST API under the Web Server/Services Table. Displayed is the REST API bulk configuration view distributed into three tabs:

  • Availability tab, gives the Availability history for the past 24 hours or 30 days.

  • Performance tab gives the Health Status and events for the past 24 hours or 30 days.

  • List view enables you to perform bulk admin configurations.

 

Parameter

Description

Response Time

It is the total time taken to get a REST API response. The response time of a REST API monitor is calculated as the sum of DNS lookup time, connection time and the time contracted to receive the response in JSON, text or XML.

  • Response Time
  • Domain Name Resolution Time
  • Connection Time
  • Request Processing Time
  • Download Time
Response Content Details

The size of the response in bytes along with the percentage change in size between consecutive polls.

  • Page Size
  • Page Size Change

 

Custom Attribute definition :

Based on the response obtained, the user can define their own attributes for monitoring specific values in the API response.

  • If the response is of type XML - Using the XSLT transformation (Ref. http://www.w3schools.com/xsl/), the user can define specific values to be monitored. Ensure that the following criteria are met :

    • The output method should be of type text. Syntax : <xsl:output method="text"/>

    • The final output should be of the format AttrName::AttrVal. Example : Days:<xsl:value-of select="days"/> would create an attribute 'Name' whose value will be the value of the <days> tag present in the API Response.

  • If the response if of type JSON - The JSON schema can be used to configure user-defined attributes. Ensure that the following criteria are met :

    • The attribute should be defined as AttrName::AttrValue. Example: Temperature::response.weather.temperature. This will create an attribute name 'Temperature' containing the value of the temperature variable returned

    • Multiple JSON Schemas can be defined by using new line as the delimiter.

    • If the JSON key itself contains a dot(.) then please replace it with '_sep_'. This should be done for all the individual keys which contain a dot(.) in it. In the above example, say the last key 'temperature' was defined as 'temperature.celsius'. Then the format should be Temperature::response.weather.temperature_sep_celsius.