Microsoft IIS

Monitor Microsoft Internet Information Server (IIS) Web Application Server

Data Collection Setup

Metrics are collected via the IIS Administration API.
##Setting up the IIS Administration API
The IIS Administration API needs to be installed and configured on each monitored IIS server before data collection can occur.

Installing the Administration API

  1. Enable and start your Windows Server running IIS.
  2. As an Administrator, install the IIS Administration API from: https://manage.iis.net/get
  3. Restart the Windows Server running IIS.

📘

Check Port 55539 for Firewall Issues

Installing the IIS Administration API should automatically open port 55539, but we recommend ensuring it is opened prior to continuing.

366

Microsoft IIS Administration install page

Configuring API

  1. Go to directory: C:\Program Files\IIS Administration\Microsoft.IIS.Administration\config.

  2. Change the owner of the appsettings.json file from SYSTEM to Administrators group.

  3. Edit the appsettings.json file by configuring the following properties:

  • Set security.require_windows_authentication to false.
  • Set security.access_policy.api.users to Everyone.
  • Set security.access_policy.api.access_key to false. (NOTE: This will temporarily disable authentication, which will be re-enabled after generating an access token later on.)
  • Add the security.access_policy.api.read_only property and set it to true.
"security": {
    "require_windows_authentication": false,
  
    "access_policy": {
      "api": {
        "users": "Everyone",
        "access_key": false,
        "read_only": true
      },
    }
  },
  1. Restart the IIS Services

Network Requirements

Port: 55539 (TCP) Default connection to the IIS Administration API

Least Privileged User

Microsoft IIS Access Token

Assigning an IIS Least-Privileged User

In Microsoft's IIS Administration documentation, the Application Settings topic (Security section) discusses the default access settings:

BindPlane uses an access token for authentication. Setting the require_windows_authentication property to false as indicated in Configuring the IIS Administration API above allows the user to authenticate using that access token, which will be generated next in the Generating an Access Token section.

Adding the Windows user to the IIS API administrators and owners roles allows that user to generate the access token and execute requests to the API using that token.

Generating an Access Token

Next, you must generate an access token to be used for authentication

  1. Open https://localhost:55539/.
  2. Click on the ACCESS KEY link.
  3. Click the Create Access Key button. Set the key name and expiration period.
  4. Save the access key for use when configuring the IIS Source

Re-enabling Authentication

Now that your access token has been generated, you must go back into the appsettings.json file and re-enable authentication:

  1. Go to directory: C:\Program Files\IIS Administration\Microsoft.IIS.Administration\config
  2. Edit the appsettings.json file by configuring the following properties:

Set security.access_policy.api.access_key to true.

  1. Restart the IIS Administration API service.
"access_policy": {
      "api": {
        "users": "Everyone",
        "access_key": true,
        "read_only": true
      },
    }

Supported Versions

Microsoft Windows Server:

  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2

Microsoft IIS:

  • 10
  • 8.5
  • 8.0
  • 7.5

Connection Parameters

NameRequired?Description
HostRequiredThe Microsoft IIS FQDN, IP, or hostname to connect to.
PortThe port for communication to the IIS Administration Service API.
Access TokenRequired
SSL ConfigurationThe SSL mode to use when connecting to the target. Can be configured to not use SSL (No SSL), use SSL but do not verify the target's certificate (No Verify), and use SSL and verify the target's certificate (Verify).
Connection TimeoutThe number of seconds to allow for connecting to the target.
Enable Worker Processes

Metrics

Application

NameDescription
Application Pool IDThe id of the application pool.
Application Pool NameThe name of the application pool.
Application Pool StatusThe status of the application pool.
Enabled ProtocolsProtocols that requests can use to access the application.
IDThe id of the application.
LocationLocation of the application.
PathURL path of the application.
Physical PathPhysical path to the content for the virtual directory.
Website IDThe id of the website.
Website NameThe name of the website.
Website StatusThe status of the website.

