Console Light Web Monitoring Panel#

Introduction#

Angie provides a wide range of possibilities to monitor its work; in addition to the metrics API and the http_prometheus module, you can use a visual console that installs beside the server.

Console Light is a lightweight, real-time activity monitoring interface that displays key server performance metrics. The console is based on the API capabilities of Angie; activity monitoring data is pulled in real time. In addition, the console allows you to dynamically modify Angie configuration if the API itself provides this capability.

Example of a deployed and configured console: https://console.angie.software/

Installation and configuration#

Console Light is published as angie-console-light (Angie) and angie-pro-console-light (Angie PRO) in our repositories and can be installed like any other package; also, you can download the source code from our website or GitHub. Current version is 1.4.0.

After installation, configure the console by adding the following location inside a server block in the configuration file (mind the comments):

location /console/ {

    # Local access only
    allow 127.0.0.1;
    deny all;

    auto_redirect on;

    alias /usr/share/angie-console-light/html/;
    # FreeBSD only:
    # alias /usr/local/www/angie-console-light/html/;
    index index.html;

    location /console/api/ {
        api /status/;
    }

    # For editing features to work after authentication (PRO only)
    location /console/api/config/ {

        auth_basic           "Protected site";
        auth_basic_user_file conf/htpasswd;

        api /config/;
    }
}

Don't forget to apply the modified configuration:

$ sudo angie -t && sudo service angie reload

After this, the console will be available on the server specified by the server block, at the path specified for the location; above, the path is set as /console/.

As in the sample above, authentication can be enabled for an arbitrary API section, for example:

location /console/server_zones/ {
    auth_basic           "Protected site";
    auth_basic_user_file conf/htpasswd;
}

You can also restrict access to an arbitrary section of the configured console location, for example:

location /console/api/resolvers/ {
    deny all;
}

Interface#

The console is a single screen with a set of tabs, each containing several widgets with monitoring data.

Hint

In the sections below, the interface elements are described from left to right.

Angie Tab#

Console Light - main tab


This is the main tab where the main Angie monitoring indicators based on data from several API sections are displayed.

About Widget#

Displays Angie version number with a link to the relevant documentation set, as well as the server address and the last restart time.

Besides, if the api_config_files directive is enabled, the Configs link opens a list of configuration files that were loaded on the server. Each file can be then opened in a compact view with syntax highlighting.

Connections Widget#

Displays basic server connection statistics, generated from the /status/connections/ API section:

Current

Current connections

Accepted/s

Connections accepted per second

Active

Active connections

Idle

Idle connections

Dropped

Dropped connections

Also available:

Accepted

Total connections accepted since the last server restart

HTTP Zones Widget#

Attention

The widget requires setting the status_zone directive in a server or location context.

Displays shared memory zone statistics of the http context, generated from the /status/http/server_zones/ API section:

Total

Total zones

Problems

Problematic zones

Traffic

Total incoming and outgoing traffic

HTTP Upstreams Widget#

Attention

The widget requires setting the upstream directive in the http context.

Displays http context upstream statistics, generated from the /status/http/upstreams/ API section:

Total

Total upstreams

Problems

Problematic upstreams

Servers

Server statistics by state

TCP/UDP Zones Widget#

Attention

The widget requires setting the following directives:

Example:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

Displays shared memory zone statistics of the stream context, generated from the /status/stream/server_zones/ API section:

Conn total

Total client connections

Conn current

Current client connections

Conn/s

Connections handled per second

TCP/UDP Upstreams Widget#

Attention

The widget requires setting the upstream directive in the stream context.

Displays upstream statistics of the stream context, generated from the /status/stream/upstreams/ API section:

Total

Total upstreams

Problems

Problematic upstreams

Servers

Server statistics by state

HTTP Zones Tab#

Attention

The tab requires setting the status_zone directive in a server or location context.

Server Zones Section#

Console Light - "Server Zones" section on the "HTTP Zones" tab


