Documentation forSolarWinds Observability

Database monitoring system requirements

Requirements to use the SolarWinds Observability Agent to monitor your database depend on several variables, such as:

  • The type of database you are monitoring.
  • The volume of data to display in the browser.

This topic contains:

SolarWinds Observability general requirements

The following table lists browser requirements and recommendations for using the SolarWinds Observability web application.

Performance of the computer and internet speed where you open the browser significantly influences the speed of SolarWinds Observability.

Software Requirements
Web browsers

SolarWinds Observability supports the two most recent versions of the following web browsers:

  • Apple Safari
  • Google Chrome
  • Microsoft Edge (new Edge versions based on Chromium)
  • Mozilla Firefox
Browser requirements

The following must be enabled in your browser:

  • JavaScript
  • Cookies

Firewall or access control requirements

The browser you are using to access SolarWinds Observability's basic features must have unrestricted access to the following locations:

If monitoring database entities, the SolarWinds Observability Agent must be able to communicate with the SolarWinds Observability collector to report collected data.

Open your firewall or access control configuration to permit TCP/HTTPS/TLS outbound connections to the following endpoints (where xx-yy is determined by the URL you use to access SolarWinds Observability, described in Data centers and endpoint URIs) using port 443:

  • uams.xx-yy.cloud.solarwinds.com
  • otel.collector.xx-yy.cloud.solarwinds.com
  • agent-plugins.cloud.solarwinds.com

If your firewall or access control requirements do not allow such connections, configure the SolarWinds Observability Agent to send data through a proxy. See Configure proxy for SolarWinds Observability Agents

Operating systems and distributions supported for the script-based installation of SolarWinds Observability Agent

The SolarWinds Observability Agent is required for monitoring self-managed hosts and databases.

If an operating system/distribution is not in the list, download and run the installer using the PowerShell command provided in the Add Data wizard.

Windows

  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
  • Windows 10
  • Windows 11

On Windows Server 2012, download the MSI file manually and run it using the provided PowerShell command. Script-based installation has issues with establishing a connection to download SolarWinds Observability Agent binaries.

Linux

SolarWinds Observability Agents work on most Linux systems. The following lists the platforms that have been tested and verified to work with the Agents:

  • Amazon Linux 2 and later
  • CentOS 7 and later
  • Debian 10 and later
  • Fedora 32 and later
  • Kali 2021 and later
  • Oracle Linux 8 and later
  • RedHat 7.1 and later
  • Rocky Linux 8 and later
  • Ubuntu 18.04 and later

User roles and permissions for SolarWinds Observability Agent

Root privileges are required for the following roles/users:

  • For the Agent installation. During the Agent installation, the swagent user is created.
  • The swagent user needs root privileges for the Agent to monitor processes on the host.

Required roles and privileges

Specific roles and privileges are necessary for your database to be monitored by SolarWinds Observability. See the following sections for details, including scripts to help create users with the right permissions.

MongoDB instance roles and privileges

SolarWinds Observability Agent supports self-hosted MongoDB instances and MongoDB Atlas instances.

MongoDB Self-hosted

To monitor MongoDB with SolarWinds Observability your user must have the clusterMonitor and readAnyDatabase roles.

Create a user with these roles by executing the following script on your MongoDB console client:

use admin
db.createUser(
   {
     user: "dbo",
     pwd: "dbo_password",
     roles: [ "clusterMonitor", "readAnyDatabase" ]
   }
)

Replace dbo and dbo_password with the values you want to use in your setup.

The roles are used for the following purposes:

User role Description
clusterMonitor Required for running commands like serverStatus, replSetGetStatus, and currentOp, as well as fetching database/collection stats for the instance.
readAnyDatabase

Required for fetching query plans for operations, doing index analysis, and retrieving collection sizes.

The SolarWinds Observability Agent supports query capturing for MongoDB self-hosted in the following modes:

Mode Description
On Host The On Host capture mode uses the packet capture method.
Log The Log capture mode uses the MongoDB Log capture method.
Profiler The Profiler capture mode uses the MongoDB profiler.
On Host