Application Pool

NameDescription
ActionAction that IIS takes when a worker process exceeds its configured CPU limit
Active Requests (Requests)The number of requests that are currently being processed by the application pool.
Applications Enabled (32-Bit)Indicates whether worker processes serving the application pool will be in WOW64 (Windows on Windows64) mode.
Auto StartIndicates whether the application pool starts automatically when IIS starts.
Configuration Changed Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles due to a change in its configuration.
CPU Usage (%)The percentage of CPU being used by application pool processes.
Disable Overlapped RecycleIndicates whether the application pool recycle will happen such that the existing worker process exists before another worker process is created.
Disable Recycling For Configuration ChangesIndicates whether the application pool will not be recycled when its configuration is changed.
Failure Interval (Minutes)The time interval in minutes during which the specific number of worker process crashes must occur before the application pool is shut down by Rapid Fail Protection.
File Cache CountCurrent number of files whose content is in the usermode cache.
File Cache Hit Rate (%)Percentage of successful lookups in the user-mode file cache since the application pool started.
File Cache HitsNumber of successful lookups in the usermode file cache since the application pool started.
File Cache Memory Usage (Bytes)Current number of bytes used for the usermode file cache.
File Cache MissesNumber of unsuccessful look ups in the usermode file cache since the application pool started.
HandlesThe number of handles that are currently open in application pool processes.
IDThe id of the application pool.
Identity TypeIndicates whether the application pool is running as builtin account, or as a specific user identity.
Idle Timeout (Minutes)Amount of time in minutes a worker process will remain idle before it shuts down.
Idle Timeout ActionAction to perform when the Idle Timeout duration has been reached.
Installed Memory (Bytes)The total installed memory.
I/O Operations (Operations)The number of read and write operations performed by all application pool processes in the last second.
I/O Read Operations (Operations)The number of read operations performed by all application pool processes in the last second.
I/O Write Operations (Operations)The number of write operations performed by all application pool processes in the last second.
ISAPI Extension Unhealthy Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles because an ISAPI extension has reported itself as unhealthy.
Limit (%)Maximum percentage of CPU time that the worker process in an application pool are allowed to consume in period of time in Limit Interval
Limit Interval (Minutes)Reset period for CPU monitoring and throttling limits on the application pool.
Load Balancer CapabilitiesSpecifies behavior when a worker process cannot be started.
Load User ProfileSpecifies whether IIS loads the user profile for an application pool identity.
Manage Runtime VersionSpecific version of .NET CLR that is loaded by application pool.
Manual Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool has been manually recycled.
Maximum FailuresMaximum number of worker process crashes permitted before the application pool is shut down by Rapid Fail Protection.
Maximum Worker ProcessesMaximum number of worker processes permitted to service requests for the application pool.
NameThe name of the application pool.
Orphan Action ExecutableExecutable to run when a worker process is abandoned.
Orphan Action Executable ParametersParameters for the executable that is run when a worker process is abandoned.
Output Cache CountCurrent number of items in the output cache.
Output Cache Hit Rate (%)Percentage of successful lookups in the output cache since the application pool started.
Output Cache HitsNumber of successful lookups in the output cache since the application pool started.
Output Cache Memory Usage (Bytes)Current number of bytes used for the output cache.
Output Cache MissesNumber of unsuccessful lookups in the output cache since the application pool started.
Page FaultsThe number of page faults experienced by all application pool processes in the last second.
Ping Interval (Seconds)Period of time in seconds between health monitoring pings sent to the worker processes serving this application pool.
Ping Response Time (Seconds)Maximum time in seconds that worker process is given to respond to a health monitoring ping.
Pinging EnabledIndicates whether the worker processes serving this application pool are pinged periodically to ensure that they are still responsive.
Pipeline ModeIndicates whether ASP.NET runs in Classic Mode as an ISAPI extension, or in Integrated Mode where managed code is integrated into the request processing pipeline.
Private Memory (Bytes)The total private bytes being used by all application pool processes.
Private Memory Exceeded Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles after exceeding its private memory.
Private Memory Limit (Kilobytes)Maximum amount of private memory in KB a worker process can consume before causing the application pool to recycle.
Private Memory Usage (%)The percentage of system memory currently used as website process private bytes.
Private Working Memory (Bytes)The total private working set being used by all application pool processes.
Private Working Memory Usage (%)The percentage of system memory currently used as application pool private working set bytes.
Process CountThe number of processes being used by the application pool to process requests.
Process Orphaning EnabledIndicates whether an unresponsive worker process will be abandoned instead of terminated.
Processor Affinity EnabledIndicates whether CPU affinity is enabled for an application pool.
Processor Affinity MaskCPU affinity for an application pool.
Processor Affinity Mask (64-Bit Option)CPU affinity for an application pool (64bit option).
Queue LengthMaximum number of requests that will be queued for the application pool.
Rapid Fail Protection EnabledIndicates whether the application pool is shut down if there are a specific number of worker process crashes within a specific time period.
Regular Time Interval (Minutes)Period of time in minutes after which an application pool will recycle.
Request LimitMaximum number of requests an application pool can process before it is recycled.
Request Limit Exceeded Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles after exceeding its request limit.
Scheduled Interval Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles on its scheduled interval.
Scheduled Recycle TimesA set of local times when the application pool is recycled.
Scheduled Time Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles at a scheduled time.
Served Requests (Requests)The number of requests that have been served in the past second.
Shutdown ExecutableExecutable to run when an application pool is shut down by Rapid Fail Protection.
Shutdown Executable ParametersParameters for the executable to run when an application pool is shut down by Rapid Fail Protection.
Shutdown Time Limit (Seconds)Period of time in seconds a worker process is given to finish processing requests and shut down.
Startup Time Limit (Seconds)Period of time in seconds a worker process is given to start up and initialize.
StatusThe status of the application pool.
Thread CountThe number of threads currently active in application pool processes.
Total Files CachedNumber of files whose content was ever added to the usermode cache since the application pool started.
Total Requests (Requests)The number of requests that have been served since the application pool started.
Total URIs Cached (Blocks)Number of URI information blocks that have been added to the usermode cache since the application pool started.
URI Cache Count (Blocks)Number of URI information blocks that are currently in the usermode cache.
URI Cache Hit Rate (%)Percentage of successful look ups in the user-mode URI cache since the application pool started.
URI Cache HitsNumber of successful look ups in the usermode URI cache since the application pool started.
URI Cache MissesNumber of unsuccessful look ups in the usermode URI cache since the application pool started.
UsernameUsername of an application pool identity.
Virtual Memory Limit (Kilobytes)Maximum amount of virtual memory in KB a worker process can consume before causing the application pool to recycle.
Virtual Memory Limit Exceeded Recycle Logging EnabledIndicates whether an event log entry is generated when the application pool recycles after exceeding its virtual memory limit.

