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 SaaS general requirements
The following table lists browser requirements and recommendations for using the SolarWinds Observability SaaS web application.
Performance of the computer and internet speed where you open the browser significantly influences the speed of SolarWinds Observability SaaS.
Software Requirements | |
---|---|
Web browsers |
SolarWinds Observability SaaS supports the two most recent versions of the following web browsers:
|
Browser requirements |
The following must be enabled in your browser:
|
Firewall or access control requirements
The browser you are using to access SolarWinds Observability SaaS's basic features must have unrestricted access to the following locations:
- https://my.xx-yy.cloud.solarwinds.com and all subfolders (where
xx-yy
is determined by the URL you use to access SolarWinds Observability SaaS, described in Data centers and endpoint URIs) - https://documentation.solarwinds.com/ and all subfolders
- https://agent-binaries.cloud.solarwinds.com/ and all subfolders
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 SaaS, 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 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 6 and later
- Debian 10 and later
- Fedora 32 and later
- Kali 2021 and later
- OpenSUSE 15 and later
- Oracle Linux 8 and later
- RedHat 6 and later
- Rocky Linux 8 and later
- SUSE Linux Enterprise Server 15 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.
Network connectivity requirements
You need to ensure network connectivity between the database server and the host or container where the SolarWinds Observability database Agent is installed.
Required roles and privileges
Specific roles and privileges are necessary for your database to be monitored by SolarWinds Observability SaaS. See the following sections for details, including scripts to help create users with the right permissions.
- MongoDB instance roles and privileges
- MySQL database privileges
- PostgreSQL database requirements
- SQL Server database privileges
- Redis database privileges
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 SaaS 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 SaaS 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 SaaS.
CREATE USER 'dbo'@'%' IDENTIFIED BY '●●●●●●●●';
GRANT PROCESS, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'dbo'@'%';
For all MySQL database types other than MySQL on Azure DB, optionally if you want to enable TRUNCATE events_statements_by_summary_digest
, you can enable the following.
GRANT DROP ON performance_schema.events_statements_summary_by_digest TO 'dbo'@'%';
GRANT DROP ON performance_schema.events_statements_summary_by_digest
for MySQL on Azure DB installations. TRUNCATE events_statements_by_summary_digest
requires the DROP
privilege for dbo-mysql-metrics in off-host mode. Truncate table empties a table completely and requires the DROP
privilege. If you don't want to enable the
DROP
privilege, you will get a WARN
event when events_statements_summary_by_digest
is over half full. 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 SaaS user INSERT
, UPDATE
, and DELETE
privileges, which will allow SolarWinds Observability SaaS to run EXPLAIN
on those kinds of queries.
EXPLAIN
.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 SaaS.
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');
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 SaaS.
For Amazon RDS MySQL instances complete the following steps:
-
Create a new custom DB Parameter Group in the RDS Dashboard, or modify an existing one.
-
Set option
performance_schema = 1
-
Apply the parameter group.
-
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 SaaS.
For Amazon Aurora MySQL instances complete the following steps:
-
Create a new custom DB Parameter Group in the RDS Dashboard, or modify an existing one.
-
Set option
performance_schema = 1
-
Apply the parameter group.
-
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 SaaS.
For Google Cloud MySQL instances complete the following steps:
-
Under Customize Instance, click Add a Database Flag.
-
Select the
performance_schema
flag and set the value to On. -
Save the configuration.
-
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 SaaS.
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:
-
Go to Networking in your Azure MySQL DB UI and download the SSL Certificate.
-
Put the SSL Certificate on the host where the Agent is running.
-
Add the SSL Authority path for the downloaded SSL Certificate in SolarWinds Observability SaaS.
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.
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 SaaS.
-
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. |
|
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 SaaS.
-
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. |
|
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. |
|
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. |
|
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 SaaS supports Redis versions 2.0.0 and above. Versions prior to 2.6.0 will not report their full set of parameters. SolarWinds Observability SaaS does not support Redis Sentinel instances, or managed Redis-like services such as ElastiCache.