Monitoring the System
This section points to parameters that are useful for monitoring the health of the Paragon Active Assurance system.
System Parameters
Standard system parameters:
- CPU utilization
- Should stay below 80%
- Memory utilization, excluding cache and buffers
- Should stay below 80%
- Disk utilization
- Should stay below 80%
- Network interface load
- Should stay below 80%
Application Parameters
For Control Center, run the command
ncc status
The following parameters are of particular interest:
test_agent_appliance_online
: This indicates how many Test Agent Appliances are currently logged in to the server. The desirable numbers here are of course dependent on how you deploy the Test Agents.scheduled_call_latency
: This indicates how far behind schedule the background job processing is. Among other things, this processing collects results from Test Agents and generates periodic reports. The latency should stay below 10 s.
Licenses
The expiry date for the license activated on the server can be inspected with the command
ncc license show
In the output from this command, look for end_date
.
Services
The following Paragon Active Assurance services should normally be running:
- netrounds-callexecuter: Handles background tasks such as
- Periodically polling monitors: collecting measurement results, updating Test Agent configurations, and evaluating alarms
- Running scheduled tests
- Sending periodic reports
- netrounds-confd: Runs if ConfD has been installed. ConfD is used as an intermediary between the Paragon Active Assurance system and the NETCONF & YANG API. An orchestrator can use this API to configure network equipment and trigger measurements.
- netrounds-consolidated: Used to proxy internal communication between services.
- netrounds-license-daemon: From here Control Center learns what licenses to apply to the system. The license daemon uses the Juniper License SDK which is used across all Juniper products.
- netrounds-metrics: Runs if Streaming API or TimescaleDB is enabled. Receives metrics from Kafka, ingests these metrics into TimescaleDB, and pushes them to the Streaming API.
- netrounds-plugin: Plugins handles measurement tasks. This service enables plugins to be uploaded to Control Center independently of Control Center upgrades. See the in-app help under "Plugins".
- netrounds-probe-login: Server which exposes a set of functions to Test Agent Appliances so that they can notify this server about state changes.
- netrounds-ta3-compat: Needed to achieve full compatibility between Test Agent Applications and Control Center.
- netrounds-test-agent-gateway: Used to communicate with Test Agent Applications and forward messages between these and Kafka.
- netrounds-timescaledb: Runs if Streaming API or TimescaleDB is enabled. Time-series database extension for PostgreSQL. Uses a dedicated PostgreSQL database which is distinct from the one used for configuration.
- openvpn@netrounds: Used to communicate with Test Agent Appliances.
In addition, the following services related to Paragon Active Assurance should be running:
- apache2: Web server hosting the webapp and the REST API.
- kafka: Message bus for sharing data asynchronously between services.
- ntpd: Maintains the system time in synchronization with time servers using the Network Time Protocol (NTP).
- postgresql: Database for storing configuration and state for the system: basically everything except measurement results and OpenVPN keys.
- zookeeper: Centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. Zookeeper is relied on by Kafka.
Finally, it is a good idea to monitor the following system services which are relied on by Paragon Active Assurance:
- cron: Job scheduler.
- irqbalance: Distributes hardware interrupts across processors on a multiprocessor system.
Logs
- Webapp Logs
- Call Executer Logs
- Plugin Service Logs
- Metrics Service Logs
- TimescaleDB
- Kafka
- Zookeeper
- Custom Formatters
Webapp Logs
The file /var/log/apache/netrounds_access.log
contains all HTTP requests
made to the Control Center web GUI.
The file /var/log/apache/netrounds_error.log
contains all errors
reported by Apache for HTTP requests towards the Control Center web GUI. Console output
from the Control Center back-end is also in this file; by default, all logging is done by
the console.
The configuration of the logging is done using the Python logging module configuration schema (docs.python.org/2/library/logging.config.html#configuration-dictionary-schema).
Call Executer Logs
To see the logs for this service, you can use journalctl
, for example to
look at the logs from the last hour and then follow all incoming logs:
sudo journalctl -u netrounds-callexecuter.service --since "1 hour ago" --follow
Plugin Service Logs
For the plugin system you can look at the logs using:
sudo journalctl -u netrounds-plugin.service
Metrics Service Logs
These logs are only relevant if you have this feature enabled, which is the case if you are using the Streaming API or TimescaleDB.
sudo journalctl -u netrounds-metrics.service
TimescaleDB
To view TimescaleDB logs, run:
sudo journalctl -u netrounds-timescaledb.service
Kafka
To view Kafka logs, run:
sudo journalctl -u kafka
Zookeeper
To view Zookeeper logs, run:
sudo journalctl -u zookeeper
Custom Formatters
Paragon Active Assurance provides two custom formatters that yield additional information about log entries and thus should be favored over Python's default formatters:
- The formatter
netrounds.utils.loggers.ContextFormatter
providesrecord_tags
andcontext_tags
that provide additional information about the context of the log entry, for example what Test Agent the log entry is about. Colors are also supported. - The formatter
netrounds.thirdparty.logstash_formatter.ContextLogstashFormatterV1
outputs a JSON format compatible with Logstash.
The custom formatters are added by default in:
LOGGING['formatters']['context']
LOGGING['formatters']['context_color']
LOGGING['formatters']['logstash']