Virtual Directory

NameDescription
Application IDThe id of the application.
Application LocationThe location of the application.
Application PathThe URL path for the application.
IDThe id of the virtual directory.
LocationThe location of the virtual directory.
Logon MethodType of logon operation to perform when calling LogonUser to acquire the user token impersonated to access the physical path for the virtual directory.
PathThe URL path of the application.
Physical PathThe physical path to the content for the virtual directory.
UsernameUser identity that should be impersonated when accessing the physical path for the virtual directory.
Website IDThe id of the website.
Website NameThe name of the website.
Website StatusThe status of the website.

Web Server

NameDescription
Active Requests (Requests)The number of requests that are currently being processed by the web server.
Connection AttemptsThe number of client connections that have been attempted in the last second.
CPU Usage (%)The percentage of CPU being used by web server processes.
Current Connections (Connections)The number of active connections that are open on the web server.
File Cache CountCurrent number of files whose content is in the user-mode cache.
File Cache Hit Rate (%)Percentage of successful lookups in the user-mode file cache since the web server started.
File Cache HitsNumber of successful lookups in the user-mode file cache since the web server started.
File Cache Memory Usage (Bytes)Current number of bytes used for the user-mode file cache.
File Cache MissesNumber of unsuccessful look ups in the user-mode file cache since the web server started.
FQDNsThe FQDN of the web server.
HandlesThe number of handles that are currently open in web serve processes.
HostnameThe hostname of the web server.
IDThe id of the web server.
Installed Memory (Bytes)The total installed memory.
I/O Operations (Operations)The number of read and write operations performed by all application pool processes in the last second.
I/O Read Operations (Operations)The number of read operations performed by all web server processes in the last second.
I/O Write Operations (Operations)The number of write operations performed by all web server processes in the last second.
IP AddressesThe IP address of the web server.
NameThe name of the web server.
Network Traffic (Bytes)The number of bytes that the web server sent and received in the last second.
Output Cache CountCurrent number of items in the output cache.
Output Cache Hit Rate (%)Percentage of successful lookups in the output cache since the web server started.
Output Cache HitsNumber of successful lookups in the output cache since the web server started.
Output Cache Memory Usage (Bytes)Current number of bytes used for the output cache.
Output Cache MissesNumber of unsuccessful lookups in the output cache since the web server started.
Page FaultsThe number of page faults experienced by all web server processes in the last second.
Private Memory (Bytes)The total private bytes being used by all web server processes.
Private Memory Usage (%)The percentage of system memory currently used as web server process private bytes.
Private Working Memory (Bytes)The total private working set being used by all web server processes.
Private Working Memory Usage (%)The percentage of system memory currently used as web server process private working set bytes.
Process CountThe number of processes being used by the web server to process requests.
Received Traffic (Bytes)The number of bytes that the web server received in the last second.
Sent Traffic (Bytes)The number of bytes that the web server sent in the last second.
Served Requests (Requests)The number of requests that have been served in the past second.
StatusThe status of the web server.
Supports SNIIndicates whether web server supports server name indicator.
System CPU Usage (%)The percentage of CPU being used by the entire system. Note that this value is an instantaneous measurement that, depending on timing, may be impacted by remote monitoring calls.
System Memory In Use (Bytes)The total memory in use by the entire system.
Thread CountThe number of threads currently active in web server processes.
Total Connection AttemptsThe number of client connections that have been attempted since the web server started.
Total Files CachedNumber of files whose content was ever added to the user-mode cache since the web server started.
Total Requests (Requests)The number of requests that have been served since the web server started.
Total Traffic Received (Bytes)The number of bytes received since the web server started.
Total Traffic Sent (Bytes)The number of bytes sent since the web server started.
Total URIs Cached (Blocks)Number of URI information blocks that have been added to the user-mode cache since the web server started.
URI Cache Count (Blocks)Number of URI information blocks that are currently in the user-mode cache.
URI Cache Hit Rate (%)Percentage of successful look ups in the user-mode URI cache since the web server started.
URI Cache HitsNumber of successful look ups in the user-mode URI cache since the web server started.
URI Cache MissesNumber of unsuccessful look ups in the user-mode URI cache since the web server started.
VersionThe version of the web server.