Summarizes shared memory zone monitoring statistics for the server context in http, generated from the /status/http/server_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones alphabetically or in configuration order.

Requests

Total number of requests as well as the number of requests per second

Responses

Number of responses by status code, as well as the total number of responses

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

SSL

Cumulative counts of: - successful SSL handshakes; - SSL sessions reused; - SSL handshakes with expired timeout; - unsuccessful SSL handshakes.

Location Zones Section#

Console Light - "Location Zones" section on the "HTTP Zones" tab


Summarizes statistics of shared memory zone monitoring for the location context in http, generated from the /status/http/location_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones alphabetically or in configuration order.

Requests

Total number of requests as well as the number of requests per second

Responses

Number of responses by status code, as well as the total number of responses

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Limit Conn Section#

Console Light - "Limit Conn" section on the "HTTP Zones" tab


Displays statistics of limit_conn zones in http context, generated from the /status/http/limit_conns/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

Limit Req Section#

Console Light - "Limit Req" section on the "HTTP Zones" tab


Displays statistics of limit_reqs zones in the http context, generated from the /status/http/limit_reqs/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Delayed

Total delayed connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

HTTP Upstreams Tab#

Console Light - "HTTP Upstreams" tab


Attention

The tab requires setting the upstream directive in the http context.

This tab summarizes upstream monitoring statistics for the http context, generated from the /status/http/upstreams/ API section.

  • The Show upstreams list button toggles a summary of upstreams with the number of problematic upstreams and servers.

  • The Failed only switch toggles the output mode focused on problematic upstreams.

  • The edit button (Angie PRO only) toggles the upstream editing interface.

  • The drop-down list on the right side of each upstream table allows you to filter its servers by state (Up, Failed, Checking, Down).

For each upstream, in addition to its name and shared memory zone utilization ratio, the following data is presented:

Server

Names, downtimes, and weights of upstream servers

Hint

Click the arrow next to Server to sort the servers by their state or configuration order.

Requests

Total number and processing speed of requests

Responses

Number of responses by status code

Conns

Number of active connections and their maximum limit, if set

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Server checks

Unsuccessful attempts to reach the server and the number of times the server was considered unavailable (health object in the API)

Health monitors (Angie PRO only)

Total server probes, unsuccessful probes, and the time of the last probe

Editing upstreams#

For Angie PRO, there is an edit button next to each upstream; when clicked, it brings up two more buttons:

Edit selected

Edits selected servers within an upstream. Allows the following parameters to be set for the servers at once: weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

You can also delete the selected servers.

Console Light - editing servers on the "HTTP Upstreams" tab


Add server

Adds a server to the upstream. Allows you to set the following parameters: address (address), backup (backup or not), weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

Console Light - adding a server on the "HTTP Upstreams" tab


TCP/UDP Zones Tab#

Attention

The tab requires setting the following directives:

Example:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

TCP/UDP Zones Section#

Console Light - "TCP/UDP Zones" tab


Summarizes monitoring statistics of shared memory zones of the server context in stream, generated from the /status/stream/server_zones/ API section. The following data is presented for each zone:

Zone

Zone name

Connections

Current and total connections, as well as connections per second

Sessions

Number of sessions by status code, as well as total sessions

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

SSL

Cumulative counts of: - successful SSL handshakes; - unsuccessful SSL handshakes; - SSL sessions reused; - SSL handshakes with expired timeout.

Limit Conn Section#

Console Light - "Limit Conn" section on the "TCP/UDP Zones" tab


Displays statistics of limit_conn zones in stream context, generated from the /status/stream/limit_conns/ API section. The following data is provided for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the chart with the following indicators.

Passed

Total proxied connections

Rejected

Total rejected connections

Exhausted

Total connections dropped due to zone storage being exhausted

Skipped

Total connections passed with a key of zero or greater than 255 bytes

TCP/UDP Upstreams Tab#

Console Light - "TCP/UDP Upstreams" tab


Attention

The tab requires setting the upstream directive in the stream context.

