Skip to main content

Docker Installation

This guide provides instructions for installing the WhaTap database monitoring agent using Docker containers.

Tip

Choosing an Installation Method

Note

Supported Databases

MySQL, PostgreSQL, SQL Server

To use the WhaTap monitoring service, after Sign in, create a project and install the agent to the target server. For more information about registration as a member, see the following.

Creating a project

Create a project before installing the agent.

  1. Log in to the WhaTap Monitoring Service.

  2. In the left side menu, click All Projects > + Project.

  3. On the Select product screen, select the product you want to install.

  4. Enter or select the following items:

    • Project name: Enter the project name.

    • Data server region: Select the data server region. A region is a group of data centers that provide cloud services. Your data will be stored in the selected region.

    • Time zone: Set the time zone to be used for alerts and report generation.

    • Notification language setting: Set the language for alert notifications. (Supports Korean and English)

    • Project groups: Group multiple projects for easier management. Select a group if applicable.

    • Project description: Add additional details or a description for your project.

  5. After completing all settings, click the Creating a project button.

Note

If you add a project while an organization is selected, you must set the Groups of organization field.

For more information about groups, see the related document.

Checking the configuration diagram

The DBX agent can be installed on a separate server or on the DB server. Select a method how to install the agent and check its configuration and firewall.

Install on a separate serverInstall on the DB server

Creating an Account

Note
  • If you already have an account with the required permissions, skip this step and proceed to the next step.

  • In the example code, DB_User is the database user account name. Change it to the user account name you are using.

  • Enter your user password in DB_Password in the example code.

  • Accounts without proper permissions may not be monitored correctly.

  • In a replication structure, account creation and permission grants should only be performed on the Master DB. (Performing this on a Slave DB may break replication.)

  create user DB_User identified by 'DB_PASSWORD'; # Enter the desired password.
grant process on *.* to DB_User;
grant select on performance_schema.* to DB_User;
grant show databases on *.* to DB_User;

To monitor lock information in MySQL 8.0 or later, the following privileges are required.

grant select on `sys`.`sys_config` TO DB_User;
grant select on `sys`.`innodb_lock_waits` TO DB_User;
grant execute on function `sys`.`format_statement` TO DB_User;
grant execute on function `sys`.`quote_identifier` TO DB_User;
grant execute on function `sys`.`sys_get_config` TO DB_User;

Assign additional roles depending on the features and operation environment.

  • In case of collecting all table data

    grant select on *.* to DB_User;
  • In case of monitoring tables only in a specific DB

    grant select on {DB_NAME}.* to DB_User;
  • In case of using replication

    grant replication client on *.* to DB_User;
    grant replication slave on *.* to DB_User;
  • In case of using the kill session

    grant super on *.* to DB_User;
  • In case of using the kill session in the AWS RDS environment

    grant execute on procedure mysql.rds_kill to DB_User;
Support features for each role

The roles other than the Default role do not need to be assigned depending on the environment. However, some functions may not work.

RolecommandMenu and featureDetails
Default rolegrant process on *.* to whatap;Active session collection / Lock Tree / Dead LockThis role to display thread information belonging to another account performs show engine.
grant select on performance_schema.* to whatap;Active session collection / Lock Tree / MYSQL SQL STATISTICSWhen granting individual roles, see the following table
grant show databases on *.* to whatap;Instance List, etc.It displays the database name.
Role detailsgrant select on *.* to whatap;
or
grant select on {DB_NAME}.{TABLE_NAME} to whatap;
DB size / Table Size Increase / Object detail / Searching a planMySQL does not support DB size, Object detail, and plan query features if it has no SELECT role for the table.
replicationgrant replication client on *.* to whatap;Displaying the Instance List's S / Collecting the replication informationSHOW MASTER STATUS, SHOW SLAVE STATUS
grant replication slave on *.* to whatap;Displaying the Instance List's M / Collecting the replication informationSHOW SLAVE HOSTS
Session Killgrant super on *.* to whatap;Session kill feature in the active session listIt terminates the thread belonging to another account.
grant execute on procedure mysql.rds_kill to DB_User;Session kill feature in case of AWS RDS-

Instead of performance_schema.*, you can grant the following roles individually.

RolecommandRemarks
Active sessions / Lock treeperformance_schema.data_lock_waitsStarting from MySQL 8
performance_schema.data_locks
performance_schema.threads-
performance_schema.metadata_locksStarting from MariaDB 10.5
Wait event informationperformance_schema.events_waits_summary_global_by_event_name-
SQL statistical informationperformance_schema.events_statements_summary_by_digest-
Wait metric nameperformance_schema.setup_instruments-

Checking the access key

The access key is the unique ID to enable the WhaTap service.

In the installation guide section, select Getting the access key. After the access key has been issued automatically, proceed to the next step.

Note

After a project has been created, the Agent installation page appears automatically. If the Agent installation does not appear, select Management > Agent installation on the left of the screen.

Running the Agent

Run the following command to start the WhaTap database monitoring agent as a Docker container.

docker run -d --name whatap-db-agent \
-e WHATAP_CONF="
license=x6051ro88nrc9-x4hmr76jvvlfnq-z52cnv1dfa8n5c
whatap.server.host=13.124.11.223/13.209.172.35
dbms=mysql
db_ip=10.0.0.1
db_port=3306
connect_option=?useSSL=true&verifyServerCertificate=false&serverTimezone=SERVER_TIMEZONE" \
-e DB_USERNAME=mydbuser \
-e DB_PASSWORD=mypassword \
whatap/db-agent:latest

Configuration Items

Required Settings

  • license: Project access key
  • whatap.server.host: WhaTap collection server IP (13.124.11.223/13.209.172.35)
  • dbms: Database type (mysql, postgresql, mssql)
  • db_ip: Database server IP address
  • db_port: Database server port number
  • DB_USERNAME: Database account ID
  • DB_PASSWORD: Database account password

Optional Settings

  • connect_option: Database connection options
    • useSSL=true&verifyServerCertificate=false: When connecting to the database using SSL
    • serverTimezone=SERVER_TIMEZONE: When server timezone configuration is required for JDBC driver connection
Note

Modify the configuration values in the above command to match your actual environment.

Verifying Agent Operation

Check if the agent is running properly with the following command.

docker logs -f whatap-db-agent

Removing the Agent

Run the following command to stop and remove the WhaTap database monitoring agent container.

docker stop whatap-db-agent && docker rm whatap-db-agent