The On Host capture mode uses the packet capture method.

Npcap must be installed if you are monitoring databases for on-host data gathering on a Windows Installation.

Log

The Log capture mode uses the MongoDB Log capture method.

To monitor MongoDB queries using the Log option, run the following command on your MongoDB instance:

db.setProfilingLevel(0,0)
Profiler

The Profiler capture mode uses the MongoDB profiler.

To monitor MongoDB queries using the Profiler, the following needs to be added to your MongoDB config file located at /etc/mongod.conf. You will then need to restart the server.

operationProfiling:
mode: slowOp
# You may want to gradually reduce slowOpThresholdMs in production,
# or start with slowOpSampleRate set to a fraction of traffic
# and increase it over time, to avoid adding too much overhead
slowOpThresholdMs: 0
slowOpSampleRate: 1

MongoDB Atlas

To monitor MongoDB with SolarWinds Observability your user must have the clusterMonitor and readAnyDatabase roles.

Create a user with these roles by executing the following script on your MongoDB console client:

use admin
db.createUser(
   {
     user: "dbo",
     pwd: "dbo_password",
     roles: [ "clusterMonitor", "readAnyDatabase" ]
   }
)

Replace dbo and dbo_password with the values you want to use in your setup.

The roles are used for the following purposes:

User role Description
clusterMonitor Required for running commands like serverStatus, replSetGetStatus, and currentOp, as well as fetching database/collection stats for the instance.
readAnyDatabase

Required for fetching query plans for operations, doing index analysis, and retrieving collection sizes.

The SolarWinds Observability Agent supports query capturing for MongoDB Atlas in the following modes:

Mode Description
On Host The On Host capture mode uses the packet capture method.
Log The Log capture mode uses the MongoDB Log capture method.
Profiler The Profiler capture mode uses the MongoDB profiler.
On Host

The On Host capture mode uses the packet capture method.

Npcap must be installed if you are monitoring databases for on-host data gathering on a Windows Installation.

Log

The Log capture mode uses the MongoDB Log capture method.

To monitor MongoDB queries using the Log option, run the following command on your MongoDB instance:

db.setProfilingLevel(0,0)
Profiler

The Profiler capture mode uses the MongoDB profiler.

To monitor MongoDB queries using the Profiler, the following needs to be added to your MongoDB config file located at /etc/mongod.conf. You will then need to restart the server.

operationProfiling:
mode: slowOp
# You may want to gradually reduce slowOpThresholdMs in production,
# or start with slowOpSampleRate set to a fraction of traffic
# and increase it over time, to avoid adding too much overhead
slowOpThresholdMs: 0
slowOpSampleRate: 1

MySQL database privileges

SolarWinds Observability Agent supports monitoring the following MySQL database instances:

MySQL Setup for all types

Create a user account in MySQL for the SolarWinds Observability Agent to use. If you already have a user with the correct privileges that you wish to use, then you may skip this step.

The agent runs commands such as SHOW STATUS, and needs at least the listed privileges. If you would like to use a heartbeat table to track replication delay, check with support for more details.

Replace dbo and dbo_password with the values you want to use in your setup.

The following privileges are required to monitor your MySQL database with SolarWinds Observability.

CREATE USER 'dbo'@'%' IDENTIFIED BY '●●●●●●●●';
GRANT PROCESS, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'dbo'@'%';
GRANT DROP ON performance_schema.events_statements_summary_by_digest TO 'dbo'@'%';

Privilege Explanation
SELECT ON *.* This portion of the script is necessary for running EXPLAIN to capture execution plans for query samples. In the case of off-host monitoring, we also need SELECT privileges to retrieve query information from the PERFORMANCE_SCHEMA.
PROCESS ON *.* This portion of the script is necessary for running SHOW PROCESSLIST, SHOW ENGINE INNODB STATUS, and equivalent statements against INFORMATION_SCHEMA and PERFORMANCE_SCHEMA tables.
SHOW VIEW This portion of the script is necessary for running EXPLAIN on queries which use a view.
REPLICATION CLIENT ON *.* This portion of the script is necessary to see replication failures and failure errors.