Website

NameDescription
Active RequestsThe number of requests that are currently being processed by the website.
BindingsCombination of IP address, port and host name that HTTP.sys on for incoming requests.
Connection AttemptsThe number of client connections that have been attempted in the last second.
Connection Timeout (Seconds)Period of time a connection can remain inactive before being disconnected.
CPU Usage (%)The percentage of CPU being used by website processes.
Current ConnectionsThe number of active connections that are open on the website.
Enabled ProtocolsSpecifies the protocols that requests can use to access an application.
File Cache CountCurrent number of files whose content is in the user-mode cache.
File Cache Hit Rate (%)Percentage of successful lookups in the user-mode file cache since the website started.
File Cache HitsNumber of successful lookups in the user-mode file cache since the website started.
File Cache Memory Usage (Bytes)Current number of bytes used for the user-mode file cache.
File Cache MissesNumber of unsuccessful look ups in the user-mode file cache since the website started.
HandlesThe number of handles that are currently open in website processes.
IDThe id of the website.
Installed Memory (Bytes)The total installed memory.
I/O Operations (Operations)The number of read and write operations performed by all application pool processes in the last second.
I/O Read Operations (Operations)The number of read operations performed by all website processes in the last second.
I/O Write Operations (Operations)The number of write operations performed by all website processes in the last second.
KeyA unique numeric identifier of the website.
Maximum Bandwidth (Bytes per Second)Maximum network bandwidth to which the website traffic is throttled.
Maximum ConnectionsMaximum number of concurrent connections.
Maximum URL SegmentsMaximum number of segments permitted in a URL.
NameA unique name of the website.
Network Traffic (Bytes)The number of bytes that the web server sent and received in the last second.
Output Cache CountCurrent number of items in the output cache.
Output Cache Hit Rate (%)Percentage of successful lookups in the output cache since the website started.
Output Cache HitsNumber of successful lookups in the output cache since the website started.
Output Cache Memory Usage (Bytes)Current number of bytes used for the output cache.
Output Cache MissesNumber of unsuccessful lookups in the output cache since the website started.
Page FaultsThe number of page faults experienced by all website processes in the last second.
Physical PathThe physical path to the content for the virtual directory.
Private Memory (Bytes)The total private bytes being used by website processes.
Private Memory Usage (%)The percentage of system memory currently used as website process private bytes.
Private Working Memory (Bytes)The total private working set being used by website processes.
Private Working Memory Usage (%)The percentage of system memory currently used as website process private working set bytes.
Process CountThe number of processes being used by the website to process requests.
Received Traffic (Bytes)The number of bytes that the website received in the last second.
Sent Traffic (Bytes)The number of bytes that the website sent in the last second.
Served RequestsThe number of requests that have been served in the past second.
Server Auto StartIndicates if the server instance should start automatically when the service is started.
StatusThe status of the website.
Thread CountThe number of threads currently active in website processes.
Total Connection AttemptsThe number of client connections that have been attempted since the website started.
Total Files CachedNumber of files whose content was ever added to the user-mode cache since the website started.
Total RequestsThe number of requests that have been served since the website started.
Total Traffic Received (Bytes)The number of bytes received since the website started.
Total Traffic Sent (Bytes)The number of bytes sent since the website started.
Total URIs Cached (Blocks)Number of URI information blocks that have been added to the user-mode cache since the website started.
Uptime (Seconds)The number of seconds that have elapsed since the web site started.
URI Cache Count (Blocks)Number of URI information blocks that are currently in the user-mode cache.
URI Cache Hit Rate (%)Percentage of successful look ups in the user-mode URI cache since the website started.
URI Cache HitsNumber of successful look ups in the user-mode URI cache since the website started.
URI Cache MissesNumber of unsuccessful look ups in the user-mode URI cache since the website started.

Worker Process

NameDescription
Application Pool IDThe id of the application pool under which process is running.
Application Pool NameThe name of the application pool under which process is running.
Application Pool StatusThe status of the application pool under which process is running.
IDThe id of the worker process.
NameThe name of the worker process.
Peak Virtual Memory Size (Bytes)Maximum virtual memory used by worker process.
Peak Working Set (Bytes)Maximum working set used by worker process.
Private Memory Size (Bytes)The private memory being used by worker process.
Process GUIDThe process guid of the worker process.
Process IDThe process id of the worker process.
Start TimeThe time when worker process is started.
StatusThe status of the worker process.
Virtual Memory Size (Bytes)The virtual memory being used by worker process.
Working Set (Bytes)The working set being used by worker process.