IIS
Introduction
Internet Information Services, also known as IIS, is a Microsoft web server that runs on Windows operating system and is used to exchange static and dynamic web content with internet users.
Getting Started
Compatibility
The IIS O11ySource supports Microsoft IIS 10.0 and later. VuSmartMaps supports monitoring IIS Application Pools, IIS websites, and IIS web server statistics and traffic trends.
Data Collection Method
vuSmartMaps collects health metrics and logs through OmniAgent’s health and log collection probes.
Prerequisites
Inputs for Configuring Data Source
- IIS Server: The IP Address/FQDN of the Apache server. This field is the key to identify each server you add here.
- OS Version: Select the windows version
- Period [in seconds]: How frequently data is gathered. The period should be between 60 seconds – 3000 seconds.
- IIS Log Path: Enter the IIS logfile's entire path
Applications
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
| Source IP | Destination IP | Destination Port | Protocol | Direction |
|---|---|---|---|---|
| IP address of the IIS Server | vuSmartMaps Collection/Ingress node IP | 443* | TCP | Inbound |
*Before providing the firewall requirements, please update the port based on the customer environment.
Configuring the Target
In order to gather your IIS Performance metrics and logs, ensure that the default website is enabled in IIS web server. Configure Application Pools in IIS, if not already done. Setup the IIS Logging format to collect additional telemetry from logs.
Configure Logs Collection from IIS Server
If the log path for the IIS Web Server is "-C:\inetpub\logs\LogFiles\W3SVC1\",this path will contain both access logs and Error Logs. IIS Web Server should be configured to generate logs in W3C format. This format centralizes all URL logs for a session in a single log file and logs each field with a space. In Logging section windows ,select "W3C Extended Log File Format" as the log file format. Click OK.
Configuration Steps
Metrics Collected
| Name | Description | Data Type |
|---|---|---|
| @timestamp | The timestamp in string format, likely when the event was logged. | String |
| timestamp | The timestamp in DateTime64 format for precise time logging. | DateTime64 |
| iis_webserver_process_cpu_usage_perc | Percentage of CPU usage by the IIS webserver process. | Float64 |
| iis_application_pool_process_cpu_usage_perc | Percentage of CPU usage by the IIS application pool process. | Float64 |
| iis_webserver_network_current_anonymous_users | The current number of anonymous users accessing the webserver. | UInt32 |
| iis_webserver_network_current_non_anonymous_users | The current number of authenticated (non-anonymous) users accessing the webserver. | UInt32 |
| iis_webserver_asp_net_application_restarts | Total number of ASP.NET application restarts. | UInt32 |
| iis_webserver_asp_net_request_wait_time | The wait time for ASP.NET requests in the queue. | UInt32 |
| iis_webserver_asp_net_application_pipeline_instance_count | Number of ASP.NET pipeline instances for the application. | Float64 |
| iis_webserver_asp_net_application_errors_total_pec | Total number of errors in the ASP.NET application. | Float64 |
| iis_webserver_asp_net_application_requests_in_application_queue | Number of requests waiting in the ASP.NET application queue. | Float64 |
| iis_website_network_current_connections | Number of current connections to the website. | UInt32 |
| iis_website_network_maximum_connections | Maximum number of connections to the website. | UInt32 |
| iis_website_network_bytes_received_per_sec | Number of bytes received per second by the website. | Float64 |
| iis_website_network_bytes_sent_per_sec | Number of bytes sent per second by the website. | Float64 |
| iis_website_name | The name of the IIS website. | String |
| beat_hostname | The hostname of the machine sending the metric data. | String |
| iis_application_pool_name | The name of the IIS application pool. | String |
| iis_application_pool_state | The current state of the application pool (e.g., running, stopped). | UInt32 |
| iis_website_network_total_connection_attempts | Total number of connection attempts made to the website. | UInt32 |
| iis_application_pool_worker_processes | Number of worker processes in the application pool. | Float64 |
| iis_webserver_network_get_requests_per_sec | Number of GET requests received per second by the webserver. | Float64 |
| iis_application_pool_total_startup_failed_worker_processes | Total number of worker processes that failed to start in the application pool. | Float64 |
| iis_application_pool_total_ping_failed_worker_processes | Total number of worker processes that failed ping checks. | Float64 |
| iis_application_pool_total_failed_worker_processes | Total number of failed worker processes in the application pool. | Float64 |
| iis_application_pool_total_shutdown_failed_worker_processes | Total number of worker processes that failed during shutdown. | Float64 |
| iis_application_pool_total_application_pool_recycles | Total number of application pool recycles (restarts). | Float64 |
| iis_application_pool_total_startup_failed_worker_processes_diff | Difference in failed worker processes during startup since last check. | Float64 |
| iis_application_pool_total_ping_failed_worker_processes_diff | Difference in failed worker processes due to ping failure since last check. | Float64 |
| iis_application_pool_total_failed_worker_processes_diff | Difference in total failed worker processes since last check. | Float64 |
| iis_application_pool_total_shutdown_failed_worker_processes_diff | Difference in failed worker processes during shutdown since last check. | Float64 |
| iis_application_pool_total_application_pool_recycles_diff | Difference in the number of application pool recycles since last check. | Float64 |
| iis_application_pool_rejected_requests | Total number of rejected requests in the application pool. | Float64 |
| iis_application_pool_current_queue_size | The current size of the application pool request queue. | Float64 |
| host | The host from which the data is collected. | String |
| target | The target system or environment for the metric data. | String |
| iis_webserver_network_post_requests_per_sec | Number of POST requests received per second by the webserver. | Float64 |
| iis_webserver_network_put_requests_per_sec | Number of PUT requests received per second by the webserver. | Float64 |
| iis_application_pool_uptime | The uptime of the IIS application pool in seconds. | Float64 |
| iis_website_network_post_requests_per_sec | Number of POST requests received per second by the website. | UInt64 |
| iis_website_network_put_requests_per_sec | Number of PUT requests received per second by the website. | UInt64 |
| iis_website_network_get_requests_per_sec | Number of GET requests received per second by the website. | Float64 |
| iis_website_network_service_uptime | The uptime of the IIS website service in seconds. | Float64 |
| topic_name | The topic or category associated with the metric data. | String |
| metricset_name | The name of the metric set being collected. | String |
| iis_webserver_cache_current_file_cache_memory_usage | The amount of memory used by the current file cache in the webserver. | UInt32 |
| iis_webserver_cache_output_cache_current_memory_usage | The amount of memory used by the output cache in the webserver. | UInt32 |
| iis_webserver_network_total_non_anonymous_users | The total number of non-anonymous users accessing the webserver. | UInt32 |
| iis_webserver_network_service_uptime | The uptime of the webserver network service in seconds. | Float64 |
| iis_webserver_process_page_faults_per_sec | The number of page faults per second in the IIS webserver process. | Float64 |
| iis_webserver_process_virtual_bytes | The amount of virtual memory used by the IIS webserver process. | Float64 |
| iis_webserver_process_handle_count | The number of handles used by the IIS webserver process. | Float64 |
| iis_webserver_process_working_set | The amount of physical memory used by the IIS webserver process. | Float64 |
| iis_webserver_process_io_write_operations_per_sec | The number of I/O write operations per second in the IIS webserver process. | Float64 |
| iis_webserver_process_io_read_operations_per_sec | The number of I/O read operations per second in the IIS webserver process. | Float64 |
| iis_webserver_asp_net_application_requests_executing | The number of ASP.NET application requests currently being executed. | Float64 |
| iis_webserver_asp_net_application_errors_total_per_sec | The total number of ASP.NET application errors per second. | Float64 |
| iis_webserver_network_total_post_requests | The total number of POST requests received by the webserver. | Float64 |
| iis_webserver_network_total_bytes_received | The total number of bytes received by the webserver. | Float64 |
| iis_webserver_network_total_anonymous_users | The total number of anonymous users accessing the webserver. | Float64 |
| message | The logged message or event details. | String |
| timestamp | The exact time when the event occurred, with high precision. | DateTime64 |
| host | The hostname of the server where the event was logged. | String |
| time_taken | The time taken to process the request, in milliseconds. | Float64 |
| sc_status | The HTTP status code returned by the server (e.g., 200, 404, 500). | UInt16 |
| cs_Referer | The URL of the referring web page that linked to the requested page. | String |
| cs_method | The HTTP method used for the request (e.g., GET, POST). | String |
| cs_uri_stem | The URI of the requested resource on the server. | String |
| c_ip | The IP address of the client making the request. | String |
| cs_username | The username of the client (if authenticated) making the request. | String |
| http-response | The content of the HTTP response sent back to the client. | String |
| hostname | The specific server or machine where the event originated. | String |
| target | The target environment or application for the logged event. | String |
| geo_city_name | The name of the city from which the request originated. | String |
| geo_country_name | The name of the country from which the request originated. | String |
| geo_timezone | The timezone of the client's geographical location. | String |
| s_ip | The server’s IP address responding to the request. | String |
| s_port | The port on the server used for the response. | String |
| sc_substatus | The substatus code for the HTTP response, providing more detailed status. | UInt16 |
| sc_win32_status | The Win32 status code, which is specific to Windows systems. | UInt16 |
| EventTime | The event timestamp for tracking when the event was recorded. | DateTime64 |
| doc_type | The document or content type associated with the request (e.g., HTML, JSON). | String |
| @timestamp | The timestamp in string format, likely when the event was logged. | String |
| iis_webservice_bytes_sent_per_sec | Measures the rate at which data is sent by the IIS web service, in bytes per second. | UInt64 |
| iis_webservice_bytes_total_per_sec | Measures the combined rate of bytes sent and received per second by the IIS web service. | UInt64 |
| iis_webservice_bytes_received_per_sec | Measures the rate at which data is received by the IIS web service, in bytes per second. | UInt64 |
| iis_webservice_connection_attempts_per_sec | Tracks the number of connection attempts to the IIS web service per second. | UInt64 |
| iis_webservice_logon_attempts_per_sec | Tracks the number of user logon attempts per second to the IIS web service. | UInt64 |
| iis_w3svc_w3wp_401_http_response_sent | Counts the total number of HTTP 401 (Unauthorized) responses sent by IIS worker processes. | UInt64 |
| iis_w3svc_w3wp_403_http_response_sent | Counts the total number of HTTP 403 (Forbidden) responses sent by IIS worker processes. | UInt64 |
| iis_w3svc_w3wp_500_http_response_sent | Counts the total number of HTTP 500 (Internal Server Error) responses sent by IIS worker processes. | UInt64 |
| iis_httpservicerequestqueue_current_queue_size | Indicates the current number of HTTP requests queued and waiting to be processed by IIS. | UInt64 |
| iis_httpservicerequestqueue_rejected_request_per_sec | Measures the number of HTTP requests rejected per second due to a full or overloaded request queue. | UInt64 |
| iis_httpservicerequestqueue_arrivalrate | Tracks the rate at which HTTP requests are arriving into the IIS request queue, in requests per second. | Float64 |
| iis_instance | Represents the name of the specific IIS instance (e.g., a website or application pool) from which the metric was collected. | String |
| iis_webservice_current_non_anonymous_users_per_sec | Represents the current non anonymous user | UInt64 |
| iis_webservice_current_anonymous_users | Represents the current anonymous user | UInt64 |
| iis_webserver_asp_net_application_name | Helps identify and group metrics per application instance. | String |
| iis_webserver_asp_net_requests_execution_time | captures the average execution time of requests processed by ASP.NET, which is critical for latency analysis. | Float64 |
| iis_application_pool_recent_worker_processes_failure | Tracks recent worker process failures in IIS application pools, offering early warning signs of crashes or instability. | Float64 |