If you have SELECT ... INTO OUTFILE statements, the FILE privilege is required in order to EXPLAIN those queries.

You can optionally give the SolarWinds Observability user INSERT, UPDATE, and DELETE privileges, which will allow SolarWinds Observability to run EXPLAIN on those kinds of queries.

These privileges are only used to run EXPLAIN.
See the MySQL Azure DB system requirements for instructions about enabling performance_schema and events_statements_history_long for MySQL on Azure DB.

MySQL self-hosted

Follow the common setup instructions to create your MySQL user with the proper privileges to monitor your MySQL database with SolarWinds Observability.

Enabling PERFORMANCE_SCHEMA on MySQL

Enable the PERFORMANCE_SCHEMA in a self-hosted MySQL server. Add the following line to your my.cnf configuration file under the [mysqld] section:

performance_schema

The statements_digest and events_statements_history_long consumers need to be enabled. Run the following query for all setups except MySQL on Azure DB:

UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name in ('statements_digest',
'events_statements_history_long');
See the MySQL Azure DB system requirements for instructions about enabling performance_schema and events_statements_history_long for MySQL on Azure DB.

If you enable the consumers and restart your server they may no longer be enabled upon restart. To ensure this setting persists, add the following to your my.cnf file:

performance-schema-consumer-statements-digest=ON performance-schema-consumer-events-statements-history-long=ON

MySQL on Amazon RDS

Follow the common setup instructions to create your MySQL user with the proper privileges to monitor your MySQL database with SolarWinds Observability.

For Amazon RDS MySQL instances complete the following steps:

  1. Create a new custom DB Parameter Group in the RDS Dashboard, or modify an existing one.

  2. Set option performance_schema = 1

  3. Apply the parameter group.

  4. Restart the server instance.

MySQL on Amazon Aurora

Follow the common setup instructions to create your MySQL user with the proper privileges to monitor your MySQL database with SolarWinds Observability.

For Amazon Aurora MySQL instances complete the following steps:

  1. Create a new custom DB Parameter Group in the RDS Dashboard, or modify an existing one.

  2. Set option performance_schema = 1

  3. Apply the parameter group.

  4. Restart the server instance.

For an Amazon Aurora cluster, use on the instance endpoints and not the cluster endpoints.

MySQL on Google Cloud SQL

Follow the common setup instructions to create your MySQL user with the proper privileges to monitor your MySQL database with SolarWinds Observability.

For Google Cloud MySQL instances complete the following steps:

  1. Under Customize Instance, click Add a Database Flag.

  2. Select the performance_schema flag and set the value to On.

  3. Save the configuration.

  4. Restart the instance for the configuration changes to take effect.

MySQL on Azure DB

Follow the common setup instructions to create your MySQL user with the proper privileges to monitor your MySQL database with SolarWinds Observability.

performance_schema and events_statements_history_long consumer need to be enabled. Go to Server Parameters in your MySQL Azure DB Settings and set events_statements_history_long to ON. Save your changes and restart your server to enable sample collection.

For Azure DB MySQL instances, the user requires the SELECT, and UPDATE privileges on performance_schema.

For Azure DB MySQL instances, the require_secure_transport parameters is set to ON by default. You must disable the require_schema_transport parameter or adjust your SSL certificate. To adjust your SSL certificate in the Azure UI, complete the following:

  1. Go to Networking in your Azure MySQL DB UI and download the SSL Certificate.

  2. Put the SSL Certificate on the host where the Agent is running.

  3. Add the SSL Authority path for the downloaded SSL Certificate in SolarWinds Observability.

PostgreSQL database requirements

SolarWinds Observability Agent supports monitoring the following PostgreSQL database instances:

PostgreSQL setup for all types

The monitoring user must have the SUPERUSER, rds_superuser, or pg_monitor role. Use the following statements to create a user with these roles on your PostgreSQL instance:

CREATE ROLE dbo NOCREATEDB NOCREATEROLE INHERIT LOGIN PASSWORD '<password here>';
GRANT SUPERUSER TO dbo;
GRANT ALL privileges ON ALL TABLES IN SCHEMA public to SUPERUSER;