This tab summarizes upstream monitoring statistics for the stream context, generated from the /status/stream/upstreams/ API section.

  • The Show upstreams list button toggles a summary of upstreams with the number of problematic upstreams and servers.

  • The Failed only switch toggles the output mode focused on problematic upstreams.

  • The edit button (Angie PRO only) toggles the upstream editing interface.

  • The drop-down list on the right side of each upstream table allows you to filter its servers by state (Up, Failed, Checking, Down).

For each upstream, in addition to its name and shared memory zone utilization ratio, the following data is presented:

Server

Names, downtimes, and weights of upstream servers

Hint

Click the arrow next to Server to sort the servers by their state or configuration order.

Requests

Total number and processing speed of requests

Responses

Number of responses by status code

Conns

Number of active connections and their maximum limit, if set

Traffic

Outgoing and incoming traffic rates, as well as total volumes of outgoing and incoming traffic

Server checks

Unsuccessful attempts to reach the server and the number of times the server was considered unavailable (health object in the API)

Editing upstreams#

For Angie PRO, there is an edit button next to each upstream; when clicked, it brings up two more buttons:

Edit selected

Edits selected servers within an upstream. Allows the following parameters to be set for the servers at once: weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

You can also delete the selected servers.

Console Light - editing servers on the "TCP/UDP Upstreams" tab


Add server

Adds a server to the upstream. Allows you to set the following parameters: address (address), backup (backup or not), weight (weight), max_conns (maximum limit of connections), max_fails (maximum limit of failures that designates the server unavailable), fail_timeout (failures accumulation window for max_fails), state (enabled or disabled).

Console Light - adding a server on the "TCP/UDP Upstreams" tab


Caches Tab#

Console Light - "Caches" tab


Attention

The tab requires setting the proxy_cache_path directive in the http context.

Summarizes monitoring statistics of proxy_cache zones of the http context, generated from the /status/http/caches/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the icon next to Zone to open or close the shard lists for all zones that have them.

State

Cache state: cold (metadata loading) or hot (metadata loaded)

Memory usage

Memory utilization ratio

Max size

Maximum memory size

Used

Used memory size

Disk usage

Disk utilization ratio

Traffic

Traffic transferred from the cache, written to the cache, and returned bypassing the cache

Hit ratio

Cache hit ratio (traffic transferred from the cache to total volume) during the time window configured in settings

If sharding is enabled for a zone, it is labeled as a drop-down list that contains individual shards:

Path

Shard disk path

State

Shard state: cold (metadata loading) or hot (metadata loaded)

Max size

Maximum memory size

Used

Used memory size

Disk usage

Disk utilization ratio

Shared Zones Tab#

Console Light - "Shared Zones" tab


This tab summarizes monitoring statistics for all shared memory zones across all contexts. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones by their size or configuration order.

Total memory pages

Total memory pages

Used memory pages

Total memory pages used

Memory usage

Memory utilization ratio for the zone

Resolvers Tab#

Console Light - "Resolvers" tab


Attention

The tab requires setting the resolver directive in the http context.

Summarizes statistics of queries in the DNS shared memory zones, generated from the /status/resolvers/ API section. The following data is presented for each zone:

Zone

Zone name

Hint

Click the arrow next to Zone to sort the zones by their state or configuration order.

Requests

Number of A and AAAA, SRV, or PTR requests

Responses

Number of responses by relevant codes (Format error, Server failure, Name Error, Not Implemented, Refused, and others)

Settings Widget#

Console Light - "Settings" widget


Allows you to configure the frequency of data updates in the console, the 4xx status threshold ratio that makes yellow warnings appear in the corresponding server response sections, as well as a time window for calculating the ratio of successful cache hits (Hit ratio) and the error accounting threshold for the resolver that turns it red.

Console control pane#

Console Light - control buttons on the "Angie" tab


All tabs have a pull-aside bar in the middle left of the page with two buttons; the top one pauses or restarts data updates from the API, and the bottom one allows you to update the data manually when the update is paused.