The SUPERUSER privilege is required to:

  • fetch data from pg_stat_activity

  • show EXPLAIN / execution plans

  • show lock metrics

SUPERUSER or rds_superuser is required for remote monitoring because the pg_stat_statements extension requires this privilege to view query text for all users.

Ensure the pg_stat_statements configuration is present for your PostgreSQL instance. Use the following statements to create the configuration:

Add the following entries to your postgres.conf configuration file:

shared_preload_libraries = pg_stat_statements
track_activity_query_size = 4096
pg_stat_statements.track = ALL

The first line is required to make the extension available in the server, the second line configures the database to record up to 4096 bytes of a query, and the third line is used to track statements inside stored procedures.

Run the following command to enable the extension to collect query data:

CREATE EXTENSION pg_stat_statements;

PostgreSQL self-hosted

You must enable the pg_stat_statements extension to capture query performance statistics for all versions of PostgreSQL.

PostgreSQL on Amazon RDS

You must enable the pg_stat_statements extension to capture query performance statistics for all versions of PostgreSQL.

The shared_preload_libraries parameter needs to be changed in the appropriate parameter group in Amazon RDS.

PostgreSQL on Amazon Aurora

You must enable the pg_stat_statements extension to capture query performance statistics for all versions of PostgreSQL.

PostgreSQL on Google Cloud SQL

You must enable the pg_stat_statements extension to capture query performance statistics for all versions of PostgreSQL.

PostgreSQL on Azure DB

You must enable the pg_stat_statements extension to capture query performance statistics for all versions of PostgreSQL.

SQL Server database privileges

SolarWinds Observability Agent supports monitoring the following SQL Server database instances:

SQL Server self-hosted

You must have a user with the following privileges to monitor SQL Server with SolarWinds Observability.

  • CONNECT SQL

  • VIEW SERVER STATE

  • VIEW DATABASE STATE

The privileges are required for the following purposes:

Privilege Description
CONNECT SQL A standard SQL Server permission required to connect to SQL Servers.

VIEW SERVER STATE

VIEW DATABASE STATE

Grants access to Dynamic Management Views (sys.dm_*) and are required for polling, metrics, etc. Monitoring will not start without these privileges.

SQL Server on Amazon RDS

You must have a user with the following privileges to monitor Amazon RDS SQL Server with SolarWinds Observability.

  • CONNECT SQL

  • VIEW SERVER STATE

  • VIEW DATABASE STATE

The privileges are required for the following purposes:

Privilege Description
CONNECT SQL A standard SQL Server permission required to connect to SQL Servers.

VIEW SERVER STATE

VIEW DATABASE STATE

Grants access to Dynamic Management Views (sys.dm_*) and are required for polling, metrics, etc. Monitoring will not start without these privileges.

SQL Server on Google Cloud SQL

For Azure SQL Manged Instance, the following privileges are required.

Privilege Description
CONNECT SQL A standard SQL Server permission required to connect to SQL Servers.

VIEW SERVER STATE

VIEW DATABASE STATE

Grants access to Dynamic Management Views (sys.dm_*) and are required for polling, metrics, etc. Monitoring will not start without these privileges.

SQL Server Azure DB

For Azure SQL DB, you must use the SolarWinds Observability Agent with an Azure SQL DB user who has the sysadmin role.

The privileges are required for the following purposes:

Privilege Description
CONNECT SQL A standard SQL Server permission required to connect to SQL Servers.

VIEW SERVER STATE

VIEW DATABASE STATE

Grants access to Dynamic Management Views (sys.dm_*) and are required for polling, metrics, etc. Monitoring will not start without these privileges.

Redis instance roles and privileges

SolarWinds Observability Agent supports self-hosted Redis instances.

Redis self-hosted

SolarWinds Observability supports Redis versions 2.0.0 and above. Versions prior to 2.6.0 will not report their full set of parameters. SolarWinds Observability does not support Redis Sentinel instances, or managed Redis-like services such as ElastiCache.