MySQL Enterprise Monitor
MySQL Enterprise Monitor
40 Manual
Abstract
End of Life Announcement. MySQL Enterprise Monitor will be end of life and deprecated with obsolescence
as of January 1, 2025. For additional information, see Chapter 1, MySQL Enterprise Monitor: End of Life Notice
For notes detailing the changes in each release, see the MySQL Enterprise Monitor 8.0 Release Notes.
For legal information, including licensing information, see the Preface and Legal Notices.
For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other
MySQL users.
iii
MySQL Enterprise Monitor 8.0.40 Manual
iv
MySQL Enterprise Monitor 8.0.40 Manual
v
MySQL Enterprise Monitor 8.0.40 Manual
vi
Preface and Legal Notices
This manual documents the MySQL Enterprise Monitor version 8.0.40.
Legal Notices
Copyright © 2005, 2024, Oracle and/or its affiliates.
License Restrictions
This software and related documentation are provided under a license agreement containing
restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly
permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any
form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless
required by law for interoperability, is prohibited.
Warranty Disclaimer
The information contained herein is subject to change without notice and is not warranted to be error-
free. If you find any errors, please report them to us in writing.
If this is software, software documentation, data (as defined in the Federal Acquisition Regulation), or
related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the
U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated
software, any programs embedded, installed, or activated on delivered hardware, and modifications
of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed
by U.S. Government end users are "commercial computer software," "commercial computer software
documentation," or "limited rights data" pursuant to the applicable Federal Acquisition Regulation and
agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display,
disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs
(including any operating system, integrated software, any programs embedded, installed, or activated
on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/
or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in
the applicable contract. The terms governing the U.S. Government's use of Oracle cloud services
are defined by the applicable contract for such services. No other rights are granted to the U.S.
Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and
other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any
damages caused by use of this software or hardware in dangerous applications.
Trademark Notice
Oracle, Java, MySQL, and NetSuite are registered trademarks of Oracle and/or its affiliates. Other
names may be trademarks of their respective owners.
vii
Access to Oracle Support for Accessibility
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC
trademarks are used under license and are trademarks or registered trademarks of SPARC
International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content,
products, and services from third parties. Oracle Corporation and its affiliates are not responsible
for and expressly disclaim all warranties of any kind with respect to third-party content, products,
and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or services, except as set forth in an applicable
agreement between you and Oracle.
This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the
following terms:
You may create a printed copy of this documentation solely for your own personal use. Conversion
to other formats is allowed as long as the actual content is not altered or edited in any way. You shall
not publish or distribute this documentation in any form or on any media, except if you distribute the
documentation in a manner similar to how Oracle disseminates it (that is, electronically for download
on a Web site with the software) or on a CD-ROM or similar medium, provided however that the
documentation is disseminated together with the software on the same medium. Any other use, such
as any dissemination of printed copies or use of this documentation, in whole or in part, in another
publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/
or its affiliates reserve any and all rights to this documentation not expressly granted above.
viii
Part I Getting Started with
MySQL Enterprise Monitor
Table of Contents
1 MySQL Enterprise Monitor: End of Life Notice ............................................................................ 5
2 MySQL Enterprise Monitor Introduction and Architecture ............................................................. 7
2.1 MySQL Enterprise Monitor Component Overview ............................................................. 7
2.2 MySQL Enterprise Monitor Agent .................................................................................... 8
2.3 MySQL Enterprise Service Manager ................................................................................ 9
3 What's New ............................................................................................................................. 13
3
4
Chapter 1 MySQL Enterprise Monitor: End of Life Notice
Important
MySQL Enterprise Monitor will be end of life and deprecated with obsolescence
as of January 1, 2025.
After this date, MySQL Enterprise Monitor will no longer receive security updates, non-security
updates, bug fixes, or online technical content updates. It will transition to the Sustaining Support
model.
What to expect when MySQL Enterprise Monitor reaches the end of life (EOL):
• MySQL will cease all bug fix activities for the product
• MySQL will cease all security fix activities for the product
• MySQL will cease all new feature work for the product
• New program updates, fixes, security alerts, and critical patch updates
• 24 hour commitment and response guidelines for Severity 1 service requests as defined in "Section 9
- Severity Definitions" in the document titled "Oracle Software Technical Support Policies"
• Previously released fixes or updates that Oracle has withdrawn from publication. Older or existing
published software bundles will remain available as archived content.
For an explanation of the different support models (like Sustaining Support), visit: https://
www.oracle.com/support/lifetime-support/
For customers that are currently using earlier versions of MySQL Enterprise Monitor, your options
include:
• Use Enterprise Manager for MySQL. This is a free product for customers with a valid Oracle Support
Contract. For more information, visit Comprehensive Monitoring and Compliance Management for
MySQL Databases using Enterprise Manager.
• Use the database monitoring capabilities of the OCI Database Management service. For MySQL
on-premises customers, this is a paid feature that will be released soon. For more information, visit
Database Management for MySQL HeatWave.
Affected deployments
• MySQL Enterprise Monitor Service Manager for Linux x86 (64-bit)
5
Affected deployments
6
Chapter 2 MySQL Enterprise Monitor Introduction and
Architecture
Important
Note
MySQL Enterprise Monitor is a companion product to MySQL Server that enables monitoring of
MySQL instances and their hosts, notification of potential issues and problems, and advice on how to
correct issues. MySQL Enterprise Monitor can monitor all types of installation, from a single MySQL
instance to large farms of database servers. MySQL Enterprise Monitor is a web-based application,
enabling you to monitor MySQL instances on your network or on a cloud service.
This chapter describes the components of a MySQL Enterprise Monitor installation and provides a
high-level overview of MySQL Enterprise Monitor architecture.
• MySQL Enterprise Monitor Agent monitors the MySQL instances and hosts, and collects data
according to a defined schedule. The collection data is sent to MySQL Enterprise Service Manager
for analysis and presentation. MySQL Enterprise Monitor Agent is typically installed on the same
host as the monitored server.
• MySQL Enterprise Service Manager analyzes, stores and presents the data collected by the agent.
MySQL Enterprise Service Manager also contains a built-in agent which is used to monitor the
repository.
It is also possible to perform what is called an Agent-less installation, where the Agent is not installed
on the host machines, and all monitoring is done by MySQL Enterprise Service Manager's built-in
Agent.
7
MySQL Enterprise Monitor Agent
Important
• Provides the direct monitoring of the MySQL server, including checking the server accessibility,
configuration, obtaining the server ID, and setting up the environment to enable collecting more
detailed information. In addition to the information accessible by accessing variable and configuration
information within the server, other configuration parameters, such as the replication topology, are
also collected from the server.
• Collects the operating system specific information, including RAM, disk storage and other data.
Note
The Agent can collect host data for the server on which it is installed, only. It
cannot collect such data for a remotely monitored host.
• Collects the data from the server, including obtaining the values and configuration of the MySQL
server, status variables and other information.
• Communicates with MySQL Enterprise Service Manager. Data is collected at scheduled intervals
according to the schedule defined on the Advisors. This information is then sent to the MySQL
Enterprise Service Manager.
• For MySQL 5.6.14 and greater, the Agent also collects digested query data from the Performance
Schema and populates the Query Analyzer.
Important
If an Agent monitors a MySQL instance remotely, it cannot monitor the host and
can only collect data from the monitored MySQL instance.
The Agent runs as a service. The data collected by the Agent is defined by enabling, or disabling,
MySQL Enterprise Monitor Advisors.
8
MySQL Enterprise Service Manager
• Generating alerts and sending mail or SNMP notifications based on the Advisor configuration.
• Analyzing the SQL queries performed on the monitored instance, in real-time, using the Query
Analyzer.
MySQL Enterprise Service Manager is a web application which runs on the Apache Tomcat server.
MySQL Enterprise Service Manager also contains its own Agent which, in a default installation, is used
to monitor the repository and host. It can also be used to monitor other, remote MySQL instances. This
Agent is installed automatically, as part of the MySQL Enterprise Service Manager installation.
MySQL Enterprise Monitor installer installs and configures the MySQL repository. It is also possible to
use an existing MySQL instance for this purpose.
The main features of the MySQL Enterprise Monitor User Interface include:
• Overview provides an overview of the current health and status of all assets, or detailed information
on the selection in the Target selection menus, a list of top critical and emergency events that should
be handled, and graphs that relay database statistical information.
• The Configuration section enables you to customize the Advisors and Event Handling for
your system. For example, this includes setting thresholds for Advisors, Users & Roles, Group
configuration, and email addresses to send alerts. This section also contains the Instances view,
which lists all monitored MySQL instances, which can be analyzed, configured, and grouped and
enables you to add and remove monitored instances.
• The Events view lists the events generated by all monitored assets, which can be sorted and
searched.
9
MySQL Enterprise Advisors
• Metrics view includes all graphs and reports with compiled data for your system, updated according
to the assets selected in the target selector. The contents of the Metrics section are dependent on
the selection made in the Target selectors. Some reports are only useful for NDB Cluster monitoring,
or for Replication Groups, and are only displayed if one of those assets are selected.
• Availability: Checks the availability of the MySQL process and the connection load.
• Backup: Checks whether backup jobs succeed or fail, required resources, and information about
MySQL Enterprise Backup specific tasks.
• Memory Usage: Indicate how efficiently you are using various memory caches, such as the InnoDB
buffer pool, MyISAM key cache, query cache, table cache, and thread cache.
• Monitoring and Support Services: Advisors related to the MySQL Enterprise Monitoring services
itself.
• NDB Cluster: Checks the status of the monitored MySQL NDB Cluster.
The Advisors configure the type of data collected by the Agent. If you do not want to monitor for a
specific type of data, disabling the Advisor responsible for that data type instructs the Agent to stop
collecting that data.
For more information on advisors, see Chapter 20, Expression-Based Advisor Reference and
Chapter 21, GUI-Based Advisor Reference.
10
Query Analyzer
• Events: If an Advisor's defined Threshold is breached, an Event is generated and displayed in the
Events view. This is the default alert method.
• Notifications: MySQL Enterprise Service Manager can be configured to send alerts by e-mail, or
SNMP traps. These methods must be configured and are not enabled by default.
Query Analyzer
The Query Analyzer enables you to monitor all SQL statements executed on the monitored MySQL
databases. The query data can be provided in one of the following ways:
• Performance Schema: for monitored versions of MySQL 5.6.14 or higher, the Agent retrieves query
information from the Performance Schema.
11
12
Chapter 3 What's New
This section provides a high-level overview of the differences between this release and its predecessor.
MySQL 8
MySQL Enterprise Monitor now includes MySQL 8. The bundled repository has been upgraded to the
latest MySQL server release.
Query Analyzer
The user interface of the Query Analyzer has been completely redesigned. Building upon Oracle's
JavaScript Extension Toolkit (JET) framework, this new design improves navigation in the Query
Analyzer and introduces advanced configuration options which enable you to customize, sort, and filter
the data displayed.
For more information, see Section 32.3, “Query Analyzer User Interface”.
13
New Asset Views
The Agents view configuration view enables you to view all MySQL Enterprise Monitor Agents currently
registered with the MySQL Enterprise Service Manager.
The agents are displayed on individual lines, with brief summaries of their current status, number of
assets monitored by the agent, and last contact.
The Agent details view displays all relevant information for that agent. This information includes JVM
configuration and status, details on all MySQL connections, processes, and instances, and detailed
information on the host's operating system.
14
New Asset Views
The Hosts configuration view enables you to view all currently monitored hosts and their configuration.
The hosts are displayed on individual lines, with brief summaries of their current status, number of
instances installed, and information on their operating systems and hardware.
Figure 3.4 Hosts View
15
New Asset Views
The Host detail view displays all relevant information for that host. This information includes filesystem
data, and hardware configuration such as RAM, CPUs, and network interfaces.
The NDB Clusters configuration view enables you to view all currently monitored clusters, their
membership, and configuration.
16
Deleting Assets from the Inventory
Important
Deleting assets from the inventory does not delete or uninstall assets from their
installed locations. The delete process removes all record of an asset or group
of assets from the internal record of MySQL Enterprise Service Manager, only.
This enables you to remove entries for clusters, topologies, agents, hosts, and
instances which were monitored, but are no longer in use.
17
Deleting Assets from the Inventory
18
Part II Installing MySQL
Enterprise Monitor
Table of Contents
4 Prerequisites ............................................................................................................................ 23
4.1 Installer Files ................................................................................................................ 23
4.2 Prerequisites ................................................................................................................. 23
4.2.1 System Requirements ........................................................................................ 23
4.2.2 Supported Platforms ........................................................................................... 24
4.2.3 Requirements for Monitoring ............................................................................... 25
4.2.4 MySQL Enterprise Monitor Repository ................................................................. 26
4.3 Credentials Required for Installation ............................................................................... 28
4.3.1 Existing Users .................................................................................................... 28
4.3.2 Users Created During Installation ........................................................................ 28
4.3.3 Users Created on First Log-in ............................................................................. 29
4.4 Supported Browsers ...................................................................................................... 29
5 Service Manager Installation .................................................................................................... 31
5.1 MySQL Enterprise Monitor Installation Types ................................................................. 31
5.2 MySQL Enterprise Service Manager Graphical Installation Wizard ................................... 32
5.3 Text-Based Installation .................................................................................................. 34
5.4 Starting/Stopping MySQL Enterprise Monitor Services .................................................... 34
5.5 MySQL Enterprise Service Manager Configuration Settings ............................................. 36
6 Monitor Agent Installation ......................................................................................................... 37
6.1 General Agent Related Notes ........................................................................................ 37
6.2 Creating MySQL User Accounts for the Monitor Agent .................................................... 37
6.3 Java Considerations on UNIX-like Platforms ................................................................... 40
6.4 Monitoring Agent Graphical Installation Wizard ............................................................... 40
6.5 Starting/Stopping MySQL Enterprise Monitor Agent ........................................................ 43
6.5.1 Starting/Stopping the Agent on Windows ............................................................. 43
6.5.2 Starting/Stopping the Agent on macOS ............................................................... 44
6.5.3 Starting/Stopping the Agent on Unix .................................................................... 45
6.5.4 sql_mode ........................................................................................................... 46
6.6 Monitoring Multiple MySQL Servers ............................................................................... 46
6.7 Configuring an Agent to Monitor a Remote MySQL Server .............................................. 46
6.8 Monitoring Outside the Firewall with an SSH Tunnel ....................................................... 47
6.9 HTTP Connection Timeout ............................................................................................ 48
6.10 Troubleshooting the Agent ........................................................................................... 48
6.11 Agent Backlog ............................................................................................................. 49
7 Upgrading MySQL Enterprise Monitor Installations .................................................................... 51
7.1 General considerations when upgrading MySQL Enterprise Monitor ................................. 51
7.2 Upgrading MySQL Enterprise Monitor ............................................................................ 51
7.3 Restoring from Backup .................................................................................................. 53
8 Post-installation Considerations ................................................................................................ 55
8.1 General Considerations ................................................................................................. 55
8.2 Installing SSL Certificates .............................................................................................. 56
8.3 Backup the Repository .................................................................................................. 58
8.4 Changing an SSH Host Key .......................................................................................... 59
9 Unattended Installation Reference ............................................................................................ 61
9.1 Unattended Installation .................................................................................................. 61
9.1.1 Performing an Unattended Installation ................................................................. 61
9.1.2 MySQL Enterprise Service Manager Options ....................................................... 62
9.1.3 MySQL Enterprise Monitor Agent Options ........................................................... 68
10 Performance Tuning MySQL Enterprise Monitor ...................................................................... 75
10.1 Tuning Memory ........................................................................................................... 75
10.2 Tuning CPU ................................................................................................................ 76
10.3 Tuning Apache Tomcat Threads .................................................................................. 77
10.4 Tuning Agent Memory Requirements ........................................................................... 77
11 Configuration Utilities ............................................................................................................. 79
11.1 Service Manager Configuration Utilities ........................................................................ 79
21
11.2 Agent Configuration Utility ........................................................................................... 81
12 Uninstalling MySQL Enterprise Monitor ................................................................................... 85
12.1 Windows Platforms ...................................................................................................... 85
12.2 macOS Platforms ........................................................................................................ 86
12.3 Unattended Uninstallations .......................................................................................... 87
22
Chapter 4 Prerequisites
This chapter describes the process of installing MySQL Enterprise Monitor on all operating systems.
• One MySQL Enterprise Service Manager. It stores its data in a database repository. You can use
an existing MySQL instance for the repository, or set up a separate instance as part of MySQL
Enterprise Service Manager installation. See Chapter 5, Service Manager Installation.
• Optionally (but recommended), one or more MySQL Enterprise Monitor Agents, one on each host
being monitored. Install MySQL Enterprise Service Manager first, because the Agent installation
asks for credentials and network settings that you choose as you install MySQL Enterprise Service
Manager.
To minimize network overhead, install the Agent on the same machine that hosts the monitored
MySQL server, but you can install it on any machine that has network access to both the monitored
MySQL server and MySQL Enterprise Service Manager. An agent can monitor locally or remotely.
Note
The Agent monitors the MySQL server, and transmits health and usage data back to the Service
Manager. The Advisors parse the results and display the data in the browser-based MySQL Enterprise
Monitor User Interface.
After installing and starting the Service Manager and Agents, configure the settings as described in
Section 5.5, “MySQL Enterprise Service Manager Configuration Settings”.
• MySQL Enterprise Service Manager: For a new installation, this installer is named
mysqlmonitor-version-platform-installer.extension. For an upgrade installation, this
installer is named mysqlmonitor-version-platform-update-installer.extension.
• One or more MySQL Enterprise Monitor Agent, one for each host. In this default scenario, MySQL
Enterprise Monitor Agent is installed on the same machine as a monitored MySQL instance. For
a new Agent installation, this installer is named mysqlmonitoragent-version-platform-
installer.extension. For an upgrade Agent installation, this installer is named
mysqlmonitoragent-version-platform-update-installer.extension.
4.2 Prerequisites
This section describes the prerequisites for a successful MySQL Enterprise Monitor installation.
• 2 CPU Cores
23
Supported Platforms
• 2 GB RAM
• 8 GB RAM or more
Important
The minimum disk space values for the Monitoring Agent include the disk space
required by the backlog. The backlog is used if the agent loses contact with the
Service Manager and cannot transmit the collected data. The collected data
is stored on the agent's local file system until communication with the Service
Manager resumes. Once normal communication is resumed, the entire backlog
is transmitted, then deleted from the agent's local file system.
If you choose to install the bundled MySQL Server with the Enterprise Service Manager, you must
also consider the amount of disk space required by the database. This value cannot be predicted as it
depends on load, number of monitored instances, and so on.
Important
24
Requirements for Monitoring
• Ensure that your Service Manager and Agent hosts are synchronized to the same time server. It is
important that all times are properly synchronized.
• Ensure that your Service Manager and Agent hosts use different SSH host keys before installing.
• On Linux platforms, ensure you have both the libaio and libnuma libraries installed. The installer
checks for both.
• MySQL Enterprise Service Manager installation generates a self-signed certificate during the
installation process. This certificate generation requires a valid, resolvable hostname. It is not
possible to install MySQL Enterprise Service Manager on a host which does not have a valid
hostname.
MySQL Requirements
This section describes the MySQL Server requirements for MySQL Enterprise Monitor installation.
• MySQL Enterprise Service Manager installation includes the latest version of MySQL Server. If you
intend to use a MySQL repository other than the one bundled in MySQL Enterprise Service Manager
installation, see Section 4.2.4, “MySQL Enterprise Monitor Repository” for more information.
• As of MySQL Enterprise Monitor 8.0.20, the MySQL Enterprise Service Manager installer, on
Microsoft Windows, checks for the presence of the Microsoft Visual C++ 2015-2019 Redistributable
(x64) - 14.25.2850508™ or later and if it is not present, installs it.
MySQL Enterprise Service Manager installation on Microsoft Windows can not proceed without this
redistributable.
Important
If you do not intend to use the bundled MySQL Server, but intend to use an
existing, external repository, you must manually download and install this
redistributable.
• If you have previously configured a default login path on the same machine on which you are
installing MySQL Enterprise Service Manager with the bundled repository, you must delete the cnf
in which the default login details are defined before installing. If a default login path is defined, the
installation fails to complete. It is recommended to install MySQL Enterprise Service Manager on a
dedicated server.
• The Monitoring Agent officially supports MySQL Server 8.0 as per Supported Platforms: MySQL
Enterprise Monitor. However, MySQL Enterprise Monitor makes an effort to monitor any GA version
of MySQL Server from version 5.5 onwards.
Important
25
MySQL Enterprise Monitor Repository
Note
• If you intend to monitor MySQL NDB Cluster, you must ensure the following when configuring your
cluster:
• Edit the [System] section of your cluster configuration file to include the cluster name. MySQL
Enterprise Monitor Agent reads this value and uses it to uniquely identify your cluster. For
example:
[System]
name=cluster-name
• It is strongly recommended to install MySQL Enterprise Monitor Agent on all Management, Data,
and SQL nodes for optimal monitoring. If this is not possible, monitoring the SQL nodes provides
useful information about the entire cluster.
• The Management node was started with the --config-file flag, and ensure the owner of
MySQL Enterprise Monitor Agent process has permissions to read the configuration file.
• If your host has multiple addresses, include the --bind-address flag on the ndb commands,
matching the HostName variable defined in the configuration file.
• Do not use localhost or any loopback address in your configuration or commands. Always use
a unique address.
Important
The bundled MySQL instance has been comprehensively tested and tuned for
use with MySQL Enterprise Service Manager
The various scripts delivered with MySQL Enterprise Service Manager only
work with the bundled MySQL instance.
If you intend to use an alternative MySQL instance for your MySQL Enterprise Service Manager
repository, the repository instance must be present before starting MySQL Enterprise Monitor
installation.
26
MySQL Enterprise Monitor Repository
Important
You must make several configuration changes to enable it for use as the
repository.
Note
• The InnoDB storage engine is available. You must use InnoDB as the default storage engine.
• SSL is enabled.
• Set default-storage-engine=InnoDB.
• Set innodb_file_per_table=1.
• Set innodb_file_format=Barracuda. This is not required if you are configuring MySQL 8 as the
external repository.
• Define a Service Manager user to enable MySQL Enterprise Service Manager to connect to, and
modify, the repository. This user must have the following privileges:
For example:
• REPLICATION CLIENT, SUPER, PROCESS, and SELECT on all databases in the repository.
For example:
The Service Manager user's credentials are required by the MySQL Enterprise Service Manager
installation process.
27
Credentials Required for Installation
Important
If you are using a MySQL Server repository other than the installation bundled
with MySQL Enterprise Service Manager installation, the installer checks your
MySQL Server for the following, minimum requirements:
• MySQL Server version: versions older then MySQL 5.7.9 are not supported.
If you intend to use MySQL 8, it is not possible to use any version preceding
MySQL 8.0.13. That is, it is not possible to use 8.0.0 to 8.0.4 as repository.
If any checks fail, the installer displays an error and cannot proceed until the
configuration is corrected.
Note
With MySQL 5.5.16 and higher, you can configure these user IDs to
authenticate using the PAM Authentication plug-in. Currently, MySQL
Enterprise Monitor does not support authentication through the Windows Native
Authentication plug-in.
The following sections outline the users associated with MySQL Enterprise Monitor.
28
Users Created on First Log-in
use these credentials to manage the repository from the command line or when using a GUI program
such as MySQL Workbench.
At the end of MySQL Enterprise Service Manager installation, the file configuration_report.txt
is created, and along with other configuration details, contains some of the credentials of the repository
manager. Depending on platform, this file is located in the following directories:
• Unix: /opt/mysql/enterprise/monitor
• macOS: /Applications/mysql/enterprise/monitor
The Agent user: MySQL Enterprise Monitor Agent broadcasts the status of the assets it is monitoring
and requires access to MySQL Enterprise Service Manager. Define the user name and password for
this user. These credentials must also be provided for the agent installation process.
Note
• Safari: most current major production release and one prior release
29
30
Chapter 5 Service Manager Installation
This chapter describes the installation of MySQL Enterprise Service Manager.
• Apache Tomcat: mandatory component. Servlet container and web server which hosts MySQL
Enterprise Service Manager.
• MySQL Server: optional component. Used to store the data from the monitored hosts and instances.
Referred to, throughout this document, as the repository. It is also possible to use another MySQL
instance as the repository. For more information, see Section 4.2.4, “MySQL Enterprise Monitor
Repository”.
• Small: 1 to 5 MySQL Servers monitored from a laptop or low-end server with no more than 4GB of
RAM.
• Medium: Up to 100 MySQL Servers monitored from a medium-sized, but shared, server with 4 to
8GB of RAM.
• Large: More than 100 MySQL Servers monitored from a high-end server, dedicated to MySQL
Enterprise Service Manager, with more than 8GB RAM.
• setenv.sh/ setenv.bat:
• Tomcat Heap Size (-Xms and -Xmx): defines the minimum (-Xms) and maximum (-Xmx) amount
of RAM available to Tomcat's JVM. -Xmx and -Xms are set to the same value.
• Tomcat MaxPermSize: defines the maximum size of the pool containing the data used by
Tomcat's JVM.
• my.cnf/my.ini:
• table_definition_cache: defines the number of table definitions that can be stored in the
definition cache.
Important
These values are not hard-coded. You can change them, if your installation
requires it, by editing setenv.sh/setenv.bat, or my.cnf/my.ini.
31
MySQL Enterprise Service Manager Graphical Installation Wizard
Note
On UNIX and Linux platforms, ensure the installer is executable before you
begin.
Important
2. The language selection dialog is displayed. Choose a language and click OK.
Note
During the installation process you must enter usernames and passwords
for components of the Enterprise Monitor. Make note of these in a secure
location so you can recover them in case they are forgotten.
3. Click OK to continue.
5. Change the installation directory or accept the default path and click Forward.
6. Select the size of installation required. For more information, see Section 5.1, “MySQL Enterprise
Monitor Installation Types”.
Click Forward.
• Tomcat SSL Port: Default value is 18443. This port is mandatory for communication with Agents,
which must use SSL to communicate with the MySQL Enterprise Service Manager.
Click Forward.
8. Enter the name of the user account MySQL Enterprise Service Manager must run as. If this user
account does not exist, it is created by the installer.
32
MySQL Enterprise Service Manager Graphical Installation Wizard
Click Forward.
• I wish to use the bundled MySQL database: select to install a MySQL server.
Important
If you choose the bundled server option, the Service Manager user
defined by the installation procedure is granted complete control of the
repository. This is done using the following: .
• I wish to use an existing MySQL database: select to use an existing MySQL server as the
repository.
Important
If you choose the existing server option, you must ensure the
prerequisites listed in Section 4.2.4, “MySQL Enterprise Monitor
Repository” are met before installing MySQL Enterprise Service Manager.
Click Forward.
• Repository Username: enter the username used by MySQL Enterprise Service Manager to
connect to the repository. If you chose to use an existing database, this user must already exist
on the target MySQL instance.
• MySQL Hostname or IP address: (Displayed if you chose to use an existing MySQL database,
only) enter the hostname or IP address of the MySQL instance.
• MySQL Database Port: enter the port MySQL Enterprise Service Manager uses to connect to
the MySQL instance. If you chose the bundled repository, the default port number is 13306. If you
chose to use an existing instance, the default port number is 3306.
• MySQL Database Name: enter the name of MySQL Enterprise Service Manager repository.
This is useful if you intend to use multiple MySQL Enterprise Service Manager installations,
but want to host their repositories on a single MySQL server. Each MySQL Enterprise Service
Manager must have a uniquely named repository. It is not possible for MySQL Enterprise Service
Managers to share a repository.
• Use SSL when connecting to the database: enables SSL encryption for all communication
between MySQL Enterprise Service Manager and the repository.
• On macOS platforms, you are prompted to optionally install MySQL Enterprise Service Manager
as a service. This setting enables MySQL Enterprise Service Manager to start when the machine
33
Installation Log
is started. You must provide the Administrator password to install MySQL Enterprise Service
Manager as a service.
Click Forward.
Important
If you are attempting to use a version of MySQL older than MySQL Server
5.7.9 as an external repository, an error is displayed and the installation
fails. MySQL Server 5.7.9 is the minimum version and MySQL Server 5.7.18
is the recommended version.
Installation Log
The installation log file is written to the root of the installation directory.
The log file records all files installed and all actions taken by the installer, such as starting services,
filling database tables, and so on. A similar log file is also created by the uninstall process.
If the installation is upgraded, the existing installation log is backed up to the backup directory and
replaced by the installation log for the upgrade.
Note
--mode text
The following example shows how to start the text-mode installation on a 64-bit Linux system:
2. Follow the instructions onscreen. The options and values are identical to those described in
Section 5.2, “MySQL Enterprise Service Manager Graphical Installation Wizard”.
After the Service Manager is installed, you can configure the MySQL Enterprise Monitor User Interface,
as explained in Section 5.5, “MySQL Enterprise Service Manager Configuration Settings”.
This section describes how to control MySQL Enterprise Service Manager services on UNIX, Linux
and Mac platforms. Microsoft Windows supports several additional methods, which are described in
Starting/Stopping MySQL Enterprise Monitor Services on Windows.
• MySQL Server
• Tomcat Server
To autostart all the Service Manager components, call the mysqlmonitorctl.sh start from your
start-up script.
If you try to start the service and it is already running, you are warned that the services are already
running.
The restart command is equivalent to executing a stop and then start operation.
Important
The Service Manager can take some time to start and become usable after
mysqlmonitorctl.sh start completes.
This script can also check the status of the Tomcat web server or the MySQL repository.
$> ./mysqlmonitorctl.sh status
MySQL Network MySQL is running
MySQL Network Tomcat is running
After the Service Manager is installed, you can configure the MySQL Enterprise Monitor User Interface,
as explained in Section 5.5, “MySQL Enterprise Service Manager Configuration Settings”.
35
MySQL Enterprise Service Manager Configuration Settings
• The Start/Stop MySQL Enterprise Monitor Services items on the Windows Start menu.
• The Services pane of the Microsoft Management Console. Right-click on the either of the MySQL
Enterprise services to display the available options.
From the command line, the service names are mysqlenterprisetomcat and
mysqlenterprisemysql.
For example:
$> sc start mysqlenterprisemysql
Note
The command line terminal must be started using the Run as Administrator
option.
If you installed the Service Manager using a graphical interface, you have the option of launching the
Monitor UI on the final installation screen (as long as the Launch MySQL Enterprise Monitor Now
check box is checked, which it is by default).
Otherwise, you can view MySQL Enterprise Monitor User Interface by typing https://
localhost:18443/ ("18443" is the default port number, adjust accordingly if you altered this
configuration), into the address bar of your web browser. To see the host name and port to use, check
the configuration_report.txt file.
Under Microsoft Windows, you can also open the Monitor UI by choosing the MySQL menu item
and finding the MySQL Enterprise Monitor entry. Under this entry, choose Start Service
Manager.
Important
On first start, MySQL Enterprise Service Manager can take some time to start
while the services and database initialize.
36
Chapter 6 Monitor Agent Installation
A MySQL Enterprise Monitor Agent monitors a MySQL server and sends data to the MySQL Enterprise
Service Manager. The data is interpreted by MySQL Enterprise Advisors and displayed in MySQL
Enterprise Monitor User Interface. The following section describes how to install the Agent on all
platforms.
Important
• The Agent uses three users with different connection levels: Admin, General (optional), and Limited
(optional). These can be created manually or by the installation and configuration process.
• Typically, one Agent is installed per host, and the Agent monitors the host and all MySQL instances
on it. An Agent may also monitor remote MySQL instances.
• Agents automatically detect MySQL instances on a host. Adding the new MySQL instance may be
performed in MySQL Enterprise Monitor UI or from the command line.
• Choosing a MySQL Instance to monitor during the installation is optional. If you choose to define a
MySQL Instance while running the Installer, additional MySQL Instances on the host are detected
and reported in MySQL Enterprise Monitor User Interface. From there, you can add the appropriate
configuration information.
• To detect a local connection in IPv6, the Agent requires forward resolution configured on the system
from localhost to ::1, which could mean editing the /etc/hosts configuration file.
This is because the SHOW PROCESSLIST statement always reports localhost even when bound
to ::1 without an address resolution. If localhost resolution is not configured for IPv6, the Agent
cannot detect a local IPv6 MySQL server connection.
• You can assign a monitored MySQL instance to a group via the Agent installer, which is displayed in
MySQL Enterprise Service Manager.
• Passwords are now stored in an encrypted format, so you can no longer recover passwords by
looking in the configuration files.
• The Service Manager now bundles an Agent, which monitors the host on which it is installed, scans
for all MySQL instances on the host, and also monitors the Service Manager repository database.
Note
• For a list of supported platforms that the Agent installation supports, see http://www.mysql.com/
support/supportedplatforms/enterprise-monitor.html.
37
Creating the Admin User
The Agent requires the Admin user, and can optionally use General or Limited users, or both,
depending on the system's security requirements. During the installation process, you are prompted to
create General and Limited users. You can allow the agent to connect to the database using the Admin
user for all tasks but it is recommended to create the General or Limited users for tasks which do not
require root access to the database. It is not necessary to create both users. It is possible to create one
or the other. The Agent uses the user with the lowest, required privileges for the query and changes to
a user with higher privileges only if the query requires it.
• Admin: a user that has the SUPER privilege. The SUPER privilege is required to run certain
statements such as SHOW MASTER LOGS or SHOW ENGINE INNODB STATUS, depending on the
version that is being monitored.
Note
If monitoring MySQL Server 5.5, you must also grant CREATE and INSERT
privileges on the schema the inventory table is created on. The inventory
table stores unique identifiers for the MySQL instance, and is created in the
mysql schema by default.
If you intend to automatically create the less-privileged users, General and Limited, you
must also grant the Admin user CREATE USER. You must also grant SHOW VIEW, PROCESS,
REPLICATION CLIENT, SELECT and SHOW DATABASES privileges globally, and UPDATE on the
performance_schema.threads table, with GRANT OPTION for all.
If you intend to install the sys schema from within MySQL Enterprise Monitor, in addition to the
privileges listed above, you must also grant the Admin user CREATE, INSERT, CREATE ROUTINE,
CREATE TEMPORARY TABLES, CREATE VIEW, and TRIGGER.
• General: This optional user handles general monitoring tasks that do not require SUPER level
privileges. Lower privileged users are used until higher privileges are required. In which case, MEM
temporarily logs in as the SUPER privileged user, and then falls back to the general user.
If you are manually managing this user, grant at least the EXECUTE, PROCESS, REPLICATION
CLIENT, SELECT, and SHOW DATABASES privileges globally, and UPDATE on the
performance_schema.threads table. If you intend to use EXPLAIN on views, you must also
grant SHOW VIEW.
Important
If you are monitoring MySQL 5.1.63, or earlier, you must grant the SUPER
privilege to the General user. The agent requires this privilege to use the
SHOW BINARY LOGS statement on the monitored instance.
• Limited: This optional user is used for statements that should be limited to a single connection.
If you are manually managing this user, it should have at least the EXECUTE, SELECT and SHOW
DATABASES privileges globally, and UPDATE on the performance_schema.threads table. If you
intend to use EXPLAIN on views, you must also grant SHOW VIEW.
38
Creating the Admin User
• SHOW DATABASES: MySQL Enterprise Monitor Agent can gather inventory about the monitored
MySQL server.
• REPLICATION CLIENT: MySQL Enterprise Monitor Agent can gather Replication master/slave
status data. This privilege is only needed if you use the MySQL Replication Advisor Rules.
• SELECT: MySQL Enterprise Monitor Agent can collect statistics for table objects.
• SUPER: MySQL Enterprise Monitor Agent can execute SHOW ENGINE INNODB STATUS to
collect data about InnoDB tables. This privilege is also required to obtain replication information
using SHOW MASTER STATUS and, if monitoring MySQL 5.5 or earlier, to temporarily switch off
replication when populating the mysql.inventory table used to identify the MySQL instance. The
mysql.inventory table is not created on MySQL 5.6, or higher.
Note
• PROCESS: When monitoring a MySQL server running MySQL 5.1.24 or above with InnoDB, the
PROCESS privilege is required to execute SHOW ENGINE INNODB STATUS.
• INSERT: If you are monitoring a MySQL 5.6, or higher, this privilege is not required. Required to
create the UUID used by the agent.
• CREATE: If you are monitoring a MySQL 5.6, or higher, this privilege is not required. The MySQL
Enterprise Monitor Agent can create tables. During discovery, the agent creates the table
inventory within the mysql database that stores the UUID for the server. Without this table,
the agent cannot determine the UUID of the server, which it sends along with other information to
MySQL Enterprise Service Manager.
Note
If you manage your General and Limited users manually, you must also grant
this privilege to those users.
• DROP on the ndb_objects table, a requirement for MySQL Enterprise Monitor Agent 8.0.22 or
higher.
For example, the following GRANT statement gives the agent the required rights:
GRANT SELECT, CREATE USER, REPLICATION CLIENT, SHOW DATABASES, SUPER, DROP, PROCESS
ON *.*
TO 'agent_user'@'localhost';
Note
When using Auto-Create Less Privileged Users, also add WITH GRANT
OPTION to the above statement.
For security reasons, you might limit the CREATE, DROP, and INSERT privileges to the agent so that it
can only create tables within the mysql database:
GRANT CREATE, DROP, INSERT
ON mysql.*
39
Creating the Limited and General Users
TO 'agent_user'@'localhost';
If the master, or slave, runs a version of MySQL earlier than 5.6, you must grant the SELECT privilege
on the mysql.inventory table for each user with replication privileges on the corresponding
replication master. This enables MySQL Enterprise Monitor Agent to read the replication master UUID.
For example:
GRANT SELECT
ON mysql.inventory
TO 'replicationuser'@'%';
Note
Perform this step after running the agent on the corresponding MySQL server to
ensure that the mysql.inventory table is created correctly. Start the agent,
shut the agent down, run the above GRANT statement, then start the agent.
If the agent cannot access the information from the table, a warning containing this information is
written to the agent log.
Note
You might disable logging for the grant statement to prevent the grant
information being replicated to the slaves. In this case, execute the statement
SET SQL_LOG_BIN=0 before executing the above GRANT statement.
Important
If the Auto-Create Less Privileged Users box is unchecked and the credentials for the General and
Limited users blank, the Agent only uses the Admin user for monitoring.
If the Auto-Create Less Privileged Users box is unchecked, you can enter credentials for the General
and Limited users. If you define these users. you must create them on the monitored assets manually.
The installer attempts to validate these users and displays a warning message if they are invalid. The
installation process continues, and the Agent works properly, but you must create those users later.
In a typical configuration, the Agent runs on the same host as the MySQL server it is monitoring, so
the host name is often localhost. If the Agent is running on a machine other than the monitored
MySQL server(s), then change localhost to the appropriate value. For more information about
remote monitoring, see Section 6.7, “Configuring an Agent to Monitor a Remote MySQL Server”.
40
Monitoring Agent Graphical Installation Wizard
Note
To automatically start the agent upon rebooting, you must install while logged in
as root. If you install as an unprivileged user, you must start the agent yourself
after each reboot.
Note
You can also install the Monitor Agent in unattended mode. For more information on unattended
installation, see Section 9.1, “Unattended Installation”.
Note
Note
2. The Language Selection dialog is displayed. Select your language, and click OK.
3. Either change the installation directory, or accept the default value, and choose the connection type
for the agent.
• TCP/IP: select if the agent uses TCP/IP to connect to the monitored database. This option is not
available on Microsoft Windows platforms. TCP/IP is used by default.
• Socket: select if the agent uses socket to connect to the monitored database. This is only
possible if the agent is monitoring a local database. This option is not available on Microsoft
Windows platforms.
If you choose Socket, you must enter the path to the socket later in the installation process.
Click Forward. The Monitoring Options dialog is displayed. The installation starts and the files are
copied to the installation directory.
4. You can choose whether to monitor the host on which the agent is installed, or the host and a
MySQL instance. If you select host only, you have to configure the connection to the MySQL
Enterprise Service Manager, but no other configuration is required. If you select host and database,
you must also configure the database connection parameters.
41
Monitoring Agent Graphical Installation Wizard
Click Forward. If you are installing on Apple OS X, the Install as a service dialog is displayed.
This dialog enables you to install the agent as a service, which restarts each time the host is
restarted. This option requires an Administrator's password.
On all other platforms, the MySQL Enterprise Monitor Options dialog is displayed.
5. The MySQL Enterprise Monitor Options dialog is displayed. Complete the following:
• Hostname or IP address: the hostname or IP address of the server where MySQL Enterprise
Service Manager is installed.
• Tomcat SSL Port: the SSL port the MySQL Enterprise Service Manager is listening on.
• Agent Username: the agent username. This is the username all agents must use to connect to
the MySQL Enterprise Service Manager.
• Agent Password: the agent's password. This is the password all agents must use to connect to
the MySQL Enterprise Service Manager.
6. The Monitored Database Configuration Options enables you to choose the remaining steps of
the installation. The following options are available:
• Validate hostname, port, and Admin account privileges: select this option to attempt
a test connection to the database with the supplied credentials, defined in the Monitored
Database Information dialog. If you do not select this option, the installer does not attempt a test
connection to the database with the supplied credentials.
Note
• Configure encryption settings for user accounts: select this to configure the Encryption
Settings dialog. If selected, this dialog is displayed after the Monitored Database Information
dialog. The Encryption Settings dialog enables you to define the SSL options for connections to
SSL-enabled MySQL Instances.
Important
• Configure less-privileged user accounts: select if you intend to define the less-privileged user
accounts, General and Limited.
42
Starting/Stopping MySQL Enterprise Monitor Agent
7. The Monitored Database Information dialog enables you to define the connection parameters for
the MySQL instance the agent monitors.
• MySQL hostname or IP address: the IP address or hostname of the server on which the
MySQL instance is running.
• Admin User: the admin user the agent uses. This can be the root user, or another user with the
SUPER privilege.
• Monitor Group: the group to which you want the instance to be added in MySQL Enterprise
Service Manager. If the group does not exist, it is created, and the monitored instance added to
it.
Click Forward. If you selected Validate hostname, port, and Admin account privileges on the
Monitored Database Configuration Options dialog, the supplied credentials are verified against
the MySQL instance.
If you selected Configure encryption settings for user accounts on the Monitored Database
Configuration Options dialog, the Encryption Settings dialog is displayed.
8. The Encryption Settings dialog enables you to define the SSL connection parameters for your
connection to the SSL-enabled MySQL Instance.
• Require Encryption: enforces encrypted connections between the agent and the MySQL
instance.
• Auto-create Less Privileged Users: select to automatically create the users, using the
credentials supplied. If you do not create these users, all agent queries are run as the Admin
user.
Click Forward to create the Agent account and complete the installation.
43
Starting/Stopping the Agent on macOS
You have the option of starting the Monitor Agent from the final installation screen. Otherwise you
can do this by going to the Start Menu and under Programs find MySQL and then the MySQL
Enterprise Monitor Agent entry. Simply select the Start MySQL Enterprise Monitor
Agent option.
Note
Warning
To report its findings, the agent needs to be able to connect to the Monitor UI
through the port specified during installation. The default value for this port is
18443; ensure that this port is not blocked. If you need help troubleshooting the
agent installation see, Section 6.10, “Troubleshooting the Agent”.
Alternately, you can start the agent from the command line by entering:
$> sc start MySQLEnterpriseMonitorAgent
or:
$> net start MySQLEnterpriseMonitorAgent
You can also start the agent by issuing the command, agentctl.bat start. Stop the agent by
passing the argument, stop. This batch file is found in the Agent directory.
For confirmation that the service is running you can open the Microsoft Management Console Services
window. To do this go to the Control Panel, find Administrative Tools and click the link to
Services. Locate the service named MySQL Enterprise Monitor Agent and look under the
Status column.
You can also start the agent from this window rather than from the Start menu or the command
line. Simply right-click MySQL Enterprise Monitor Agent and choose Start from the pop-up
menu. Starting the agent from this window opens an error dialog box if the agent cannot connect to
the MySQL server it is monitoring. No error is displayed if the agent is unable to connect to the MySQL
Enterprise Service Manager.
The pop-up menu for starting the agent also offers the option of stopping the agent. To stop the agent
from the command line you only need type:
$> sc stop MySQLEnterpriseMonitorAgent
or:
$> net stop MySQLEnterpriseMonitorAgent
Note
44
Starting/Stopping the Agent on Unix
Using init
Alternatively, an init.d script to start the Agent on macOS is located in the /Applications/mysql/
enterprise/agent/etc/init.d directory. To start the Agent navigate to this directory and at the
command line type:
$> ./mysql-monitor-agent start
If the agent cannot be stopped because the pid file that contains the agent's process ID cannot be
found, you can use kill to send a TERM signal to the running process:
$> kill -TERM PID
If you run more than one agent on a specific machine, you must also specify the path to the ini file
when you stop the agent. Executing mysql-monitor-agent stop without an ini file only stops the
agent associated with the default ini file.
The resulting message indicates whether the agent is running. If the agent is not running, use the
following command to view the last ten entries in the general Agent log file:
$> tail /Applications/mysql/enterprise/agent/logs/mysql-monitor-agent.log
For further information on troubleshooting the agent, see Section 6.10, “Troubleshooting the Agent”.
To see all the command-line options available when running the monitor agent, navigate to the
/Applications/mysql/enterprise/agent/etc/init.d directory and execute mysql-
monitor-agent help, which displays the usage message:
$> ./mysql-monitor-agent {start|stop|restart|status}
Warning
To report its findings, the agent connects to the Monitor UI through the port
specified during installation. The default value for this port is 18443; ensure that
this port is not blocked. To troubleshoot the agent installation, see Section 6.10,
“Troubleshooting the Agent”.
45
sql_mode
If the agent cannot be stopped because the pid file that contains the agent's process ID cannot be
found, you can use kill to send a TERM signal to the running process:
$> kill -TERM PID
The resulting message indicates whether the agent is running. If the agent is not running, use the
following command to view the last ten entries in the general Agent log file:
$> tail /opt/mysql/enterprise/agent/logs/mysql-monitor-agent.log
For further information on troubleshooting the agent, see Section 6.10, “Troubleshooting the Agent”.
To see all the command-line options available when running the monitor agent, navigate to the /opt/
mysql/enterprise/agent/etc/init.d directory and execute mysql-monitor-agent help,
which displays the usage message:
$> ./mysql-monitor-agent {start|stop|restart|status}
Warning
To report its findings, the agent connects to the Monitor UI through the port
specified during installation. The default value for this port is 18443; ensure that
this port is not blocked. To troubleshoot the agent installation, see Section 6.10,
“Troubleshooting the Agent”.
6.5.4 sql_mode
On startup, the agent sets
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
on the monitored MySQL instance. If sql_mode=ONLY_FULL_GROUP_BY, agent
queries can fail. The local agent of MySQL Enterprise Service Manager also sets
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION on the repository.
Make sure that the MySQL instance that you want to monitor has a suitable user to use for connecting
to the host. For more information, see Section 6.2, “Creating MySQL User Accounts for the Monitor
Agent”.
Typically, an Agent scans a host and reports unmonitored MySQL instances to MySQL Enterprise
Monitor User Interface. For more information, see Section 2.2, “MySQL Enterprise Monitor Agent”. For
information about how to change the status of a MySQL instance from unmonitored to monitored, see
Chapter 16, Manage Instances.
46
Remote Monitoring Limitations
The process for installing an Agent to monitor a MySQL server on a remote machine is identical to the
process described in Chapter 6, Monitor Agent Installation. Follow the directions given there, being
careful to either select "host-only" and add remote MySQL instances later, or specify the correct IP
address or host name for MySQL Enterprise Service Manager and likewise for the MySQL server—
since the Agent is not running on the same machine as the MySQL server, it cannot be the default
(localhost).
Ensure that the Agent has the appropriate rights to log in to the MySQL server from a host other than
localhost and that the port used by the MySQL server, typically 3306 must be open for remote
access. For more information about the database credentials required by agents see, Section 6.2,
“Creating MySQL User Accounts for the Monitor Agent”.
The Agent also needs to be able to log in to MySQL Enterprise Service Manager, typically using port
18443, so ensure that the appropriate port is open.
• Monitoring multiple MySQL instances with a single agent potentially means having a single point
of failure. This is especially true for remote monitoring, where a loss of connection means loss of
monitoring data, whereas an Agent installed on the same server as the MySQL instance continues
monitoring and transmits the backlog of data to the MySQL Enterprise Service Manager upon
reconnection.
• For replication autodiscovery, do not use remote monitoring for replicas or sources. The Agent must
be installed on the same machine as the server you are monitoring for discovery to work properly.
For more information, see Chapter 28, Replication Dashboard.
Replace the agent_name and password with suitable values. Likewise replace port 18443 if you
are not running the Monitor UI on this port. Use localhost for the host name, since the agent is
connecting through an SSH tunnel.
Next, execute the following command on the machine where the agent is running:
$> ssh -L 18443:Monitor_UI_Host:18443 -l user_name -N Monitor_UI_Host
If you are not running MySQL Enterprise Service Manager on port 18443, substitute the appropriate
port number. Likewise, replace Monitor_UI_Host with the correct value. user_name represents a
valid operating system user on the machine that hosts the MySQL Enterprise Service Manager.
Be sure to restart the agent so that the new value for the hostname takes effect. For instructions on
restarting the agent see:
47
HTTP Connection Timeout
If set to zero (0), no timeout is defined. Negative values are not supported.
• To run on start-up, the agent requires correct login credentials for the monitored MySQL server. Log
in to the monitored MySQL server and check the agent's credentials. Compare the values of the
Host, and User fields in the mysql.user table with the values shown in the etc/agentManaged/
mysqlConnection<id>/bean/json file. The passwords are encrypted so they can not be
manually managed here, but the password can be altered from the MySQL Instances page in the
MySQL Enterprise Monitor User Interface, or by using the agent connection tool (agent.sh) from
the command line.
• Using incorrect credentials for logging in to the service manager creates an entry in the agent log file.
• An easy way to confirm that the agent can log in to the service manager is to type
https://Monitor_UI_Host:18443/heartbeat into the address bar of your web browser,
substituting the appropriate host name and port. When the HTTP authentication dialog box opens,
enter the agent user name and password. The following message indicates a successful login:
<exceptions>
<error>E0401: NullAgentPayloadException: []</error>
</exceptions>
Note
Despite the fact that the preceding listing shows an error, you have logged
in successfully. This error appears because you have logged in but with no
“payload”.
If you can log in successfully in the way described above and the agent is running, then there may
be errors in Agent's configuration. Compare the host name, port, agent name, and password used
in MySQL Enterprise Monitor User Interface, and also check it using agent.sh, with the values you
entered into the address bar of your web browser.
• If HTTP authentication fails, you may be using incorrect credentials for the agent. Attempting to log in
to the service manager using incorrect credentials creates an entry in the agent log file.
If no HTTP authentication dialog box is displayed, and you are unable to connect, the host name or
port number might be specified incorrectly. Confirm the values you entered against those described
48
Agent Backlog
• To check if a blocked port is the problem, check your firewall's configuration for that port number.
Open the port specified during installation and restart the agent. If necessary you can monitor
outside the firewall using an SSH tunnel. For more information, see Section 6.8, “Monitoring Outside
the Firewall with an SSH Tunnel”.
• Running the agent from the command line sometimes displays errors that fail to appear in the log file
or on the screen when the agent is started from a menu option. To start the agent from the command
line see the instructions given at the start of this section.
• If you have more than one agent running on the same machine, the UUID must be unique.
• If the agent and the MySQL server it is monitoring are running on different machines, ensure that the
correct host is specified for the agent account. The correct port, typically 3306, must also be open
for remote login. For more information about remote monitoring see, Section 6.7, “Configuring an
Agent to Monitor a Remote MySQL Server”.
• On MySQL 5.5, or earlier, MySQL Enterprise Monitor Agent and MySQL Enterprise Service Manager
use the unique host ID, stored within the mysql.inventory table on the monitored MySQL Server,
to determine whether the instance being monitored is a clone. The host ID of the current server is
checked against the stored value when the agent starts. If the generated host ID and stored host ID
do not match, you get an error similar to the following in the agent log file:
%s: [%s] the hostid from mysql.inventory doesn't match our agent's host-id (%s != %s)
We assume that this is a cloned host and shutdown now.
Please TRUNCATE TABLE mysql.inventory on this mysql-instance and restart the agent.
If this is a master for replication, please also run SET SQL_LOG_BIN = 0; first.
To fix the problem, connect to the MySQL server using the credentials configured when you installed
the agent, and then truncate the mysql.inventory table:
mysql> TRUNCATE mysql.inventory;
Now restart the agent, which recreates the mysql.inventory table with the updated instance
UUID and hostid information.
• Monitoring one MySQL instance: the agent backlog can store up to 40 minutes of monitored data
before the backlog cache is filled and data dropped.
• Monitoring 10 MySQL instances: the agent backlog can store up to 4 minutes of monitored data
before the backlog cache is filled and data dropped.
49
50
Chapter 7 Upgrading MySQL Enterprise Monitor Installations
This chapter describes the upgrade process for MySQL Enterprise Monitor 8.0.
Important
It is not possible to upgrade any version older than MySQL Enterprise Monitor
3.4.0 directly to 8.0. To upgrade an older installation, you must first upgrade to
3.4.x, then upgrade to 8.0.
Customizations to setenv.sh are lost, as this file is replaced and optimized during an upgrade.
The installation and configuration of MySQL Enterprise Monitor Agent must be standard before you
start the installation. The update installer cannot upgrade agents where you have changed or modified
the file names or directory layout of the installed agent.
Important
Warning
The upgrade installer for MySQL Enterprise Service Manager overwrites any
changes made to the my.cnf in your MySQL Enterprise Service Manager
installation. Backup the existing my.cnf file before starting the upgrade
installer.
Important
MySQL Enterprise Service Manager is bundled with the latest MySQL server.
If you are using the bundled MySQL server for your repository (default
installation), the upgrade process upgrades your repository to the latest version
bundled. If you are using another MySQL Server as your repository, you must
upgrade it manually before installing MySQL Enterprise Service Manager.
If you attempt to configure a repository which does not meet the version
prerequisites, the upgrader displays an error message, and the installation
cannot continue.
51
Upgrade Installer
Upgrade Installer
The name of the upgrade file varies, but includes the target operating system, the
version installed by the upgrade, and the component name. For example, a file named
mysqlenterprisemanager-8.0.14-windows-update-installer.exe updates MySQL
Enterprise Service Manager on Microsoft Windows to version 8.0.14.
Run the installation file and choose the directory of your current installation and whether or not you
wish to back up your current installation. The time required to complete the process varies depending
upon the nature of the update.
You can run an unattended upgrade, the same way you run an unattended install. To see all the
options you can specify during the upgrade process, run the update installer with the --help option.
For more information on the unattended upgrade process, see Section 9.1.2, “MySQL Enterprise
Service Manager Options”.
1. Select the required installation language and click Forward. The Installation Directory dialog is
displayed.
2. Confirm the location of your existing installation and click Forward. The Backup of Previous
Installation dialog is displayed.
3. If you want to backup your existing installation, select Yes and edit the Backup directory field if
required.
4. Confirm the values in the Tomcat Server Port and Tomcat SSL Port fields.
The upgrade is now ready to install. Click Forward to upgrade your installation, or Back to review
or edit any values.
The upgrade process shuts down the MySQL Enterprise Service Manager services and performs
the backup of the existing installation, if you chose to do so, then copies the new files to the
installation directory, and starts the new services.
6. The installation completes. You are prompted to launch and configure the application.
Note
If you are using LDAP and have imported your own SSL certificates into the
keystore of the Java VM bundled with your MySQL Enterprise Monitor, you
52
Agent Upgrade Process
must extract them from the backup listed below and manually re-import them,
as this upgrade included a new Java VM.
1. Select the required installation language and click Forward. The Installation Directory dialog is
displayed.
3. Confirm the location of your existing installation and click Forward. The Backup and Restart
Options dialog is displayed.
• Backup the current installation check box, specify an alternate location if required. This option
is enabled by default.
If you do not want to back up your existing installation, deselect this check box.
• Restart Agent immediately after updating all files check box. Enabled by default.
If you want to start your agent manually, at a later time, deselect this check box.
If you chose to back up your current installation, a directory named backup is created in the current
installation directory. This directory contains copies of the directory or directories that are replaced
during the update. In cases where only specific files are replaced, the backup directory may contain
only these files. To undo the update, stop both the MySQL Enterprise Service Manager and MySQL
Enterprise Monitor Agent, delete the files and directories in the installation directory, except for the
backup directory. Copy the contents of the backup directory to the installation directory. Then restart
the services.
If you choose to back up your current installation, the installer checks that there is adequate disk space
for your repository backup. If there is not enough space, you are given the option of choosing another
location; you can also choose not to back up the repository.
53
54
Chapter 8 Post-installation Considerations
Depending upon your use of MySQL Enterprise Monitor, you might perform some or all of these tasks
after installation.
New Users
1. Groups and Connections: Groups have always been used to define Event handling and Advisor
scheduling policies; in this release Groups can also be used to restrict visibility and access to
specific MySQL instances and their hosts. Before you create Connections and set up Groups, we
recommend you first read the note immediately following on Users, Roles, and Access Control
• To create connections, select Instances from the Configuration section of the navigation menu .
Create new monitoring connections either by processing the unmonitored instances already
discovered by MEM or by manually specifying connection parameters for each MySQL Instance
you want to monitor. See Section 16.2, “Monitored Instance Details” for more information on
creating connections in the User Interface.
• Select Groups from the Configuration section of the navigation menu to collect your MySQL
instances into Groups.
2. Users, Roles, and Access Control (ACLs): Before creating your user accounts, see Chapter 23,
Access Control and Chapter 24, Access Control - Best Practices.
Do you want to provide open access to all monitored resources for all Users? Or define Roles
granting access to specific groups of MySQL Instances? If you intend to restrict access in this way,
you must first create Groups of MySQL instances, see Chapter 18, Managing Groups of Instances.
Only after you create groups can you create group-specific Roles.
You can also map users to Roles defined in LDAP or Active Directory.
3. Configure Event Handling and Notification policies: Open Event Handling from the navigation
menu. Complete, and test, the SMTP, or SNMP, configuration. See Chapter 22, Event Handlers for
more information.
4. Overview: Select Overview from the navigation menu. Set the defaults for the groups you want to
view, the time range, and graphs to display. See Chapter 25, Overview for more information.
5. Replication: If you are using MySQL Replication, select Replication a from the navigation menu
and select a group to view its configuration, status and replication error details. Select Topology
a from the navigation menu to see the topology of the replication. See Chapter 28, Replication
Dashboard for more information.
6. Advisors: You can accept the defaults defined, or select Advisors from the Configuration section
of the navigation menu and customize the threshold for groups, or individual MySQL Instances. For
more information, see Chapter 19, Advisors.
7. SQL Performance Tuning: If you are monitoring instances of MySQL running version 5.6.14 or
later, rich SQL performance tuning data is available in the Query Analyzer.
8. I/O and Lock Contention: If you are using MySQL 5.6 or later consider deploying the sys schema,
and making use of the Database File I/O and Lock Waits reports from the Reports & Graphs
menu. These help you identify who or what is using the most I/O, and whether there is any lock wait
55
Existing users: Guide to completing your upgrade
contention within your MySQL Instance. See Section 30.2, “Database File I/O and Lock Waits” for
more information.
• Overview: If you have not already done so, select Overview from the navigation menu and
familiarize yourself with the updated design. Then set defaults for which Group you want to view, the
graph time range, and the set and order of Graphs to display. See Chapter 18, Managing Groups of
Instances.
These instructions guide you through the process of installing SSL certificates for your MySQL
Enterprise Monitor installation.
To generate the certificate and add it to the default keystore, run the following command with the
MySQL Enterprise Monitor Configuration Utility:
config --renew
This regenerates the self-signed certificate. If the certificate is not self-signed, an error is displayed.
56
SSL for the Repository
Restart the service manager. For more information about stopping and starting the service manager,
see the instructions for Unix/macOS and Microsoft Windows.
Verify that the hostname of the service manager that the agent is
connected to matches what is in the SSL certificate.
ssl-allow-self-signed- Values:True (default) or False.
certs
SSL connection between agent and MySQL instance.
file:///Applications/mysql/enterprise/agent/etc/
mykeystore
ssl-ca-keystore- Values: String
password
SSL connection between agent and MySQL instance.
ssl-verify-hostname=false
ssl-allow-self-signed-certs=true
ssl-ca-keystore-path=file:///Applications/mysql/enterprise/agent/etc/mykeystore
ssl-ca-keystore-password=password123
To import a CA certificate in PEM format to a new keystore on the Agent, execute the following:
57
LDAP SSL Configuration
You must edit the ssl-ca-* configuration values in bootstrap.properties accordingly, to use the
path to the keystore and password.
Note
The connection between the agent and service manager is also an SSL
connection.
Important
The JVM shipped with MySQL Enterprise Service Manager does not support
the AES256 cipher. This can prevent you using LDAP servers which implement
that cipher.
To connect to LDAP servers which implement the AES256 cipher, you must
download and install the Java Cryptography Extension (JCE) Unlimited
Strength Jurisdiction Policy Files 8 package. This package is available from:
Java Cryptography Extension.
The steps described in this section assume your LDAP server is correctly configured and you have a
root CA certificate which was used to generate the LDAP server's certificate.
To enable SSL for LDAP and MySQL Enterprise Service Manager, you must do the following:
1. Convert the LDAP server's root CA certificate from PEM to DER format, if necessary. If the CA
certificate is already in DER format, continue to the next step.
openssl x509 -in cacert.pem -inform PEM -out ~/cacert.der -outform DER
2. Import the CA certificate, in DER format, into the MySQL Enterprise Service Manager Java
keystore. Run the following command from the bin directory of your MySQL Enterprise Service
Manager's Java installation:
keytool -import -trustcacerts -alias ldapssl -file ~/cacert.der -keystore lib/security/cacerts
58
Changing an SSH Host Key
The following is an example of how to use mysqldump to export all databases in the repository
instance to a dump file named mem.dump:
Note
This example assumes you are using the MySQL instance solely as the
repository for MySQL Enterprise Service Manager and not for any other
purpose. This is the recommended implementation.
The above command creates a file, mem.dump, containing all MySQL Enterprise Service Manager
data.
To restore the dump file, run the following mysql command on a clean instance:
• apache-tomcat/conf/Keystore
• apache-tomcat/conf/server.xml
• java/lib/security/cacerts
• apache-tomcat/webapps/ROOT/WEB-INF/config.properties
• apache-tomcat/webapps/ROOT/WEB-INF/configArea/mem.keystore
You can also use MySQL Enterprise Backup to manage your repository backup process. For more
information, see the MySQL Enterprise Backup documentation.
Note
On UNIX, Linux and macOS platforms, use the ssh-keygen utility. On Microsoft Windows platforms,
there are several tools, but this example uses puttygen.
To generate a new SSH key for the monitored host, do the following:
59
Changing an SSH Host Key
On each monitored host, run the following commands to print out the SSH public key fingerprints:
ssh-keygen -l -f /etc/ssh/ssh_host_key.pub
ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
and compare the fingerprints between each server. Remove the existing key and regenerate the
key for each server with a duplicate key using the following instructions.
2. On the monitored host, delete the existing, duplicate SSH key. For example:
sudo rm -f /etc/ssh/ssh_host_*
3. On the monitored host, regenerate the SSH keys. This operation requires you to add each of these
hosts to your SSH keyring the next time you connect. For example:
sudo ssh-keygen -f /etc/ssh/ssh_host_key -N '' -t rsa1
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
Note
The key can be generated using RSA (SSH1 or SSH2), DSA, or ECDSA. All
are supported by MySQL Enterprise Monitor.
5. Note
This step is required on MySQL 5.5 instances, only. It is not required on any
version of MySQL 5.6, or higher.
60
Chapter 9 Unattended Installation Reference
9.1 Unattended Installation
This section explains how to automate the install and upgrade procedures for MySQL Enterprise
Service Manager and MySQL Enterprise Monitor Agent components, to perform those operations
across one or multiple machines without any user interaction.
To perform an unattended installation, specify the installation mode as unattended by using the mode
command line option. In this mode, you specify all the installation parameters, such as the installation
directory, and user, password, and network options, through command-line options. For convenient
scripting, you can save these options in a text file and run the installer using the optionfile option.
Before performing an unattended installation, familiarize yourself with the options by doing at least one
interactive MySQL Enterprise Monitor install. Read the regular installation instructions, since some
tasks still remain after an unattended installation: you must configure the MySQL Enterprise settings,
and start up all the services/daemons.
There are two methods for installation: either specify the option on the command line, or use an options
file containing the relevant options and their values.
The following example shows how to install MySQL Enterprise Monitor Agent by command-line:
$> mysqlmonitoragent-version-linux-x86-64bit-installer.bin
--installdir /data0/mysql/agent
--mysqlhost 127.0.0.1 --mysqlport 3306
--mysqluser root --mysqlpassword foo --agent_autocreate
--limiteduser limited --limitedpassword foo --generaluser general --generalpassword foo
--checkmysqlhost yes --managerhost localhost --managerport 48080 --agentuser AGENTUSER
--agentpassword PASSWORD --mode unattended --mysql-identity-source default
For unattended installation using an option file, create a text file containing the installation parameters.
The following example uses a sample configuration file named options.server.txt:
debugtrace=/opt/mysql/enterprise/install.debugtrace.monitor.log
mode=unattended
installdir=/opt/mysql/enterprise/monitor
tomcatport=8080
tomcatsslport=8443
adminpassword=myadminpassword
dbport=3300
mysql-identity-source=host_plus_datadir
This file identifies a directory and file name for a log file, sets the mode to unattended, and uses the
installdir option to specify an installation directory.
Note
The only options that must be specified in an option file when installing MySQL
Enterprise Service Manager are mode (if not specified at the command line),
installdir, and adminpassword.
61
MySQL Enterprise Service Manager Options
Check the options in your option file closely before installation; problems during
unattended installation do not produce any error messages.
Put the monitor installer file and the options file in the same directory.
The following examples show how to start the unattended installation from the command line.
On macOS, locate the installerbuilder.sh within the installation package directory. For example:
$> ./mysqlmonitoragent-version-osx-installer.app/Contents/MacOS/installbuilder.sh
--optionfile options.server.txt
When installing MySQL Enterprise Monitor Agent, the same basic process can be followed using
MySQL Enterprise Monitor Agent installer and the corresponding agent options.
As a minimum for MySQL Enterprise Monitor Agent installation, specify the mode (if not specified at the
command line), mysqluser, installdir, mysqlpassword, and agentpassword options. Create a
file containing these values and use it with the optionfile option for unattended agent installation.
62
MySQL Enterprise Service Manager Options
• --help
Command-Line Format --help
• --version
Command-Line Format --version
• --backupdir
Command-Line Format --backupdir
Type String
• --createDataBackup
Command-Line Format --createDataBackup
Type Boolean
Default Value 1
Valid Values 0 (Do not create data backup)
Upgrade only. Specifies whether the upgrade process should create a backup of the existing data. If
--backupdir is not defined, a Backup directory is created in the root of the installation directory.
• --optionfile
Command-Line Format --optionfile
The path to the option file containing the information for the installation.
• --mode
Command-Line Format --mode
Type String
Default Value (Linux) gtk
Default Value (OS X) osx
Default Value (Unix) xwindow
Default Value (Windows) win32
Valid Values (Linux) gtk (GTK (X Windows))
63
MySQL Enterprise Service Manager Options
• --debugtrace
• --debuglevel
Set the debug information level for log data written to the file specified by debugtrace.
• --installer-language
ja (Japanese)
• --installdir
The installation directory for MySQL Enterprise Service Manager, or the previous installation
directory when performing an update. Installation only. It is not possible to change the installation
directory in an upgrade.
• --system-size
Defines the installation type. This choice sets parameters which suit your installation type. Installation
only. It is not possible to change the system size in an upgrade.
• --tomcatport
The TCP/IP port for MySQL Enterprise Service Manager. This port is used by MySQL Enterprise
Monitor Agent and as the port for the interface to the MySQL Enterprise Monitor User Interface.
Installation only. It is not possible to change the Tomcat port in an upgrade.
• --tomcatsslport
The TCP/IP port to use for SSL communication to the MySQL Enterprise Service Manager.
Installation only. It is not possible to change the Tomcat SSL port in an upgrade.
• --mysql-identity-source
host_plus_datadir (host_plus_datadir)
The mechanism used to generate a unique identity for the MySQL instance if one does not already
exist. Passing in default uses either the server_uuid variable if present, or generates a random
new one. Passing in host_plus_datadir uses a hash of the host identity and the path to the
MySQL instance's data directory, to create a unique identity.
Note
Note
• --adminuser
The user name to use for connecting to the database repository used by MySQL Enterprise Service
Manager. If you install the bundled MySQL server, this user is configured in the new database. If you
use an existing MySQL server, specify an existing user with rights to access the database.
Note
The repository user name and encrypted password are stored in the
config.properties configuration file.
• --unattendedmodeui
The UI elements to use when performing an unattended installation. The options are none, show
no UI elements during the installation; minimal, show minimal elements during installation;
minimalWithDialogs, show minimal UI elements, but include the filled-dialog boxes.
• --adminpassword
66 MySQL Enterprise Service Manager password for connecting to the MySQL database repository.
MySQL Enterprise Service Manager Options
• --mysql_installation_type
Specifies whether the installer should configure MySQL Enterprise Service Manager to install
the bundled MySQL server, or use a MySQL server that you have already installed to store the
repository data.
• --dbport
The TCP/IP port for the MySQL database used to store MySQL Enterprise Service Manager
repository data. If you install the bundled MySQL server, this is the port where the new database
listens for connections. If you use an existing MySQL server, specify the port used for connections by
that MySQL server.
• --dbhost
The hostname for the MySQL database. When installing MySQL Enterprise Service Manager to
use an existing MySQL server, this should be the hostname of the server that stores the database
repository.
• --dbname
• --forceRestart
1 (Restart services)
67
Force a restart of MySQL Enterprise Service Manager services.
MySQL Enterprise Monitor Agent Options
68
MySQL Enterprise Monitor Agent Options
• --agentpassword
Command-Line Format --agentpassword
Type String
Specify the agent password to use to communicate with the MySQL Enterprise Service Manager.
• --createBackup
Command-Line Format --createBackup
Type Boolean
Default Value 1
Note
This option is only available when upgrading the Agent, and not when
performing a new Agent installation.
• --restartImmediately
Command-Line Format --restartImmediately
Type Boolean
Default Value 1
Note
This option is only available when upgrading the Agent, and not when
performing a new Agent installation.
• --agentuser
Command-Line Format --agentuser
Type String
Default Value agent
Specify the agent username to use to communicate with the MySQL Enterprise Service Manager.
• --checkmysqlhost
Command-Line Format --checkmysqlhost
Type String
Default Value yes
Valid Values yes (Check host)
69
MySQL Enterprise Monitor Agent Options
• --debuglevel
Set the debug information level for log data written to the file specified by debugtrace.
• --debugtrace
Set the filename to use when recording debug information during the installation.
• --installdir
• --installer-language
ja (Japanese)
• --managerhost
• --managerport
70
MySQL Enterprise Monitor Agent Options
• --mode
Specify the installation mode to use for this installation. The GUI is executed by default, with the
possible values including text and unattended. On Linux, the GUI options are gtk (default) and
xwindow.
• --mysqlconnmethod
Specify the connection method to use to connect to MySQL. If you specify tcpip, the value of the
mysqlport option is used. If you specify socket, the value of the mysqlsocket option is used to
connect to the MySQL server to be monitored.
Note
This option is only available when installing the Agent, and not when
performing an Agent upgrade. 71
MySQL Enterprise Monitor Agent Options
• --mysqlhost
• --mysqlpassword
Specify the password to use when connecting the Admin user to the monitored MySQL instance.
• --mysqlport
The TCP/IP port to use when connecting to the monitored MySQL server.
• --mysqlsocket
Specify the filename of the MySQL socket to use when communicating with the monitored MySQL
instance.
• --mysqluser
An MySQL Server administrative user for the MySQL instance to monitor. This user must already
exist.
• --agent_autocreate
Auto-create the less privileged users (--generaluser and -limiteduser) using the --
mysqluser user. Use this option if the limited and general users do not already exist on your
system.
The default value depends on the context. For new installations, it is "1", and for upgrades it is "0".
72 • --generaluser
Type String
• --generalpassword
• --limiteduser
• --limitedpassword
• --optionfile <optionfile>
Specify the location of an option file containing the configuration options for this installation.
• --unattendedmodeui
The UI elements to use when performing an unattended installation. The options are none, show
no UI elements during the installation; minimal, show minimal elements during installation;
minimalWithDialogs, show minimal UI elements, but include the filled-dialog boxes.
• --version
• --agent_installtype
73
MySQL Enterprise Monitor Agent Options
Installation type for the Agent. Passing in standalone configures the Agent to only monitor the Host
itself. Passing in database configures the Agent to monitor both the Host and a specific MySQL
Instance.
Note
• --mysqlconnectiongroup
• --agentservicename
When MySQL Enterprise Monitor Agent is installed, a new service is created (Windows), or on Unix
or OS X a new startup script is created within the corresponding startup directory (for example /
etc/init.d on Unix or /Library/LaunchDaemons on OS X). When installing multiple agents
on the same host, you can use this option to create each agent installation with a unique identifier.
During an upgrade installation, you then use this identifier to specify which installation of the agent to
update.
Note
This option is only available when installing the Agent, and not when
performing an Agent upgrade.
• --help
74
Chapter 10 Performance Tuning MySQL Enterprise Monitor
There are two major components of the Service Manager that require tuning, the MySQL Instance
that is used for the Repository, and the Apache Tomcat application server that serves the Web UI and
performs the back-end collection and analysis of data.
Tuning Tomcat
If you experience MySQL Enterprise Service Manager performance issues, increasing the amount
of RAM available to the JVM installed with Tomcat can resolve those issues. The JVM memory
settings are defined by the JAVA_OPTS line of the setenv file which sets the environment variables for
Tomcat.
• --JvmMs (Windows)/-Xms (all other platforms): sets the minimum size of the Tomcat JVM heap.
• --JvmMx(Windows)/-Xmx (all other platforms): sets the maximum size of the Tomcat JVM heap.
The minimum and maximum heap size are set to the same value to have all the available memory
set for the Tomcat JVM's sole use from startup.
• MaxPermSize: defines the maximum size of the pool containing the data used by Tomcat's JVM.
Important
This can be adjusted depending on the size of your installation, and the free memory on the host
that MySQL Enterprise Service Manager is installed upon. For example, if you have installed MySQL
Enterprise Service Manager on a well-resourced server with a 64-bit operating system, 64GB of RAM,
75
Tuning InnoDB Memory
and are monitoring more than 100 agents, increasing the heap size to 5 or 6GB may be necessary.
This depends on the MySQL server load, and amount of data collected by the agents.
Important
If you change these settings, you must restart MySQL Enterprise Service
Manager.
The following are examples of medium-sized, default settings, as defined by the medium installation
choice:
Microsoft Windows
set JAVA_OPTS=--JvmMs 768 --JvmMx 768 ++JvmOptions="-XX:+UseParallelOldGC"
++JvmOptions="-XX:+HeapDumpOnOutOfMemoryError"
++JvmOptions="-XX:HeapDumpPath=@@BITROCK_TOMCAT_ROOTDIR@@\temp"
++JvmOptions="-XX:MaxPermSize=512M"
If MySQL Enterprise Service Manager is insufficiently resourced, the monitoring agents are also
affected. If the agents are unable to communicate with MySQL Enterprise Service Manager, their
performance also degrades.
The configuration file for the repository can be found in the following locations:
Table 10.3 MySQL Enterprise Service Manager repository configuration file location (default)
Operating System Path
Microsoft Windows C:\Program Files\MySQL\Enterprise\Monitor\mysql\my.ini
Linux / Unix home/mysql/enterprise/monitor/mysql/my.cnf
macOS /Applications/mysql/enterprise/monitor/mysql/my.cnf
2. Copy the datadir contents to the new host (if moving to a fresh MySQL instance), or run
mysqldump and import the dump into the new MySQL instance.
3. Modify Tomcat's configuration to use the new MySQL Instance on the new host.
76
Tuning Apache Tomcat Threads
Update the configuration with the configuration tool. This tool can be found at the following location:
For more information on the configuration utilities, see Chapter 11, Configuration Utilities.
This is configured with the maxThreads setting within the server.xml configuration file*:
<Connector port="18443"
protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
...
A good baseline to test is the number of Agents that you have checking in to the Service Manager plus
50. For example if you have 150 Agents checking in, set the maxThreads variable to 200.
• A single agent, with default settings and all advisors enabled, should monitor no more than 10
MySQL instances.
• If the agent is monitoring more than 10 MySQL instances, the agent heap size must be increased by
64MB for every 10 additional MySQL instances.
The agent heap size is defined in the MEM_AGENT_JAVA_OPTS parameter in the setenv.sh/bat
file.
Note
77
Tuning Agent Memory Requirements
78
Chapter 11 Configuration Utilities
This chapter describes the utilities delivered with MySQL Enterprise Service Manager and MySQL
Enterprise Monitor Agent.
The parameters listed here, with the exception of the four repository connection
parameters, correspond to those displayed on the Welcome to MySQL
Enterprise Monitor page used for initial setup. For more information, see
Section 14.1, “Initial Log-In”.
Important
The config.sh / config.bat script is used to configure the MySQL Server Repository for the
Service Monitor. Its default location is as follows:
The Service Manager configuration utility contains the following sets of commands:
• Service Manager Configuration Utilities: define or change the configuration of MySQL Enterprise
Service Manager.
• Service Manager Certificate Utilities: modify or upgrade MySQL Enterprise Service Manager SSL
certificates.
79
Service Manager Configuration Utilities
Name Description
--mysql-server=<value> MySQL server for the Service Manager repository. This must be
a resolvable name or IP address of the server where the MySQL
--ms=<value> instance is running.
--mysql-check- Checks your repository to ensure compatibility with MySQL Enterprise
requirements Service Manager. For more information on the checks performed, see
Section 4.2.4, “MySQL Enterprise Monitor Repository”.
--mysql-upgrade Runs mysql_upgrade on the repository defined in --mysql-
basedir.
--mysql-basedir Base directory of the local MySQL installation.
--sm-admin- Service Manager manager username. The user defined here is added
user=<value> to the manager role.
--sm-agent- Service Manager agent username. The user defined here is added to
user=<value> the agent role.
--auto-update Enable automatic checking for online updates.
--purge-quan=<value> Defines the Query Analyzer data retention policy. Query Analyzer data
older than the number of days defined here is deleted. Default is 28
days.
--purge-data=<value> Defines the historical data retention policy. Historical data older than
the number of days defined here is deleted. Default is 28 days.
--proxy-host=<value> HTTP Proxy host.
--proxy-port=<value> HTTP Proxy port.
--proxy-user=<value HTTP Proxy username.
Important
Passwords are always requested via STDIN and are requested in the order
manager, agent, and proxy, regardless of the order in which they are defined on
the command line or in script.
The following example instructs MySQL Enterprise Service Manager to use a locally installed instance,
listening on port 3306, the mem database, and connect using the user service_manager.:
config.sh --mysql-server=localhost --mysql-port=3306 --mysql-db=mem
--mysql-user=service_manager
The following is an example of a basic setup, defining the admin and agent users, only. :
config.sh --sm-admin-user=admin --sm-agent-user=agent
Important
You are prompted to define passwords for each of the users defined.
Passwords are only accepted through STDIN.
80
Service Manager Certificate Utilities
Important
It is strongly recommended you use this utility to modify your SSL certificates
and not attempt to modify them with any other tool.
Name Description
--tomcat-backup-path=<value> Tomcat backup path to be used to perform
upgrade
--tbp=<value>
--upgrade Upgrades certificates on non-OS X platforms. That
is, Microsoft Windows, Linux, and so on.
--upg
--upgrade-osx Upgrades certificates on OS X platforms.
--upgo
--new-install Generates a keystore with a new self-signed
certificate for a new installation
--ni
--accept-keystore-password If specified, the user is prompted to enter the
keystore password. If not specified, the default
--akp password changeit is used to access the
keystore.
--renew Renew an existing, self-signed certificate. If the
certificate is not self-signed, an error is returned.
--import-certificate=<value> Imports the specified certificate. For example:
--import-certificate=/path/to/
client.crt
--import-key=<value> Imports the specified private key. For example:
--import-key=/path/to/client.key
Important
81
Agent Connection Utilities
The Service Manager configuration utility contains the following sets of commands:
• Agent Connection Utilities: test or edit the connections of MySQL Enterprise Monitor Agent to the
monitored MySQL instance.
• Agent Configuration Utilities: configure or edit the connection from MySQL Enterprise Monitor Agent
to MySQL Enterprise Service Manager.
Important
It is not possible to run agent.sh from the command line as root, but only as
mysql.
-T
--test-privileges Test the admin user's privileges to manage other users.
--create-connection Create or modify a MySQL connection.
-c
--delete-connection Closes and deletes a MySQL connection. This parameter
requires --connection-id.
-d
--show Show information about all MySQL connections on this
agent
-s
--auto-manage-extra-users Auto-create general / limited users (Actions: Create, Modify)
-m
--host=<value> Host for the MySQL instance (Actions: Create, Modify)
-h <value>
--port=<value> Port for the MySQL instance (Actions: Create, Modify)
-P <value>
--socket=<value> Socket for the MySQL instance (Actions: Create, Modify)
-S <value>
--limited-user=<value> Limited level credentials (Actions: Create, Modify)
-l <value>
--general-user=<value> General user credentials
82
Agent Configuration Utilities
Name Description
-k <value>
--admin-user=<value> Admin user credentials
-j <value>
--connection-id=<value> Connection ID
-i <value>
--connection-group=<value> Specify the name of the group to add this connection to.
If the named group does not exist, it is created and the
-g <value> connection added to it. This parameter can be used multiple
times in the --create-connection command. The
connection is added to each group named.
--force-plain-stdin, Force the use of STDIN for password inputs (password input
is not masked - this option is useful only for very specific
-f uses of these utilities, like calls from within automated
scripts)
--disable-topology-discovery Disable replication topology discovery. Use this parameter if
you are not using replication, or if you want to discover the
topology at a later time. Topology discovery can be time-
consuming.
--mysql-identity- Source of identity for the MySQL instance for this
source=<value> connection, default or host_plus_datadir. default
uses either the server_uuid variable, if present, or
generates a new uuid. host_and_datadir uses a hash of
the host identity and the path to the MySQL instance's data
directory to create a unique identity.
--require-encryption Require the use of TLS for the MySQL connection.
--allow-self-signed-certs When using --require-encryption, allow self-signed TLS
certificates.
--ca-file-path=<value> When using --require-encryption, but using a private
certificate authority, the path to the CA file.
The following example tests credentials for the root user on localhost:3306:
agent.bat --test-credentials --admin-user=root --host=localhost --port=3306
The following example creates a connection using only the admin user for localhost:3306:
agent.bat -c --admin-user=root --host=localhost --port=3306
The following example creates a connection, using only the admin user, to localhost:3306, and forces
STDIN password:
agent.bat -c --admin-user=root --host=localhost --port=3306 -f
The following example creates a connection, using only the admin user, to localhost:3306, and add to
the groups Standard, Special, and Third:
agent.bat -c --admin-user=root --host=localhost --port=3306
--connection-group=Standard --connection-group="Special Group"
--connection-group="Third Group"
83
Agent Configuration Utilities
Name Description
--agent-user=<value> Set the credentials that the Agent uses to connect to the
Service Manager
-u <value>
--url=<value> Set the URL for the Service Manager
-U <value>
--uuid=<value> Set the Agent UUID
-I <value>
--agent-group=<value> Set the MEM Group to use for all MySQL connections from
this Agent
-G <value>
--force-plain-stdin Force the use of STDIN password inputs (password input is
not masked - this option is useful only for very specific uses
-f of these utilities, like calls from within automated scripts)
--run-collection-tests Discover, and attempt to collect OS related assets and dump
them to STDOUT (for debugging)
-t
The following example sets the user name and URL used by the agent to connect to MySQL Enterprise
Service Manager:
agent.sh --agent-user=agent --url=https://localhost:8443
84
Chapter 12 Uninstalling MySQL Enterprise Monitor
Removing MySQL Enterprise Monitor requires removing MySQL Enterprise Service Manager and the
MySQL Enterprise Monitor Agents.
On Microsoft Windows 10, remove MySQL Enterprise Service Manager by opening Settings and
selecting Apps & Features. Locate the entry for MySQL Enterprise Monitor and select Uninstall.
The uninstall process prompts you to save existing data and log files. Choose this option if you plan to
reinstall at a later time.
If you do not want to backup the data, you can delete the C:\Program Files\MySQL\Enterprise
\Monitor directory after removing MySQL Enterprise Service Manager.
If you want to retain the backup, do not remove the C:\Program Files\MySQL\Enterprise
\Monitor directory. Doing so will delete these files.
On Microsoft Windows 10, remove MySQL Enterprise Monitor Agent by opening Settings and
selecting Apps & Features. Locate the entry for MySQL Enterprise Monitor Agent and select
Uninstall.
Warning
To remove only one of the agents from a machine hosting several agents, do
not remove the MySQL Enterprise Monitor Agent entry from the Add or
Remove Programs menu. To remove a single agent, see Removing a Single
Agent.
Removing MySQL Enterprise Monitor Agent automatically deletes its associated .log and .pid files.
After removing the Monitor Agent, you might need to remove the directories, C:\Program Files
\MySQL\Enterprise and C:\Program Files\MySQL\Enterprise\Agent.
Removing MySQL Enterprise Monitor Agent in this way also removes the agent service. If you are
running additional agents on the same server, you must remove them agents manually. See Removing
a Single MySQL Enterprise Monitor Agent for instructions on uninstalling individual agents.
85
macOS Platforms
You must stop the agent before attempting to remove it; for instructions on stopping an agent see,
Section 6.5.1, “Starting/Stopping the Agent on Windows”.
To confirm the location of the agent log files, check the ini file.
3. Remove the agent as a service. This can only be done from the command line.
Remove MySQL Enterprise Monitor Agent as a Windows service with the following command:
$> sc delete AgentName
Note
To confirm the agent has been removed, check the Services pane of the Microsoft Management
Console.
4. Remove or archive any log or configuration files associated with the agent.
The uninstall process prompts you to save existing data and log files. Choose this option if you plan to
reinstall at a later time.
If you do not want to backup the data, you can delete the installation directory after uninstalling MySQL
Enterprise Service Manager.
Removing the Monitor Agent automatically deletes its associated .log and .pid files. After
uninstalling MySQL Enterprise Monitor Agent, you can remove the installation directory.
86
Unattended Uninstallations
It is best to stop the agent before removing it; for instructions on stopping an agent, see Section 6.5.2,
“Starting/Stopping the Agent on macOS”.
To confirm the location of the agent log files, check the .ini file.
You can then remove the agent as a daemon by removing its entry in the init.d directory.
Also remove or archive any log or configuration files associated with this agent.
If you have installed any additional agents, remove them in the same way.
Both MySQL Enterprise Service Manager and MySQL Enterprise Monitor Agent have identical
uninstallation options. To display those options, from the command line run the uninstall file in your
installation directory, with the --help option.
• Windows: Win32
• OS X: osx
• Solaris: xwindow
87
Unattended Uninstallation
Option Description
• ja: Japanese.
Unattended Uninstallation
To run an unattended uninstallation process, in which no dialogs, prompts or warnings are displayed,
run the following command in the installation directory of your MySQL Enterprise Service Manager or
MySQL Enterprise Monitor Agent:
$>./uninstall --mode unattended
88
Part III Configuring MySQL
Enterprise Service Manager
Table of Contents
13 Configuring MySQL Enterprise Service Manager ..................................................................... 93
14 User Interface ........................................................................................................................ 95
14.1 Initial Log-In ................................................................................................................ 95
14.2 Setting the Timezone and Locale ................................................................................. 96
14.3 Menus and Toolbars ................................................................................................... 96
14.3.1 Target Selection ............................................................................................... 96
14.3.2 Navigation Menus ............................................................................................. 97
14.3.3 User Menu ....................................................................................................... 99
14.3.4 Status Summary ............................................................................................... 99
14.3.5 System and User-defined Filters ...................................................................... 100
14.3.6 Configuration Views ........................................................................................ 101
15 Global Settings .................................................................................................................... 103
15.1 Server Locale ............................................................................................................ 103
15.2 Server Hostname ...................................................................................................... 103
15.3 Customize MySQL Server Name ................................................................................ 103
15.4 Data Purge Behavior ................................................................................................. 105
15.5 HTTP Proxy Settings ................................................................................................. 106
15.6 External Authentication .............................................................................................. 106
16 Manage Instances ................................................................................................................ 111
16.1 Manage Instances Controls ....................................................................................... 111
16.2 Monitored Instance Details ......................................................................................... 113
16.3 Adding Instances ....................................................................................................... 115
16.3.1 Adding a MySQL Instance .............................................................................. 115
16.3.2 Adding Multiple MySQL Instances ................................................................... 118
16.4 Monitoring Amazon RDS ........................................................................................... 119
16.5 Filtering MySQL Instances ......................................................................................... 119
17 Asset Management .............................................................................................................. 121
17.1 Agents View .............................................................................................................. 121
17.2 Hosts View ................................................................................................................ 122
17.3 NDB Clusters View .................................................................................................... 124
17.4 Deleting Assets ......................................................................................................... 125
17.5 Deleting Assets from the Command Line .................................................................... 128
18 Managing Groups of Instances ............................................................................................. 135
19 Advisors ............................................................................................................................... 139
19.1 Manage Advisors Page .............................................................................................. 139
19.2 Advisor Types ........................................................................................................... 143
19.3 Advisor Thresholds .................................................................................................... 144
19.4 Advisor Schedules ..................................................................................................... 146
20 Expression-Based Advisor Reference .................................................................................... 147
20.1 Administration Advisors ............................................................................................. 147
20.2 Agent Advisors .......................................................................................................... 152
20.3 Availability Advisors ................................................................................................... 153
20.4 NDB Cluster Advisors ................................................................................................ 154
20.5 Memory Usage Advisors ............................................................................................ 155
20.6 Monitoring and Support Services Advisors .................................................................. 157
20.7 Operating System Advisors ........................................................................................ 158
20.8 Performance Advisors ................................................................................................ 158
20.9 Replication Advisors .................................................................................................. 164
20.10 Schema Advisors .................................................................................................... 168
20.11 Security Advisors ..................................................................................................... 172
21 GUI-Based Advisor Reference .............................................................................................. 179
21.1 Agent Health Advisor ................................................................................................. 179
21.2 MySQL Enterprise Backup Health Advisor .................................................................. 181
21.3 MySQL Process Discovery Advisor ............................................................................ 182
21.4 Duplicate Host Identity ............................................................................................... 183
91
21.5 Duplicate MySQL Server UUID .................................................................................. 183
21.6 sys Schema Install Advisor ........................................................................................ 184
21.7 CPU Utilization Advisor .............................................................................................. 184
21.8 Filesystem Free Space Advisor .................................................................................. 185
21.9 MySQL Process ........................................................................................................ 187
21.10 Query Analysis Advisors .......................................................................................... 187
21.11 Group Replication Advisors ...................................................................................... 188
21.12 Security Advisors ..................................................................................................... 191
21.13 NDB Cluster GUI Advisors ....................................................................................... 193
22 Event Handlers .................................................................................................................... 197
22.1 Event Handlers ......................................................................................................... 197
22.1.1 Event Handlers ............................................................................................... 197
22.1.2 Event Handlers Page ...................................................................................... 197
22.2 Creating Event Handlers ............................................................................................ 203
22.2.1 Event Action Log ............................................................................................ 205
22.2.2 Suspending an Event Handler ......................................................................... 206
23 Access Control ..................................................................................................................... 207
23.1 Users and Roles ....................................................................................................... 207
23.2 Permissions .............................................................................................................. 207
23.3 Monitored Assets Permissions ................................................................................... 208
23.3.1 Server Group & MySQL NDB Cluster .............................................................. 209
23.3.2 MySQL Instances ........................................................................................... 209
23.3.3 MySQL NDB Cluster Permissions .................................................................... 210
23.4 Monitoring Services ................................................................................................... 210
23.5 MySQL Enterprise Monitor ......................................................................................... 211
23.6 Default Users and Roles ............................................................................................ 213
23.7 Creating Users and Roles .......................................................................................... 214
24 Access Control - Best Practices ............................................................................................ 217
24.1 Open Permission Sets ............................................................................................... 218
24.2 Strict Permission Set ................................................................................................. 219
92
Chapter 13 Configuring MySQL Enterprise Service Manager
This part describes the configuration of MySQL Enterprise Service Manager. The following topics are
described:
• Chapter 14, User Interface: first time setup and an overview of the user interface.
• Chapter 15, Global Settings: how to define locales, hostnames, external authentication, and so on.
• Chapter 16, Manage Instances: how to add instances, edit connections, delete instances and
manage bad connections, unmonitored instances, or unreachable agents.
• Chapter 18, Managing Groups of Instances: how to create and manage groups of assets.
• Chapter 20, Expression-Based Advisor Reference and Chapter 21, GUI-Based Advisor Reference:
descriptions of the default advisors and their purpose
93
94
Chapter 14 User Interface
This chapter provides an overview of MySQL Enterprise Monitor's user interface.
• Create user with Manager role: the manager user is used for the initial session, configuring MySQL
Enterprise Service Manager, and defining the access control list. The user defined here is added to
the default manager role. For more information on the default roles, see Chapter 23, Access Control.
This creates the Manager user described in Section 4.3.3, “Users Created on First Log-in”. Record
the user name and password, as these credentials are required for any future login.
• Create user with agent role: the Agent user credentials are used by every monitoring agent to
connect to MySQL Enterprise Service Manager. The user defined here is added to the default agent
role. For more information on the default roles, see Chapter 23, Access Control.
This is the user described in Section 4.3.3, “Users Created on First Log-in”. The agent must
connect to MySQL Enterprise Service Manager to transmit the monitored data. Record the agent's
credentials; this information is required when installing the agent.
95
Setting the Timezone and Locale
Note
• Configure Data Retention Settings: define how long collected data must be retained. For more
information on data purging, see Section 15.4, “Data Purge Behavior”.
Although these settings control the amount of disk space used, changing them later to lower values
may not reclaim disk space automatically, as you would have to dump-and-reload the table, and
InnoDB tables never shrink.
• Configure Online Updates: enables checking for updates online. If your organization uses a HTTP
proxy, you must check the Use HTTP Proxy field, and complete the fields displayed when this is
enabled.
Important
These settings can also be defined from the command line, or in a script. For
more information, see Chapter 11, Configuration Utilities.
Warning
Set the time zone (and the system clock) correctly because this setting affects
how MySQL Enterprise Service Manager's graphs display data.
The locale determines the default language displayed when logging in to the
MySQL Enterprise Monitor User Interface. This selection overrides the default
browser settings whenever this specific user logs in.
At this point MySQL Enterprise Service Manager's repository is being monitored, and the built-in agent
is attempting to auto-discover additional MySQL instances on the host.
The target selection menus enable you to filter the information displayed in the selected view. You
can filter on individual assets, such as instances or hosts, or you can filter by groups and topologies,
viewing information on all, or one, of the contents of the selected group, topology, or cluster. The filter
uses the following criteria:
96
Navigation Menus
• Groups: filter by group. Select a group to view only the information collected for the selected
group's assets.
• Replication Topologies: filter by replication topology. Select a topology to view only the
information collected for the selected topology's assets.
Note
• All Targets: select one of the assets contained by the selection made in Global Summaries, or any
one of the monitored assets if no selection was made in Global Summaries.
Note
You can select the required asset or group from the list, or search for the asset
by typing the first few characters of the asset's name. The list is filtered based
on the characters entered.
Note
Note
The navigation menus are context sensitive. That is, they are displayed
according to the selection made in the View Filters. For example, the Metrics
menu, User Statistics, is displayed only if a MySQL instance is selected, not if
a host, agent, or All Targets is selected
Overview
Overview: opens the Overview dashboard. This dashboard provides a high-level view of the current
state of your monitored assets. For more information, see Chapter 25, Overview. This is the first page
displayed after the initial setup steps are completed.
Events
The Events page lists all the events for the monitored assets to which you have access. See
Figure 26.1, “Events Page with Filter” for more information.
Metrics
The Metrics menu contains the following links:
97
Navigation Menus
• All Timeseries: opens the All Timeseries graphs page. See Section 30.1, “All Timeseries Graphs”
for more information.
• Table Statistics: opens the Table Statistics report. This report enables you to view detailed table
statistics in both table and treemap forms. This page utilizes the sys schema and is only supported
on MySQL versions 5.6 and 5.7.
• User Statistics: opens the User Statistics report. This report enables you to view detailed
information on the database users. This page utilizes the sys schema and is only supported on
MySQL versions 5.6 and 5.7.
• Database File I/O: opens the Database File I/O page. This page displays details and graphs of
latency statistics taken from Performance Schema I/O event data.
This page utilizes the sys schema and is only supported on MySQL versions 5.6 and 5.7.
• InnoDB Buffer Pool Usage: opens the InnoDB Buffer Pool Usage block graph. This graph
displays a graphical overview of the data stored in the InnoDB Buffer Pool.
See Section 30.7, “InnoDB Buffer Pool Usage” for more information.
• Processes: opens the Processes report page. The Processes report lists the processes currently
running on the selected MySQL instance. See Section 30.3, “Processes Report” for more
information.
This page utilizes the sys schema and is only supported on MySQL versions 5.6 and 5.7.
• Lock Waits: opens the Lock Waits report page. See Section 30.2.3, “Lock Waits Report” for more
information.
This page utilizes the sys schema and is only supported on MySQL versions 5.6 and 5.7.
• InnoDB Buffer Pool Usage: opens the InnoDB Buffer Pool Usage block graph. This graph
displays a graphical overview of the data stored in the InnoDB Buffer Pool.
See Section 30.7, “InnoDB Buffer Pool Usage” for more information.
Statements
Opens the Query Analyzer page. See Chapter 32, Query Analyzer View for more information.
Replication
Replication: opens the Replication view. This provides a detailed view of the current state of your
monitored replication servers. For more information, see Chapter 28, Replication Dashboard.
Backups
Backups: opens the Backup view. This provides a detailed view of the configured backups of your
monitored instances. For more information, see Chapter 27, Enterprise Backup Dashboard.
Configuration
• Instances: opens the Instances view. This provides a detailed view of the current state of your
monitored instances. It also permits the addition, removal, or editing of connections to MySQL
instances. For more information, see Chapter 16, Manage Instances.
98
User Menu
• Groups: opens the Manage Groups page. For more information, see Chapter 18, Managing Groups
of Instances
• Advisors: opens the Advisors page. See Chapter 19, Advisors for more information.
• Event Handlers: opens the Event Handlers page. See Chapter 22, Event Handlers for more
information.
• Users: opens the Users page. See Chapter 23, Access Control for more information.
• Roles: opens the Roles page. See Chapter 23, Access Control for more information.
• Settings: opens the Settings page. See Chapter 15, Global Settings for more information.
Help
• Diagnostic Report: generates and downloads the user diagnostic file. This file contains information
on the application, property files, stack traces, and all log files.
This file is intended for MySQL Support, to assist them in diagnosing any issues you may have with
your installation.
Refresh
Sets the page to refresh automatically according to a schedule. It is also possible to pause the page
refresh using the pause button adjacent to the Refresh drop-down list.
Note
Note
This menu is renamed according to the user logged in. If the user is named
admin, the user menu is labeled admin.
• User Preferences: opens the User Preferences page, enabling the user to change their username,
full name, password, timezone, and locale.
99
System and User-defined Filters
• Hosts Monitored: the number of successfully monitored hosts. Links to the MySQL Instances
dashboard.
Note
• MySQL Instances Monitored: the number of successfully monitored MySQL instances. Links to the
MySQL Instances dashboard.
• MySQL Instances with Bad Connection Configurations: the number of incorrectly configured
instance connections.
• MySQL Instances Unmonitored: the number of running MySQL instances which are not currently
monitored. Links to the Unmonitored MySQL Instances list on the MySQL Instances dashboard.
• Emergency Events: the number of current emergency events. Links to the Events page and sets
the filter to the status Emergency and state Open.
Note
The hosts and instances represented in the Status Summary depend on the
permissions defined for the user. If the user is assigned to a specific group,
only the issues originating from the servers in that group are displayed in the
system status bar. For example, the Hosts Monitored icon only displays the total
number of hosts in the group assigned to the user's role.
You can also create a filter by using an existing filter as a template. Select the filter and make your
changes. If you create a named filter based on an existing filter, the -clone is appended to the name
when you edit the new filter. The name can be edited as required.
System filters are listed with a padlock on the left side of their name. These cannot be edited, but can
be used as templates for new filters.
To set a filter as the default, select it in the drop-down list, and select Set as Default from the adjacent
drop-down menu. A star is displayed next to the default filter.
Note
If you upgraded from a previous version, and used default filters in that version,
your filters are migrated and renamed User Default.
• All MySQL Instances: this is the default selection. All instances are displayed.
MySQL Instances Monitored By Old Agents: only displays MySQL instances monitored by
agents older than the current version.
100
Configuration Views
MySQL Instances Using EOL Versions: displays only the End Of Life MySQL instances
monitored by this installation.
• All Availability Events: filters on the Availability (any) advisor selection. Only events generated
by the availability advisors are displayed.
• Open Emergency Events: filters on the current status of Emergency. Only Emergency events
are displayed.
• Open Events with Status of Warning or Greater: filters on the current status of >=Warning.
Only events with status of Warning or higher are displayed.
• All Timeseries Graphs: the default filter is All Timeseries Graphs. No filtering, all graphs are
displayed.
• Advisors: the default filter is All Advisors. No filtering, all advisors are displayed.
• Query Analyzer view. This view contains the following system configuration views:
• DDL Statements: filters on statements of type CREATE, DROP, ALTER, TRUNCATE, and
RENAME.
• Replication Statements: filters on statements of type START, STOP, RESET, and CHANGE
• Statements with Errors: filters on the advanced filter options of Total Errors > 0.
• Statements with Full Table Scans: filters on the advanced filter options of Table Scan notices
and Total Table Scans > 0.
• Statements with Max Exec Time Over 1 Second: filters on the advanced filter options of Max
Exec Time > 1.
• Statements with Temporary Tables: filters on the advanced filter options of Total Temporary
Tables > 0.
• Statements with Temporary Tables on Disk: filters on the advanced filter options of Total
Temporary Disk Tables > 0
• Statements with Warnings: filters on the advanced filter options of Total Warnings > 0
101
Configuration Views
• Agents view. This view contains the following system configuration views:
• Down Agents: lists only those agents which are stopped or unreachable.
• Hosts view. This view contains the following system configuration views:
• All Hosts: lists all hosts currently monitored by MySQL Enterprise Service Manager.
• NDB Clusters view. This view contains the following system configuration views:
• All Clusters: lists all NDB Clusters currently monitored by MySQL Enterprise Service Manager.
To create a configuration view, click Configuration View. The Configuration View form is displayed.
Add properties as required using the Add button. Clear all properties using the Reset button. Or undo
your changes by clicking Discard Changes.
You can create a configuration view, based on an existing view, by selecting the existing view from
the Select Configuration View drop-down list and editing as required. As you edit the existing view, -
clone* is appended to the view's name, indicating it is a temporary view. To save this customized view,
select Save as... from the Actions menu.
You can also create a new, blank configuration view by selecting New from the Actions menu.
To save a new configuration view, select Save as... from the Actions menu. To save edits to an
existing, custom, configuration view, select Save from the Actions menu.
To make a configuration view the default, select the required view, and select Set as Default from the
Actions menu.
102
Chapter 15 Global Settings
This chapter describes how to configure your MySQL Enterprise Service Manager installation.
Name Description
Hostname Defines the hostname used in all notifications. This value must be a
valid hostname.
Port Number Defines the port number used for notifications. Do not change this
value from the default unless you have altered or redirected the
default port number during installation. An invalid value results in
invalid links in notification messages. Default value is 18443.
Login Display Name Defines the hostname displayed on the login page.
103
Customize MySQL Server Name
Name Description
Show MySQL Server Names Defines how hostnames are displayed. The following display
as: settings are possible:
For example:
dx521\.example\.com=Staging
dx984[.]example[.]com=Production
database-server-(.*?)\.example\.com=$1
^database-server-="", [.]example[.]com$="",dx521="Staging DB"
104
Data Purge Behavior
Name Description
• Never: endpoint values are never displayed.
Purging data permanently removes information from the repository. Events derived from that data are
purged with the data.
Note
The purge functionality purges closed events and related data, only.
The purge process is started approximately once every day, or when the MySQL Enterprise Monitor
User Interface is restarted. If you change the purge duration from a large timespan to a smaller one,
the data is purged in increments of one hour, from oldest to newest, until the new data retention policy
is met. This is done to reduce the load on the repository.
You can configure the data purge behavior in the following ways:
• Remove Non-Aggregated Metric Data Older Than: configures the duration that the non-
aggregated data collected from your monitored assets is retained. This includes all data collections,
including CPU, memory and connections and activity statistics.
• Remove Hourly Aggregated Metric Data Older Than: configures the duration that the hourly
aggregated data collected from your monitored assets is retained. This includes all data collections,
including CPU, memory and connections and activity statistics.
• Remove Daily Aggregated Metric Data Older Than: configures the duration that the daily
aggregated data collected from your monitored assets is retained. This includes all data collections,
including CPU, memory and connections and activity statistics.
• Remove Query Analyzer Data Older Than: configures the duration that the query analyzer
statistics and information about individual queries is retained.
105
HTTP Proxy Settings
• Purging can be carried out manually by enabling innodb_file_per_table for the repository
database and using an OPTIMIZE TABLE operation to reclaim space from deleted rows in the table.
• If you change the purge value from a high value to a very low value, the space used by the purged
data is not reclaimed from the InnoDB tablespaces. Do this by running OPTIMIZE TABLE on the
MySQL tables for MySQL Enterprise Service Manager to reclaim the space from the purged rows.
Name Description
Disabled No external authentication system is used. All user authentication is
performed in MySQL Enterprise Monitor.
LDAP Authentication Enables the LDAP configuration. Populate the fields as required by your
LDAP installation.
Active Directory Enables the Active Directory configuration. Populate the fields as
Authentication required by your Active Directory installation.
Is Authoritative To make the selected authentication system the authoritative
authentication mechanism, check Is Authoritative.
Important
External Authentication
Enables you to configure external authentication using LDAP or Active Directory.
106
External Authentication
Name Description
Primary Server Hostname and Port Hostname or IP address of the primary LDAP directory
Number server, and the Port number of the primary LDAP server.
You must change this option to the port used for SSL
connections if you have enabled encryption.
Secondary Server Hostname and Port Hostname or IP address of the secondary LDAP directory
Number server. Port number of the secondary LDAP server.
You must change this option to the port used for SSL
connections if you have enabled encryption.
Connect Timeout (seconds) Time elapsed without establishing a connection to the
LDAP server. If a connection is not established within the
defined number of seconds, an error is returned.
Read Timeout (seconds) Time elapsed without a response to a request for data
from the LDAP server. If no response is received within the
defined number of seconds, an error is returned.
Encryption Encryption type required for communication with the LDAP
server(s). Supported options are None, StartTLS, and
SSL.
107
Active Directory Authentication
Name Description
Referrals Authentication follows the referrals provided by the server.
The default is to use whatever the LDAP directory server is
configured to do.
External Authentication Server Allows Optionally allow Anonymous binds. When unchecked,
Anonymous Binds MySQL Enterprise Monitor provides for a pre-auth bind
user to lookup account records. For Active Directory, the
most common user account attribute is sAMAccountName,
whereas it is common for Unix-based LDAP to use CN. If
the Active Directory server is not configured to honor CN
binds, it cannot fetch credentials.
Authentication Mode The authentication mode to use.
108
Active Directory Authentication
Name Description
Domain The Active Directory Domain.
Primary Server Hostname Hostname of the Active Directory server to use.
Secondary Server Hostname Secondary Active Directory hostname. This is optional.
Map LDAP Roles to Application Whether the roles defined in Active Directory can be mapped to
Roles those defined in MySQL Enterprise Monitor.
109
110
Chapter 16 Manage Instances
The Manage Instances view presents information on the current connection status of all monitored
instances. It also presents information on unsuccessful connections, unreachable agents, and MySQL
instances which are not yet monitored.
To open the Manage Instances view, select Instances from the Configuration section of the
navigation menu.
• MySQL Instance Details: this list is displayed by default. It lists all the currently monitored
instances. If there is a problem with a connection to one of those instances, it is highlighted in red.
• Unmonitored MySQL Instances: lists the number of MySQL instances which are available, but
currently unmonitored by MySQL Enterprise Monitor.
Alert Buttons
The alert buttons list the number of problematic instances, connections, and agents in your
implementation. If a problem exists, they are displayed on the top-right side of the view.
Note
These buttons depend on the permissions defined for the user. If the permission
MySQL Instances is set to Read-Only, the buttons are visible, but inactive, and
it is not possible to open the associated lists.
• Unmonitored MySQL Instances: lists the number of MySQL instances which are available, but
currently unmonitored by MySQL Enterprise Monitor. Click to open the Unmonitored MySQL
Instances list. See Unmonitored MySQL Instances for more information.
• Bad MySQL Connections: displays the number of misconfigured connections to MySQL instances.
Click to open the Bad Connection Configurations list. See Bad Connection Configurations for
more information.
• Unreachable Agents: lists the number of agents which are currently uncontactable. Click to open
the Unreachable Agents list. See Unreachable Agents for more information.
111
Unreachable Agents
Name Description
Agent Host Lists the hostname of the monitoring agent.
Connection Lists the IP address defined in the connection string.
Details
Last Error Date Date and time of the last occurrence of this error.
Error Details Cause of the error.
If the bad connection results from a misconfiguration, select Edit Connection from the drop-down
menu. The connection configuration window is displayed, enabling you to review and edit the
connection.
To delete the bad configuration, select Delete Connection from the drop-down menu.
Unreachable Agents
This section lists the agents which are configured, and were communicating with the Service Manager,
but cannot be contacted.
Name Description
Agent Hostname of the server on which the agent is installed.
State State of the agent. For example, if the agent is shut down properly, it signals
the Service Manager that it is shutting down, and the state is displayed as
SHUTDOWN. If the agent did not shutdown properly, if its host shutdown
unexpectedly, or due to a network fault, the state displayed is TIMEDOUT.
Last Seen Time and date at which the agent last contacted the Service Manager.
Version Agent version.
UUID The unique identifier of the agent.
Agent Directory Agent installation directory.
To begin monitoring one, or more, of the unmonitored instances, select them using the check boxes
and click Monitor Instances. The add instance dialog is displayed and is auto-populated with
the agent name, instance address, and so on. For more information on adding connections, see
Section 16.3.1, “Adding a MySQL Instance”.
To ignore instances, make your selection and click Ignore Instances. A check box, Display n ignored
instances is displayed, where n is the number of instances ignored. To undo the ignore, and display
the instance, check the Display n ignored instances check box, select the instance and click Show
Instance.
If no unmonitored instances are present, the ignored instances are listed instead.
Important
112
Monitored Instance Details
To cancel a pending connection, select the pending connection and click Cancel Pending
Connections.
Name Description
Host The server on which the running MySQL instance
was discovered.
Connecting Whether a connection is being attempted with the
instance.
Port/Socket Port or socket on which the MySQL instance is
listening.
Process ID The process ID of the running instance.
Process User: Group ID of the user and group.
Process Arguments The arguments with which the instance was
started.
Editing Instances
To edit an instance, do one of the following methods:
• Click the MySQL instance's overflow menu (three vertical dots), and choose Edit Instance
• Or select the check box on the left of the MySQL instance name, and click Edit Instances
The Edit Instances window is identical to the Add Instance Connection window described in
Section 16.3.1, “Adding a MySQL Instance”, with the exception of the first tab, Instance Details.
When editing an individual instance, the Instance Details tab enables you to edit the instance Display
Name and add notes on the instance. For example, if the instance name is MySQLServer001, and
ThisIsMyServer is added in the Display Name field, ThisIsMyServer is displayed in the MySQL
Instance Details list, and everywhere else the instance name is used.
If you add a note, a note icon is displayed in the Notes column for that instance.
Deleting Instances
To delete an instance, or multiple instances, select the instance(s) and click Delete Instances, or
select Delete Instance from the instance-specific overflow menu.
Columns
The following columns are available:
Name Description
Instance The instance names, in their assigned Groups. If no groups are defined, all
MySQL instances are contained by the All group. The check box enables
you to select all instances.
113
Group and Instance Context Menu
Name Description
Notes Displays a note icon, if a note was defined on the Instance Details tab. If a
note was defined, hover the cursor over the note icon. The note is displayed
as a tooltip.
Versions: MySQL Displays the version of the monitored MySQL instance.
Versions: Agent Displays the version of the monitoring agent.
Versions: Operating Displays the type and version of operating system on which the MySQL
System instance is installed.
Port Displays the configured MySQL port.
Data Dir Displays the configured data directory of the MySQL installation.
More An overflow menu (three vertical dots) that offers context-specific options,
such as Edit Instance.
The menu items listed in this section depend on the permissions defined. If you
do not have the required permissions, some or all of these menu items may be
inactive.
• Support Diagnostics: Opens the Support Diagnostics page. This enables you to generate a set
of reports which you can send to MySQL Support as an attachment to a reported issue. This report
can take several minutes to generate. The reports archive also includes a SQL dump of the Advisor
Schedules, Inventory and Configuration schemas.
• Delete Instance: deletes the instance from MySQL Enterprise Service Manager.
Important
It is not possible to delete the repository from the list. If you delete it, it is
automatically restored to the list.
• Support Diagnostics: opens the Support Diagnostics dialog. This enables you to generate a set
of reports which you can send to MySQL Support as an attachment to a reported issue. This report
can take several minutes to generate. The reports archive also includes a SQL dump of the Advisor
Schedules, Inventory and Configuration schemas.
Important
Important
114
Adding Instances
• Enable Event Handler Blackout: stops all Event Handlers associated with the selected instance.
Events continue to be generated and advisors continue evaluating the data collected by the agent
monitoring the selected host, but all event handlers are suspended for the selected instance.
Note
These buttons depend on the permissions defined for the user. If the permission
MySQL Instances is set to Read-Only, the buttons are visible, but inactive, and
it is not possible to add instances.
Connection Settings
The Connection Settings tab
Figure 16.1 Add Instance Connection Settings
115
Adding a MySQL Instance
Name Description
It is recommend installing one Agent per Host and using that Agent
to monitor all its MySQL Instances.
Note
Choose No if you intend to use the Admin user for all data collection.
Note
Encryption Settings
116
Adding a MySQL Instance
Name Description
Require Encryption Defines whether the connection uses TLS for security.
Allow Self-Signed Specifies whether the connection permits self-signed certificates.
Certificates
CA Certificate Paste the CA certificate's contents here.
Note
Advanced Settings
117
Adding Multiple MySQL Instances
Name Description
Discover Replication Specifies whether the agent attempts to discover if the instance is part
Topologies of a replication group and discover the other members of that replication
group.
• Host Plus Datadir generates a hash of the host identity and the path
to the MySQL instances data directory to create a unique identity.
Note
Group Settings
Enter the groups to which you want to add the instance. It is also possible to define new groups in this
field.
Note
To add groups, you must have the Server Group permission set to Read-Only,
at least.
To create new groups, you must have the New Group Creation permission set
to Administer.
To add the instances successfully, you must ensure the user credentials, encryption settings, and so
on, are identical across all instances added.
118
Monitoring Amazon RDS
Important
It is recommended that you use MySQL 5.6, or later, on RDS. It is also possible
to use MySQL 5.5, but you must disable backup and replicas before attempting
to monitor it using MySQL Enterprise Service Manager. After the agent has
connected, you can enable backup and replicas again.
Remote monitoring is used when monitoring on a cloud. You can use any MySQL Enterprise Monitor
Agent to monitor MySQL instances remotely, including the built-in agent that is automatically installed
and started with MySQL Enterprise Service Manager.
When configuring a MySQL instance to monitor from the Instances view, do the following:
• Do not configure MySQL Enterprise Monitor to auto-create the less privileged Limited and
General accounts, and instead use the Admin account for all monitoring.
This is set in the Connection Settings tab when adding or editing a MySQL instance to be
monitored. The Auto-Create Less Privileged Users setting defaults to Yes, ensure it is set to No.
• Also under Connection Settings is the Instance Address parameter. Set this to your endpoint,
which is the entry point for your MySQL Server web service.
• Change the inventory table schema for MySQL Enterprise Monitor Agent from "mysql" to an
existing, alternative schema.
This is set in the Advanced Settings tab when adding (or editing) a MySQL instance to be
monitored. The Inventory Table Schema setting defaults to mysql, which is typically not accessible
to the Agent user in a cloud (or shared) environment. Change it to a schema you created.
Note
119
Filtering MySQL Instances
Name Description
Server Name Search on full or partial name of the server.
Server UUID Search on the UUID of the server.
Server ID Search on the server_id.
Query Analyzer Search for servers on which the Query Analyzer is enabled, or not.
MySQL Version Search for specific MySQL version numbers.
Agent Version Search for specific MySQL Enterprise Monitor Agent version numbers.
Operating System Search on the Operating Systems on which the server is installed.
The Agent Version and MySQL Version fields support the use of range operators (>, < =), enabling
you to define ranges of versions to filter on. For example, setting MySQL Version to <=5.1 returns all
MySQL instances older than MySQL 5.1.
Note
Filtering on MySQL or Agent version uses a regular expression which does not
support the use of partial version numbers, such as "5.". 5 or 5.6 return a result,
if such versions are in use, but a partial version returns an error.
120
Chapter 17 Asset Management
This chapter describes the asset pages for Hosts, Agents, and NDB Clusters and describes how to
remove asset information from the MySQL Enterprise Monitor inventory.
To view the agent status and configuration, select Agents from the Configuration section of the
navigation bar.
The agents are displayed on individual lines, with brief summaries of their current status, number of
assets monitored by the agent, and last contact.
To view detailed information on the agent's configuration, select Details from the more info menu on
the right-hand side of each line.
Note
121
Hosts View
• JVM: displays the details of the agent's Java Virtual Machine (JVM).
• MySQL Connections: (displayed only if the agent is monitoring an instance) lists all the MySQL
connections currently monitored by the agent and their configuration details. Information such as
whether self-signed certificates are permitted, timeout values, hostnames, and so on.
• MySQL Processes: (displayed only if the agent is monitoring an instance) lists all the monitored
MySQL processes. Information such as the arguments with which the process was started. process
ID, and so on.
• MySQL Instances: (displayed only if the agent is monitoring an instance) lists all the monitored
MySQL instances. Information such as the version, status, uptime, and so on.
• OS: (displayed only if the agent is configured to monitor the host) : displays detailed information the
host operating system, file systems, CPUs, and so on.
To view the monitored hosts, select Hosts from the Configuration section of the navigation bar.
The hosts are displayed on individual lines, with brief summaries of their current status, number of
instances installed, and information on their operating systems and hardware.
122
Hosts View
The host names are displayed on individual lines, with brief summaries of their membership, current
status.
To view detailed information on the host's configuration, filesystems, and so on, select Details from the
more info menu on the right-hand side of each line.
Note
It is also possible to delete hosts, using the Delete option. For more information
on deleting assets, see Section 17.4, “Deleting Assets”.
123
NDB Clusters View
• Filesystems: lists all the file systems available to the host. Information includes the bytes used,
bytes unused, file system type, and so on.
• Memory: lists the total amount of RAM available and the size of the swap file.
• CPUs: lists the CPUs installed on the host. Information includes number of cores, cache size,
frequency, and so on.
• MySQL Instances: lists all the monitored MySQL instances. Information such as the version, status,
uptime, and so on.
• Networks: lists all the network interfaces on the host, their types, names, and so on.
To view the monitored cluster configuration and status, select NDB Clusters from the Configuration
section of the navigation bar.
124
Deleting Assets
The cluster names are displayed on individual lines, with brief summaries of their membership, current
status.
To view detailed information on the cluster's membership, select Details from the more info menu on
the right-hand side of each line.
Note
It is also possible to delete clusters, or members of the cluster, using the Delete
option. For more information on deleting assets, see Section 17.4, “Deleting
Assets”.
The cluster details view displays a summary of the cluster's members organized by node type. Each
tab displays the current state of each node and pertinent configuration information, such as Bind
Address, Process Name, Auto Reconnect, and so on.
To drill down into the details of each node's configuration, select Details from the more info menu on
the right-hand side of each line.
The node details view displays all available configuration and state information for each monitored
node.
Important
Deleting assets from the inventory does not delete or uninstall assets from their
installed locations. The delete process removes all record of an asset or group
125
Deleting Assets
of assets from the internal record of MySQL Enterprise Service Manager, only.
This enables you to remove entries for clusters, topologies, agents, hosts, and
instances which were monitored, but are no longer in use.
Ensure the asset or group is either not running, or not installed, before
attempting to delete it from the inventory.
For more information on the inventory, see Appendix B, Managing the Inventory.
For information on deleting assets from the command line, see Section 17.5, “Deleting Assets from the
Command Line”.
• MySQL Instances
• Hosts
• NDB Clusters: Clusters can be deleted in their entirety, or you can delete individual nodes by
opening the NDB Cluster details view, and deleting the nodes one at a time.
Note
Note
• It is not possible to delete an agent from the inventory if the agent's status is unknown, if the agent
is running, or if the agent is monitoring one or more MySQL instances which are not scheduled for
deletion in the same operation.
• It is not possible to delete a host from the inventory if the host contains agents or MySQL instances
which are not also scheduled for deletion in the same operation.
2. To delete an MySQL instance from the MySQL Instances view,. select Delete from the instance
menu, or select the instance(s) and click the Delete Instances button.
To delete an asset from the asset-specific views, Agents, Hosts, or NDB Clusters, select Delete
from the menu on each asset's line or select the asset and click the Delete button. You can also
select all assets in the view, using the Select All button, and delete all by clicking the Delete
button.
126
Deleting Assets
If it is not possible to delete an asset, a warning is displayed in the Deletable column. To see more
information on the nature of the warning, hover the cursor over the warning. A tooltip is displayed.
3. If the asset is deletable, confirm the details are correct and click Delete. A confirmation dialog is
displayed.
127
Deleting Assets from the Command Line
4. To delete assets related to the selected asset, select one of the other types from the Advanced
Options section. If the selection is available, the Deletable Assets section is updated with the
asset's details and whether it is deletable.
For example, if you try to delete a MySQL Instance and a related host:
Figure 17.8 Delete Confirmation for MySQL Instance and related Host
The related host also has an agent installed, which is unrelated to the delete request. The presence
of the unrelated agent prevents the removal of the MySQL instance and related host delete request.
The Delete button is deactivated.
Important
Deleting assets from the inventory does not delete or uninstall assets from their
installed locations. The delete process removes all record of an asset or group
of assets from the internal record of MySQL Enterprise Service Manager, only.
This enables you to remove entries for clusters, topologies, and instances which
were monitored, but are no longer in use.
Ensure the asset or group is either not running, or not installed, before
attempting to delete it from the inventory.
For more information on the inventory, see Appendix B, Managing the Inventory.
• Listing the Related Deletable Assets: how to check for related assets and their status.
• Request Status Codes: return codes from the various request types.
128
Retrieving Deletable Asset Information
where:
• username:password is the username and password of a user with admin access to MySQL
Enterprise Service Manager.
• servername:port is the servername and port number for MySQL Enterprise Service Manager.
• AssetType is the type of asset information you want to retrieve. The valid asset types are as
follows:
Note
It is not possible to delete an agent from the inventory if the agent's status
is unknown, if the agent is running, or if the agent is monitoring one or
more MySQL instances which are not scheduled for deletion in the same
operation.
• Hosts: com.mysql.etools.inventory.model.os.Host
Note
It is not possible to delete a host from the inventory if the host contains
agents or MySQL instances which are not also scheduled for deletion in the
same operation.
Note
Note
To find the AssetID, check the inventory page for the specific asset type.
See Appendix B, Managing the Inventory for more information.
The following example retrieves the information for a MYSQL instance with the unique identifier
c14ee437-a615-11e4-8334-f8b156b72e61:
129
Retrieving Deletable Asset Information
Note
In the following example, line breaks have been added for clarity.
If the MySQL instance is deletable, the request returns the following data, confirming that the asset
type can be deleted from the inventory:
"asset" : {
"id" : "c14ee437-a615-11e4-8334-f8b156b72e61",
"assetClass" : "com.mysql.etools.inventory.model.mysql.MysqlServer"
},
"isDeletable" : true,
"treeDeletable" : true,
"problems" : [ ],
"token" : "3b66cd39467791a739e5131a8d6a856b"
where:
• isDeletable: True|False. Lists whether the asset's information can be deleted from the inventory.
• problems: lists the reasons why the asset's information cannot be deleted from the inventory.
Possible reasons are:
Deleting an asset requires the Administer permission for Server Group and MySQL NDB
Cluster. To delete an asset from the inventory, the user must belong to a role with that permission.
• IS_LIVE: the agent is running. The agent is running and broadcasting information to the Service
Manager. It is not possible to delete a running asset from the inventory. To delete an asset from
the inventory, you must first stop or uninstall it.
• UNKNOWN_LIVENESS: The agent's state could not be determined. This problem can be caused by
network issues, or some other issue, such as a power cut, preventing the Service Manager from
contacting the agent.
130
Listing the Related Deletable Assets
• token: a unique alphanumeric identifier for the state of the asset. This token can be used in a
DELETE request, to confirm the state of the asset has not changed between the time the deletable
request was run, and the time the DELETE request is run.
The request also returns a status code indicating the success or failure of the request. For more
information, see Request Status Codes.
For example, the following requests deletable information on a MySQL instance with the AssetID
c14ee437-a615-11e4-8334-f8b156b72e61 and on the agent monitoring it:
"asset" : {
"id" : "c14ee437-a615-11e4-8334-f8b156b72e61",
"assetClass" : "com.mysql.etools.inventory.model.mysql.MysqlServer"
},
"isDeletable" : true,
"treeDeletable" : false,
"problems" : [ ],
"children" : [ {
"asset" : {
"id" : "b68947f9-39f2-4003-981f-8c9cc7a7409f",
"assetClass" : "com.mysql.etools.inventory.model.agent.Agent"
},
"isDeletable" : false,
"treeDeletable" : false,
"problems" : [ {
"code" : "IS_LIVE",
"description" : "IS_LIVE"
} ]
} ],
"token" : "d0e3607f6029a91a35a9956950908761"
131
Deleting Assets from the Inventory
The data returned shows that while the MySQL instance is deletable, it is not treeDeletable, which
means it cannot be deleted in a related DELETE, because the monitoring agent is still running.
Note
Ensure the asset or group of assets is either not running, or not installed, before
attempting to delete it from the inventory.
To delete related assets from MySQL Enterprise Service Manager inventory, use the following syntax:
Note
For example, the following shows a deletable request with the return data, listing a deletable agent,
MySQL instance, the host it used to monitor, and another agent which was resident on the same
server:
{
"asset" : {
"id" : "d71ff41c-affd-4ebe-966e-395e6f06b5e3",
"assetClass" : "com.mysql.etools.inventory.model.agent.Agent"
},
"isDeletable" : true,
"treeDeletable" : true,
"problems" : [ ],
"children" : [ {
"asset" : {
"id" : "sid:{S-1-5-21-700548433-2193620149-503502644}",
"assetClass" : "com.mysql.etools.inventory.model.os.Host"
},
"isDeletable" : true,
"treeDeletable" : true,
"problems" : [ ],
"children" : [ {
132
Request Status Codes
"asset" : {
"id" : "b68947f9-39f2-4003-981f-8c9cc7a7409f",
"assetClass" : "com.mysql.etools.inventory.model.agent.Agent"
},
"isDeletable" : true,
"treeDeletable" : true,
"problems" : [ ],
"children" : [ {
"asset" : {
"id" : "c14ee437-a615-11e4-8334-f8b156b72e61",
"assetClass" : "com.mysql.etools.inventory.model.mysql.MysqlServer"
},
"isDeletable" : true,
"treeDeletable" : true,
"problems" : [ ]
} ]
} ]
} ],
"token" : "7048b6e53c81f549b55c5f3e861c2eee"
The following example shows a related DELETE request, deleting all assets listed as deletable in the
deletable example:
Note
To delete the assets involved in a replication topology, you must delete each
individually, or use a related request type where possible.
HTTP/1.1 200
Set-Cookie: JSESSIONID=8C0C2E1AFD45F170E7E41621F934723D; Path=/; Secure; HttpOnly
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
Content-Type: application/json
Transfer-Encoding: chunked
Date: Tue, 24 Jul 2018 12:31:47 GMT
The following status codes are returned for deletable and DELETE requests:
• 200: the deletable request was successful. Content is returned in a JSON array.
133
Request Status Codes
• 400: the request is not valid. Check the asset information, or the syntax of the request for errors,
typos, and so on.
• 409: it was not possible to perform the DELETE request. Further information is provided in a JSON
array.
134
Chapter 18 Managing Groups of Instances
Groups organize instances into useful collections. For example, you can create groups for development
and production instances. Instances added to each group inherit the Advisors scheduled for that group.
There are two types of group in MySQL Enterprise Monitor: user-defined and replication. User-defined
groups are those created and managed in MySQL Enterprise Service Manager's Manage Groups
page. An instance can belong to one or more groups.
Note
You can also define groups and add instances to those groups using the
MySQL Enterprise Monitor Agent configuration utility. For information, see
Agent Connection Utilities. You can use the configuration utility to add
connections to existing groups, or to create a group and add a connection to it,
but cannot delete an existing group.
Replication groups are instances configured in replication topologies. These groups cannot be
managed by MySQL Enterprise Service Manager. MySQL Enterprise Monitor automatically creates
groups for replication topologies. That is, if a master-slave(s) relationship is detected, the relevant
group is created to contain all members of that topology.
Important
Note
NDB Cluster and InnoDB cluster topologies are not manageable and are not
displayed in the Manage Groups page.
• Access Control: You can assign users to specific groups. The user sees only those instances in the
group to which they have rights. The groups are associated with Roles, and the users are assigned
to the roles. For more information, see Chapter 23, Access Control.
• Organization: grouping related instances together, in order to ensure consistent Advisor scheduling
and event generation. An instance can belong to multiple groups. It is not possible for instances
involved in a replication topology to belong to multiple groups.
Creating Groups
Important
To create groups, the user must be assigned to a role with the New Group
Creation permission set to Administer. To view groups, they must have the
Server Group permission set to at least Read-Only.
To open the Groups page, click the Groups link on the Settings menu.
135
Creating Groups
3. It is possible to create empty groups, and add the instances later, or to allow the Agent installations
to add the instances to the groups by adding the group name to the Monitor Group field in the
installer.
5. Select the required instances by selecting a context. It is not possible to select instances without
selecting a context.
6. Select All to make all instances available for selection in the Instances field. To filter further, select
any of the existing groups to make their contents available in the Instances field.
7. Select an instance by clicking in the Instances field and selecting the required instances. This field
also supports auto-complete.
8. Click the add button to add your selection to the Selected field.
136
Deleting Groups
9. Click Save to save your new group. Click Cancel to discard your changes.
Note
Editing groups requires the user be assigned to a Role with the Server
Group and MySQL Instances permissions set to Administer.
Deleting Groups
To delete a group, you must have be a member of a role with the Server Group permission set to
Administer.
To delete a group, select the group in the groups list and click Delete.
137
138
Chapter 19 Advisors
This chapter describes MySQL Enterprise Advisors.
Advisors filter and evaluate the information collected by the Monitoring Agents and present it to the
Events page when defined thresholds are breached. There are more than 200 Advisors, all of which
are enabled by default.
To display the Advisors page, select Advisors from the Configuration menu.
The components and controls of the Manage Advisors page are as follows:
Name Description
Edit Selected Opens the edit dialog for the selected advisor. This control can also be
used for multiple Advisors, but it is only possible to change the Schedule
for multiple Advisors simultaneously. You can also edit an advisor using the
drop-down menu adjacent to each advisor’s name.
Disable Selected Disables all selected Advisors.
Create Advisor Opens the Create Advisor page.
139
Advisor Categories
Name Description
Import/Export Opens the Custom Rule/Graph Export page. This functionality is for
custom rules and graphs only.
Select All Selects all Advisors.
Expand All Expands all categories.
Collapse All Collapses all categories and clears all selections.
Expands or collapses the Advisor filter. The Advisor filter enables you to
Filter Advisors filter the Advisors, groups and assets. For information on the named filters,
see Section 14.3.5, “System and User-defined Filters”.
Advisor Categories
The following types of Advisor are provided:
• Availability: Checks the availability of the MySQL process and the connection load.
• Backup: Checks whether backup jobs succeed or fail, required resources, and information about
MySQL Enterprise Backup specific tasks.
• Memory Usage: Indicate how efficiently you are using various memory caches, such as the InnoDB
buffer pool, MyISAM key cache, query cache, table cache, and thread cache.
• Monitoring and Support Services: Advisors related to the MySQL Enterprise Monitoring services
itself.
To display the Advisors in each category, click on the Category name. For a full description of the
default advisors, see Chapter 21, GUI-Based Advisor Reference and Chapter 20, Expression-Based
Advisor Reference.
Advisors configure the type of data collected by the Agent. If you do not want to monitor for a specific
type of data, disabling the Advisor responsible for that data type instructs the Agents to stop collecting
that data.
140
Advisor Menu
Advisor Menu
To open the Advisor menu, click the drop-down icon next to the Advisor’s name.
Note
141
Group and Host Menu
Name Description
Delete Advisor Deletes the selected advisor.
Note
The top-level advisor contains the global configuration for all groups. That is, the configuration at the
advisor-level applies to all groups and hosts it contains. Each nested group, and the monitored hosts
contained in the group, have a drop-down menu enabling you to override the global configuration
for each group or host, or disable the advisor for the specific group or host. Any change in advisor
configuration at the group or host level, overrides the global configuration specified at the advisor level.
To open the Group menu, expand the Advisor and select the drop-down icon next to the Group name.
The same menu is used for each host within the group. The menu contains the following items:
• Override Advisor Configuration: opens the Advisor edit dialog, enabling you to change the
Advisor's configuration for the assets in the group. Changes made at the group level, only affect the
assets within the group.
Important
• Disable Advisor: disables the Advisor for the selected group or host.
Advisor Filter
The Advisor filter enables you to search for specific Advisors, groups, hosts, or assets using text or
regular expressions. To open the filter, click the filter button. For information on the named filters, see
Section 14.3.5, “System and User-defined Filters”.
142
Advisor Types
Name Description
• Contains
• Doesn't Contain
• Regex
• Negative Regex
Value Free text field for the search term or regular expression.
Filter Filters the Advisors list based on the search terms.
Filter & Expand Only available for named filters, not for the system filters. Filters the
Advisors list based on the search terms and expands the categories and
Advisors to display the search results.
Discard Changes Removes any changes made to the saved filter.
Reset Resets all filter values.
• Expression-based
• GUI-based
Expression-based Advisors
The majority of Advisors use a simple expression to evaluate the data collected by the monitoring
Agent. These expressions use the following syntax:
where:
• %VariableName% is the monitored value. The variables correspond to elements of the data
collected by the Agent.
These expression-based Advisors evaluate the monitored values against the defined thresholds.
Expression-based Advisors can evaluate percentage values, time/duration values, or check for the
existence of specific configuration values.
More complex expressions are also used by concatenating a variety of different variables. It is also
possible to perform calculations on the results returned by these variables within the expressions.
GUI-based Advisors
The GUI-based Advisors contain more configuration options than the expression-based Advisors.
These Advisors evaluate many more values than the expression-based Advisors and do not use the
same expression-based evaluation system.
The following example shows the General section of the Agent Health Advisor:
143
Advisor Thresholds
Advisor thresholds use a variety of different value types, depending on the monitored value. Some use
percentages, such as percentage of maximum number of connections. Others use timed durations,
such as the average statement execution time. It is also possible to check if specific configuration
elements are present or correct.
The following thresholds, listed in order of severity, can be defined for most Advisors:
• Notice: issues which do not affect the performance of the server, but can be used to indicate minor
configuration problems.
• Warning: issues which do not affect the performance of the server, but may indicate a problem and
require investigation.
• Critical: indicates a serious issue which is affecting or can soon affect the performance of the server.
Such issues require immediate attention.
• Emergency: indicates a serious problem with the server. The server is unusable or unresponsive
and requires immediate attention.
Note
Not all Advisors require threshold parameters, others do not have any
parameters, such as the Graphing Advisors.
144
Time-based Thresholds
The following image shows an example of threshold definitions on the Parameters tab of an advisor:
The values shown are taken from the Availability Advisor, Maximum Connection Limit Nearing or
Reached. The values define the percentage of maximum connections at which an event is logged. For
example:
• If the total number of connections is 75-84% of the maximum defined, a Notice event is displayed in
the Events page.
• If the total number of connections is 85-94% of the maximum defined, a Warning event is displayed
in the Events page.
• If the total number of connections is 95-99% of the maximum defined, a Critical event is displayed in
the Events page.
• If the total number of connections is 100% or more of the maximum defined, an Emergency event is
displayed in the Events page.
Time-based Thresholds
The majority of the time-based thresholds use simple duration values, such as seconds, minutes and
so on. These are used to monitor such values as system uptime and, if the value for uptime drops
below a certain value, indicating a restart, trigger an event.
Others use an Exponential Moving Average Window, which monitors values over a predefined time
period. One such advisor is the CPU Utilization Advisor. The moving average window is used because
CPU utilization can spike many times a minute, for a variety of different reasons. Raising an event for
each spike would not be useful. The moving average enables you to monitor CPUs for long durations
and take an average CPU utilization across that duration. Thresholds are defined against that average.
Percentage-based Thresholds
Percentage-based thresholds trigger events based on percentages of a server-defined value.
Maximum number of connections, for example, raises events based on a percentage value of the total
number of connections to the monitored instance or group.
Text-based Thresholds
Text-based thresholds are used to check specific configuration values are properly defined, or to
retrieve success or failure messages for system processes such as backups.
145
Advisor Schedules
• Fixed Rate: collects data according to a fixed schedule. If the schedule is set to 1 minute, and the
first data collection is performed at 12:00, the subsequent data collection occurs at 12:01, even if the
previous data collection is not yet complete. This is the default schedule for all Advisors.
• Fixed Delay: collects data only after the preceding collection is complete. If the schedule is set to 1
minute, the data collection is performed 1 minute after the preceding collection completed.
• Daily: collects data at the defined time. This is useful for collections with a large overhead on the
monitored instance, enabling you to schedule the collection for an off-peak time.
• Disabled: deactivates the advisor for all monitored assets, or for the selected group or host.
146
Chapter 20 Expression-Based Advisor Reference
This chapter describes the MySQL Enterprise Monitor expression-based Advisors.
147
Binary Log Debug Information Disabled
Binary log informational events are used for debugging and related purposes. Informational events are
enabled by setting binlog_rows_query_log_events to TRUE. By default, this advisor generates an
event if ROW or MIXED logging is enabled and binlog_rows_query_log_events=FALSE.
Note
Binary log informational events were introduced in MySQL 5.6.2 and are not
supported by earlier versions of MySQL.
Binary logging can be limited to specific databases with the --binlog-do-db and the --binlog-
ignore-db options. However, if these options are used, your point-in-time recovery options are limited
accordingly, along with your ability to review alterations made to your system.
148
Database May Not Be Portable Due To Identifier Case Sensitivity
The binary log captures DML, DDL, and security changes that occur and stores these changes in a
binary format. The binary log enables point-in-time recovery, preventing data loss during a disaster
recovery situation. It is used on master replication servers as a record of the statements to be sent to
slave servers. It also enables you to review all alterations made to your database.
However, the number of log files and the space they use can grow rapidly, especially on a busy server,
so it is important to remove these files on a regular basis when they are no longer needed, as long as
appropriate backups have been made. The expire_logs_days parameter enables automatic binary
log removal.
An event is a stored routine with a starting date and time, and a recurring tag. Unlike triggers, events
are not linked to specific table operations, but to dates and times. Common uses are the cleanup of
obsolete data, the creation of summary tables for statistics, and monitoring of server performance and
usage.
However, the general query log should not be enabled in production environments because:
• It logs statements in the order they were received, not the order they were executed, so it is not
reliable for backup/recovery;
149
In-Memory Temporary Table Size Limited By Maximum Heap Table Size
The MySQL server maintains a host cache in memory that contains IP address, host name, and error
information about clients. It uses the host cache for several purposes:
• By caching the results of IP-to-host name lookups, the server avoids doing a DNS lookup for each
client connection, thereby improving performance.
• The cache contains information about errors that occur during the connection process. Some
errors are considered blocking. If too many of these occur successively from a given host without a
successful connection, the server blocks further connections from that host.
If the host cache is not large enough to handle all the hosts from which clients may connect,
performance may suffer and you may lose information about client connection errors.
However, InnoDB provides a start up option called innodb-status-file, which dumps the same
output as SHOW ENGINE INNODB STATUS to a file called innodb_status.mysql pid in the
datadir. MySQL Enterprise Monitor Agent reads this file automatically, if it exists, before executing the
SHOW statement.
Using the new clauses and settings for ROW_FORMAT and KEY_BLOCK_SIZE on CREATE TABLE and
ALTER TABLE commands and the CREATE INDEX command can be confusing when not running in
strict mode. Unless you run in strict mode, InnoDB ignores certain syntax errors and creates the table
or index, with only a warning in the message log. However if InnoDB strict mode is on, such errors
150
InnoDB Tablespace Cannot Automatically Expand
generate an immediate error and the table or index is not created, saving time by catching the error at
the time the command is issued.
The default thresholds are defined in a numeric format, where version 5.5 is represented as 50500
(Notice threshold), and 5.1 as 50100 (Warning threshold).
Next-key locking in InnoDB can be disabled, which may improve performance in some situations.
However, this may result in inconsistent data when recovering from the binary logs in replication
or recovery situations. You can disable most gap locks, including most next-key locks, by using --
transaction-isolation=READ-COMMITTED or --innodb_locks_unsafe_for_binlog=1.
Using either is perfectly safe, but only if you are also using --binlog-format=ROW.
151
No Value Set For MyISAM Recover Options
If the table cache limit has been exceeded by the number of tables opened in the first three hours of
service, then the table cache size is likely set too low.
Error conditions encountered by a MySQL server are always logged in the error log, but warning
conditions are only logged if log_warnings is set to a value greater than 0. If warnings are not logged
you do not get valuable information about aborted connections and various other communication
errors. This is especially important if you use replication so you get more information about what is
happening, such as messages about network failures and reconnection.
152
MySQL Agent Memory Usage Excessive
• MySQL Availability
153
Excessive Percentage Of Attempted Connections To The Server Have Failed
MySQL Availability
Tracks MySQL availability, by making a full connection to the monitored instance on the configured
frequency.
Important
The Availability statistics on the main Dashboard Overview page require this
advisor to be enabled.
154
Cluster Data Node Redo Buffer Space Getting Low
155
InnoDB Buffer Cache Has Sub-Optimal Hit Rate
When enabled, the query cache should experience a high degree of hits, meaning that queries in the
cache are being reused by other user connections. A low hit rate may indicate not enough memory
is allocated to the cache, identical queries are not being issued repeatedly to the server, or that
the statements in the query cache are invalidated too frequently by INSERT, UPDATE, or DELETE
statements.
This advisor triggers when more than 25% of the Query Cache is being used, and the ratio of Query
Cache hits to Query Cache inserts is low.
When the Query Cache is full, and needs to add more queries to the cache, it makes more room in the
cache by freeing the least recently used queries from the cache, and then inserting the new queries. If
this is happening often, increase the size of the cache to avoid this swapping.
156
Thread Cache Size May Not Be Optimal
The table cache is used to cache file descriptors for open tables and there is a single cache shared
by all clients. Increasing the size of the table cache allows mysqld to keep more tables open
simultaneously by reducing the number of file open and close operations that must be done. If
the value of Open_tables is approaching the value of table_open_cache, this may indicate
performance problems.
• Support Diagnostics
• Provides the data for the graphs on the MEM Service Manager page. To display these graphs,
set the target selectors to Global Summaries, select MEM Service Manager from the All Targets
menu, and select Timeseries Graphs from the Metrics menu.
• Checks the timestamps of data collected by the agent to ensure the time of the monitored server is
not set to a future time or date. Any data collected, with a timestamp of more than 5 minutes in the
future, relative to the MySQL Enterprise Service Manager's system clock, is discarded and a critical
event is generated. The critical event contains information on the assets whose time is incorrectly
defined.
Important
• Raises a critical event if the SMTP Rate Limit defined on an Event Handler is exceeded. If this rate
is exceeded, no further notifications are sent until the period ends and the new period begins (1
157
Support Diagnostics
minute). The event lists the name of the event handler whose rate limit was exceeded and the rate
defined on that event handler.
These events are not auto-closed and are not updated. That is, they only display the first failure.
To create an event handler which sends notifications when the SMTP Rate Limit is exceeded, in the
Create Event Handler window, select the ServiceManager: MEM Service Manager asset and the
Critical Event Status. Define other values as required.
Important
This can result in a very large volume of emails, depending on the SMTP
Rate Limits defined on your Event Handlers.
Support Diagnostics
Tracks MySQL configuration for bundling in the support diagnostics.
It is strongly recommended that you upgrade your agents when upgrading your MySQL Enterprise
Service Manager. MySQL Enterprise Service Manager and MySQL Enterprise Monitor Agent should be
the same version.
This advisor detects unsupported agents that try to connect to this service manager.
This Advisor enables you to define thresholds, in megabytes of free RAM, for Notice, Warning, Critical,
and Emergency.
158
Binary Log Usage Exceeding Disk Cache Memory Limits
For more information on the binary log and binary log cache, see The Binary Log.
This advisor has no configurable thresholds and is used to populate the graphs and tables of the
Database File I/O report. The report continues to display historical data if the Advisor is disabled, but
does not display any new data.
159
Excessive Number of Locked Processes
For performance reasons it is ideal to have most temporary tables created in memory, leaving
exceedingly large temporary tables to be created on disk.
160
InnoDB Buffer Pool Writes May Be Performance Bottleneck
via full table scans, are high compared to the Handler variables which denote index accesses, such as
Handler_read_key, Handler_read_next, and so on. You should examine your tables and queries
for proper use of indexes.
InnoDB supports compressed tables (COMPRESSED row format) and more efficient BLOB
handling (DYNAMIC row format), but both features require support for the latest file format
(innodb_file_format=Barracuda). These features also require the use of the
ROW_FORMAT=[DYNAMIC|COMPRESSED] in CREATE TABLE and ALTER TABLE statements.
161
MyISAM Concurrent Insert Setting May Not Be Optimal
For optimal performance, InnoDB should not have to wait before writing DML activity to the InnoDB log
buffer.
• If concurrent_insert is set to 1, the default, or AUTO as of MySQL 5.5.3 or later, MySQL allows
INSERT and SELECT statements to run concurrently for MyISAM tables that have no free blocks in
the middle of the data file.
Setting concurrent_insert to 2 allows tables to grow even when there are holes in the middle.
This can be bad for applications that delete large chunks of data but continue to issue many
SELECTs, thus effectively preventing INSERTs from filling the holes.
However, prepared statements take time to prepare and consume memory in the MySQL server until
they are closed.
However, prepared statements take time to prepare and consume memory in the MySQL server until
they are closed, so it is important to use them properly. If you are only executing a statement a few
times, the overhead of creating a prepared statement may not be worthwhile.
162
Table Lock Contention Excessive
Note
Enabling the query cache can significantly increase performance for SELECT queries that are
identically executed across many connections, returning the same result set. However, performance
can be adversely affected if the memory used for the query cache is excessively fragmented, causing
the server to pause while it is removing entries from the cache or searching the free block list for a
good block to use to insert a new query into the cache.
The value of thread_pool_stall_limit should be chosen such that statements that execute
longer than its value are considered stalled. Stalled statements generate a lot of extra overhead since
they involve extra context switches and in some cases even extra thread creations. On the other hand,
setting the thread_pool_stall_limit parameter too high means that long-running statements
block a number of short-running statements for longer than necessary. Short wait values permit threads
to start more quickly. Short values are also better for avoiding deadlock situations. Long wait values are
useful for workloads that include long-running statements, to avoid starting too many new statements
while the current ones execute.
163
Too Many Concurrent Queries Running
With servers that have many concurrent active connections (generally, more than the number of CPUs
within the machine) it can be beneficial for performance to enable the Thread Pool plug-in. This keeps
the number of actively executing threads within the server lower, generally leaving less contention for
locks and resources, whilst still maintaining very high connection counts from applications.
164
Binary Log File Count Exceeds Specified Limit
You can also cause the server to write checksums for the events using CRC32 checksums by
setting the binlog_checksum system variable, to add an extra level of safety to the logs and
the replication process. To cause the server to read checksums from the binary log, use the
master_verify_checksum system variable. The slave_sql_verify_checksum system variable
causes the slave SQL thread to read checksums from the relay log.
However, binary logs can consume a very large amount of disk space and should be removed from
a production server to free up space after they are no longer needed by the slaves connecting to this
master server, and after they have been backed up.
• More than one server has the same value for server_id (duplicate server IDs)
165
Master Not Verifying Checksums When Reading From Binary Log
• When a source is replicating to a replica that has an older version of the MySQL Server than the
master
You can also cause the server to write checksums for the events using CRC32 checksums by
setting the binlog_checksum system variable, to add an extra level of safety to the logs and
the replication process. To cause the server to read checksums from the binary log, use the
master_verify_checksum system variable. The slave_sql_verify_checksum system variable
causes the slave SQL thread to read checksums from the relay log.
• Same File Position Thresholds: Alert generated if the applier thread reading position and the I/O
thread writing position difference is larger than the configured threshold and are reading/writing to the
same file.
• Different File Position Thresholds: Alert are generated if the applier thread reading position is
larger than the configured threshold and the I/O thread is writing to a different file.
166
Slave Has Login Accounts With Inappropriate Privileges
If a replica is too far behind the source, results of queries directed to the replica may not reflect the
latest changes made on the source.
You can also cause the server to write checksums for the events using CRC32 checksums by
setting the binlog_checksum system variable, to add an extra level of safety to the logs and
the replication process. To cause the server to read checksums from the binary log, use the
master_verify_checksum system variable. The slave_sql_verify_checksum system variable
causes the slave SQL thread to read checksums from the relay log.
167
Slave SQL Processing Not Multi-Threaded
the SQL thread has executed all the updates in a relay log, the file is no longer needed and can be
deleted to conserve disk space.
The current implementation of multi-threading on the slave assumes that data and updates are
partitioned on a per-database basis, and that updates within a given database occur in the same
relative order as they do on the master. However, it is not necessary to coordinate transactions
between different databases. Transactions can then also be distributed per database, which means
that a worker thread on the slave can process successive transactions on a given database without
waiting for updates to other databases to complete.
Transactions on different databases can occur in a different order on the slave than on the master,
simply checking for the most recently executed transaction is not a guarantee that all previous
transactions on the master have been executed on the slave. This has implications for logging and
recovery when using a multi-threaded slave.
Finally, note that beginning with MySQL Server 5.7.2, there is also support for intra-schema
parallelization (LOGICAL_CLOCK). See slave-parallel-type for more information.
168
AUTO_INCREMENT Field Limit Nearly Reached
However, the range of numbers that can be generated is limited by the underlying data type. For
example, the maximum value possible for a TINYINT UNSIGNED column is 255. If you try to generate
a number that exceeds the maximum allowed by the underlying data type, such as by inserting a NULL
value into the AUTO_INCREMENT column, database errors are triggered and your application may not
behave properly.
169
Object Changed: Function Has Been Created
For development environments, changes to databases and objects may be a normal occurrence,
but not for production environments. It is wise to know when any changes occur in a production
environment with respect to any database structures and investigate the reasons for the changes.
170
Server-Enforced Data Integrity Checking Disabled
For development environments, changes to databases and objects may be a normal occurrence,
but not for production environments. It is wise to know when any changes occur in a production
environment with respect to any database structures and investigate the reasons for the changes.
Note
Any client can change its own session SQL mode value at any time.
Note
Any client can change its own session SQL mode value at any time.
171
Object Changed: Table Has Been Dropped
Note
Tables lacking primary or unique keys can have a very negative impact on
replication performance when using binlog_format=ROW.
Note
MySQL Enterprise Firewall and MySQL Enterprise Audit Plug-in advisors are
described in MySQL Enterprise Firewall and MySQL Enterprise Audit Plugin.
172
Account Has Old Insecure Password Hash
Prior to MySQL 4.1, password hashes computed by the PASSWORD() function were 16 bytes long.
As of MySQL 4.1 (and later), PASSWORD() was modified to produce a longer 41-byte hash value to
provide enhanced security. However, in order to allow backward-compatibility with user tables that
173
Insecure Password Generation Option Is Enabled
have been migrated from pre-4.1 systems, you can configure MySQL to accept logins for accounts
that have password hashes created using the old, less-secure PASSWORD() function, but this is not
recommended.
There are two potential security issues with supporting the LOCAL version of LOAD DATA statements:
• The transfer of the file from the client host to the server host is initiated by the MySQL server. In
theory, a patched server could be built that would tell the client program to transfer a file of the
server's choosing rather than the file named by the client in the LOAD DATA statement. Such a
server could access any file on the client host to which the client user has read access.
• In a Web environment where the clients are connecting from a separate web server, a user could
use LOAD DATA LOCAL to read any files that the web server process has read access to (assuming
that a user could run any statement against the SQL server). In this environment, the client with
respect to the MySQL server actually is the web server, not the remote program being run by the
user who connects to the web server.
For more information on validate_password plug-in, see The Password Validation Component.
174
Policy-Based Password Validation Not Enabled
If users create weak passwords, it compromises the security of the server, making it easier for
unauthorized people to guess the password and gain access to the server. Starting with MySQL
Server 5.6, MySQL offers the validate_password plug-in that can be used to test passwords and
improve security. With this plug-in you can implement and enforce a policy for password strength (e.g.
passwords must be at least 8 characters long, have both lowercase and uppercase letters, and contain
at least one special non-alphanumeric character).
For more information on validate_password plug-in, see The Password Validation Component.
For more information on validate_password plug-in, see The Password Validation Component.
175
Root Account Without Password
By default, MySQL includes a root account with unlimited privileges that is typically used to administer
the MySQL server. If possible, accounts with this much power should not allow remote logins in order
to limit access to only those users able to login to the machine on which MySQL is running. This helps
prevent unauthorized users from accessing and changing the system.
Note
This advisor differentiates between anonymous accounts and proxy users. For
more information on proxy users, see Proxy Users.
176
Server Has No Locally Authenticated Root User
However, symlinks can compromise security. This is especially important if you run mysqld as root,
because anyone who has write access to the server's data directory could then delete any file in the
system!
177
Users Can View All Databases On MySQL Server
Note
178
Chapter 21 GUI-Based Advisor Reference
This chapter describes the GUI-based Advisors. That is, the advisors which are configured using a
dialog rather than an expression.
The Agent Health Advisor configuration dialog is divided into the following functional areas:
• General
• Communication
• Backlog
General
The General section defines the CPU and RAM usage thresholds. These thresholds generate events
if the defined threshold value is broken by either CPU or RAM usage. Both threshold definitions use a
moving average window. Although it is possible to use very small values for a moving average window,
large values, larger than seconds, are recommended.
• Agent CPU Threshold: enables you to define thresholds for percentage CPU usage. The default
value is Critical at 10% usage.
179
Communication
• Memory Usage Thresholds (% of max allowed): enables you to define thresholds for RAM usage
as a percentage of the maximum heap size allocated to the monitoring agent. The default values are:
• Notice = 70
• Warning = 85
• Critical = 90
Communication
The Communication section defines the thresholds for latency and HTTP errors between agent and
MySQL Enterprise Service Manager.
• Agent Latency Thresholds: enables you to define thresholds for time difference between the time
the data was collected and the time MySQL Enterprise Service Manager received the collected data.
This can be caused by clocks that are not synchronized, network problems, and so on. The default
values are:
• Warning = 1 minute
• Critical = 10 minutes
Important
180
Backlog
The Agent Health Advisor compares the time on the MySQL Enterprise
Service Manager against the time on the monitored host. If no time-
synchronization issues exists, these false positive events are auto-closed.
• HTTP Error Thresholds (% of total requests): enables you to define thresholds for number of
HTTP errors as a percentage of the total number of HTTP requests. The default values are:
• Notice = 10
• Warning = 20
• Critical = 30
Backlog
If the monitoring agent is unable to communicate with the MySQL Enterprise Service Manager, it stores
the collected data in memory up to a limit of 10MB, then on the filesystem, up to a limit of 10MB, giving
a total limit of backlog storage of 20MB. If the limit is reached, backlog data is dropped.
• Backlog Memory Usage Thresholds (% of max allowed): enables you to define a threshold for
the amount of RAM used by the backlog, as a percentage of the maximum RAM allowed, 10MB. The
default value is Warning = 80, which corresponds to 8MB of RAM used.
• Backlog Disk Usage Thresholds (% of max allowed): enables you to define a threshold for the
amount of disk space used by the backlog, as a percentage of the maximum disk space allowed,
10MB. The default value is Warning = 80, which corresponds to 8MB of disk space used.
• Notify on succeeded or failed backups: enables you to generate an event for the success or
failure of a backup. The default values are:
181
MySQL Process Discovery Advisor
• Notice = Success
• Emergency = Failure
• Notify when incremental backups are not being used: enables you to generate an event if the
monitoring agent detects that incremental backups are not used. Select Yes to generate an event.
• Notify when backup lock time is excessive: enables you to generate an event if the backup lock
time exceeds the defined thresholds. The default values are:
• Notice = 10 seconds
• Warning = 1 minute
• Notify when the last successful full backup is too old: enables you to generate an event if the
last full backup is older than the defined threshold. The default value is:
• Warning = 7 days
• Notify when the last successful incremental backup is too old: enables you to generate an event
if the last incremental backup is older than the defined threshold. The default value is:
• Warning = 2 days
Important
If you disable this advisor, notifications for unmonitored instances, and the
associated events, are not displayed in the user interface.
182
Duplicate Host Identity
Name Description
Admin Password The password for the Admin User.
Auto-Create Less When monitoring an instance, multiple levels of user can be employed to
Privileged Users ensure that a Process connection is not held open indefinitely.
• General User: used for general monitoring tasks that do not require
SUPER level privileges, and is always connected.
• Limited User: used for potentially long running statements running with
SELECT only privileges.
• Host plus Data Directory: uses a hash of the host identity and the path
to the MySQL instances data directory to create a unique identity. The
host_and_datadir option can only be used when the agent is running
on the same host as the MySQL instance for this connection.
183
sys Schema Install Advisor
Tracks instances whose UUID is duplicated or becomes associated with multiple, different host names,
or connections, over a specific time period. These changes are measured by rate, that is, by a defined
number of changes over the defined time period.
For example, if the Change Rate is set to 5, and Every set to 10 minutes, and the UUID of the
instance changed hostname 5 times in 8 minutes, an event is generated.
Note
CPU Usage
• CPU Usage Thresholds: configure the thresholds for percentage of total CPU usage.
184
CPU Outliers
• CPI I/O Wait Thresholds: configure the thresholds for CPU I/O Wait as a percentage of total CPU
time.
CPU Outliers
Enables detection of CPU outliers. A CPU is considered an outlier if the conditions defined here are
met.
Note
It is not recommended to enable this for all Operating Systems, but for specific
groups.
• Enable CPU Outlier Detection: Whether or not to enable the CPU outlier detection.
• Minimum Server Count for Outlier Detection: Minimum required sample size before outlier
detection is enabled.
• Small Group Notification: Whether or not to generate an event if the sample size is too small to
enable outlier detection.
• Outlier Percentile: percentage, relative to the other CPUs in the group, at which a CPU is
considered an outlier.
General
Figure 21.6 Filesystem - General
185
Estimated Full Capacity
The General section enables you to choose the filesystem to monitor. The following types are
available:
• Network Mount: enables monitoring of mounted network filesystems on the monitored server.
The Estimated Full Capacity section monitors and graphs the time remaining to full capacity based on
existing load.
• Extrapolate Free Space to Zero in Graphs: enables graphing of the projected time to full capacity,
based on existing load.
• Free Space Running Out Thresholds: generate events based on when the free space is projected
to run out.
Percentage of Space
Figure 21.8 Filesystem - Percentage of Space
186
Percentage Used in Time Range
The Percentage of Space section generates events based on the percentage of free space available,
relative to the total space on the monitored device.
It is possible to edit the Moving Average Window size and change the schedule of this Advisor.
• Average Execution Time Thresholds: Generates events if the average execution time exceeds the
defined thresholds.
• Minimum Execution Count: Minimum number of times a normalized statement must be executed
before it can generate an event.
• One Alert per Query: Specify how events are generated. The possible values are:
• Yes: generate an event for each normalized query that exceeds a threshold
• No: generate a single event per MySQL Server summarizing all queries that exceed the
thresholds. This is the default behavior.
• DML Statements Only: Specify for which statements events are generated. The possible values
are:
187
SQL Statement Generates Warnings or Errors
Alerts when query pileups occur, when the number of threads running increase rapidly over a short
period of time. For example, based on the defaults for this advisor, if the exponential moving average of
Threads_running has increased by 50% or more, but less than 80%, over the last 1 minute, it raises a
Warning alert.
• Window Size: duration of the moving average window over which monitoring is done.
• Growth Rate Thresholds: percentage growth rate of the running statements during the defined
moving average window.
• Minimum Running Threads: the minimum number of running threads before an event is generated.
• One Alert Per Query: generate events for queries which return errors or warnings. Possible values
are:
• Yes: generate an event for each normalized query which returns an error or warning.
• No: generate a single event, per MySQL server, summarizing all queries which generated errors or
warnings.
• Notification level when discovering queries with errors: select the desired notification level for
queries with errors.
• Notification level when discovering queries with warnings: select the desired notification level
for queries with warnings.
• Enable Example Query: provides detailed data about the queries and their parameters. Enabling
this parameter increases the RAM used by the monitoring agent.
Important
• Enable Example Explain: executes EXPLAIN on the selected statement. This is executed for
statements whose runtime exceeds the value defined in Auto-Explain Threshold.
• Auto-Explain Threshold: Explains are executed for statements whose runtime is longer than the
value defined here.
Important
Explains are generated for query data supplied by the Performance Schema.
188
Group Replication Configuration Advisor
advisor analyzes the configuration of the servers, checking for misconfiguration which could lead to
unstable or insecure installations, and the status advisor continuously monitors for servers which go
offline, or fall out of sync with the other members of the group.
The group replication advisors also populate the following group-level graphs:
Select the required notification level for each configuration parameter. Event notification levels can be
configured for the following:
• Notification level for general configuration problems: checks the following variables and alerts of
potential problems:
189
Group Replication Status Advisor
• Notification level for security configuration problems: checks the following security configuration
variables and alerts of potential problems:
Select the required notification level for each configuration parameter. Event notification levels can be
configured for the following:
• Notification level when discovering a Group Replication member with a state of ERROR: select
the required level for events if a group member's Member_state is ERROR.
• Notification level when discovering a Group Replication that is at risk of loss of quorum:
notification level if the monitored topology is found to have an even number of members.
• Notification level when discovering a Group Replication has lost quorum: notification level if
more than half of the monitored topology's members are offline.
• Minimum odd number of ONLINE members to be tolerant to failures: notification level if the
number of online members of the monitored topology falls beneath the defined number.
• Notification level for network partitioning detection: notification level if one or more members of
the topology are online but unreachable by other members.
190
Security Advisors
For more information on the MySQL Enterprise Audit Plugin, see MySQL
Enterprise Audit.
This advisor enables you to configure event generation for the audit log plugin. This advisor has the
following parameters:
• Events Lost Threshold: generates events for audit events which are lost due to setting the server's
audit_log_strategy to PERFORMANCE. Enter a number of lost messages per threshold.
• Write Wait Percent Thresholds: generates events for the number of audit log write waits. The
percentage is calculated as write waits versus writes.
• Events Filtered Threshold: generates events for the number of audit events which are filtered out
by the audit log configuration
• Detect Filtering Configurations: if set to Yes, generates events for any configuration which filters
audit log events. If set to No, such configurations are ignored.
For more information on the MySQL Enterprise Firewall, see MySQL Enterprise
Firewall.
This advisor enables you to configure event generation for the MySQL Enterprise Firewall. This advisor
has the following parameters:
• Firewall Enabled Threshold: generates events if the firewall is installed, but not enabled. To
change the level of the alert, move the value 0 (representing "OFF") to the required threshold.
• Access Denied Threshold: generates events for the number of times statements were denied by
the firewall. Enter the number of denials in the required thresholds.
• Access Suspicious Threshold: generates events for the number of times statements were deemed
suspicious by the firewall.
The MySQL server has user accounts with overly broad host specifiers. A MySQL account is
identified by both a username and a host name, which are found in the User and Host columns of
191
MySQL User Account
the mysql.user table. The User value is the name that a client must supply when connecting to
the server. The Host value indicates the host or hosts from which the user is allowed to connect. If
this is a literal host name, the account is limited to connections only from that host. If the host name
contains the % wildcard character, the user can connect from any host that matches the wildcard
character and potentially from any host at all.
Literal host values are best and % is worst. Accounts that have Host values containing wildcards are
more susceptible to attack than accounts with literal host values, because attackers can attempt to
connect from a broader range of machines.
For example, if an account has user and host values of root and %, it means that you can connect
as the root user from any machine if you know the password. By contrast, if the host name is
localhost or 127.0.0.1, the attacker can only attempt to connect as the root user from the
server host.
The advisor enables you to specify an exclusion list, using a regular expression, of users allowed to
use % for their host entry in the mysql.user table. No events are generated for users matching this
pattern.
For example:
^(user1|user2)$
permits only user1 or user2 to use % for their host entry in the mysql.user table. An event is
generated for any other user with % for their host entry.
A MySQL server may have user accounts with privileges on all databases and tables (*.*). In most
cases global privileges should be allowed only for the MySQL root user, and possibly for users that
you trust or use for backup purposes. Global privileges such as DROP, ALTER, DELETE, UPDATE,
INSERT, and LOCK TABLES may be dangerous as they may cause other users to be affected
adversely.
This advisor enables you to define a regular expression describing the users allowed to have global
privileges on the mysql.user table (ALTER, DELETE, DROP, INSERT, LOCK_TABLES, or UPDATE).
For example:
^(user1@host1|user2@host2)$
permits only user1 on host1, or user2 on host2, to have global privileges on the mysql.user table.
An event is generated for any other user with those privileges.
This advisor enables you to define a regular expression describing the users allowed to have global
privileges on the mysql.user table (CREATE_USER, FILE, GRANT, PROCESS, LOCK_TABLES,
SHUTDOWN, SUPER or RELOAD). For example:
^(user1@host1|user2@host2)$
permits only user1 on host1, or user2 on host2, to have strong privileges on the mysql.user table.
An event is generated for any other user with those privileges.
Privileges such as SELECT, INSERT, and ALTER, allow a user to view and change data. Such
operations should be limited to only those databases to which a user needs access.
This advisor enables you to define a regular expression that describes those user accounts that
are allowed to have database level privileges on all databases in the mysql.user table (ALTER,
CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE). For example:
192
NDB Cluster GUI Advisors
^(user1@host1|user2@host2)$
permits only user1 on host1, or user2 on host2, to have database-level privileges on all databases in
the mysql.user table. An event is generated for any other user with those privileges.
Note
The regular expressions can be applied per instance, per server (all instances
running on the server), per group (all instances in the group), or globally (all
instances), depending on the asset selected.
Note
This section does not describe the expression-based advisors. For information
in the expression-based NDB Cluster advisors, see Section 20.4, “NDB Cluster
Advisors”.
Name Description
Free Data Memory Events are generated if the percentage of free data memory in a cluster
Thresholds (% free data node drops below the thresholds defined here. Database inserts start
memory allowed) to fail as all of the memory is consumed.
193
NDB Cluster Status Advisor
Name Description
Free Index Memory Events are generated if the percentage of free index memory in a cluster
Thresholds (% free data node drops below the thresholds defined here. Database inserts start
memory allowed) to fail as all of the memory is consumed.
This advisor is also responsible for populating the NDB Data Node - Data Memory graphs.
194
NDB Cluster Status Advisor
Name Description
Notification level when Checks the node and process status and generates events if either the node
a Data node (ndbd is not in RESTARTNG, STARTING, STARTED, or SINGLEUSER status, or if the
or ndbmtd) is not related process is not found.
running.
Notification level when Checks the node status and generates events if the node is not in
an API node is not CONNECTED status
connected
Data nodes uptime To perform useful work, the cluster data nodes must be up-and-running
in seconds to be continuously. It is normal for a production system to run continuously for
detected as restart weeks, months, or longer. If a data node has been restarted recently, it
may be the result of planned maintenance, but it may also be due to an
unplanned event that should be investigated. This advisor generates events
if a data node is detected that has been running for a short amount of time.
195
196
Chapter 22 Event Handlers
This chapter describes Event Handlers.
Events are displayed if an Advisor Threshold is crossed, and are used to inform you of errors or
potential problems with your implementation.
Event handlers define who is notified, and how they are notified, when the thresholds on Advisors are
breached and how the event is treated after the status changes.
Important
It is not currently possible to select both groups and individual assets, you
must select one or the other.
• Event statuses to trigger the notifications (WARNING, CRITICAL, EMERGENCY, and so on).
If the MySQL Process advisor generates a Warning event for one of the contents of Group A, the
condition is true and the associated action is triggered. The action can be one of the following:
• The condition evaluates as True and the status changes to any other status.
• Auto-close the event if the current status of the event is OK, but the prior status matched one of
those defined in the condition.
• Event Handlers: Lists the event handlers defined on the system. The Default Auto Close Policy is
present by default and cannot be edited.
197
Event Handlers Page
• Email Notification Groups: lists the email notification groups defined on the system.
• Email Settings: enables you to define the email configuration, such as SMTP server, username and
password to use for all outgoing emails.
• Email Notification Status: displays the success or failure of the last email sent.
• SNMP Settings: enables you to define the SNMP trap configuration, such as SNMP version, SNMP
targets, and so on.
• SNMP Notification Status: displays the success or failure of the last SNMP trap sent.
The Default Auto-close Policy closes events after they change status. If a threshold is defined for an
advisor, and the threshold is breached, an event is displayed in the Events page. If it changes status
198
Event Handlers Page
to a lower priority status, or to a status without a defined threshold, the default auto-close policy closes
the event.
Note
The Default Auto-close Policy event handler is the only event handler created
by default.
This policy does not apply to all Advisors. Some Advisors, such as MySQL Server Has Been
Restarted, are too important to auto-close.
Important
It is not possible to edit this Event Handler, but it is possible to override it using
the Auto-Close Events option in the Create Event Handler dialog.
This section describes the controls on the Email Notification Group section.
Name Description
Create Notification Opens the Create Notification Group dialog. For more information, see
Group button
Group Name Lists the names of the notification groups.
Recipients Lists the recipients’ email addresses.
Subject Line The subject line of the notification emails.
SMS Status of SMS encoding. The following values are possible:
• true: critical MySQL Enterprise Monitor emails are sent to this notification
group.
You can define email notification groups using the Create Group dialog. To open the Create Group
dialog, click Create Notification Group in the Email Notification Groups section of the Event
Handlers page.
199
Event Handlers Page
Name Description
Group Name Define the name of the notification groups.
Recipients Add a comma-separated list of recipients’ email addresses.
Subject Line The subject line of the notification emails. You can add some, or all, of the
following variables to the subject line:
• {0}: replaced by the alarm level of the event. Critical, Warning, and so
on.
• {1}: replaced by the name of the advisor which generated the alert.
• {2}: replaced by the name of the server which triggered the alert.
SMS Use SMS encoding for this notification group.
MEM Admin Identifies this group as an administration group and sends critical system
messages to the defined recipients.
2. In the Group Name field, specify a group name to uniquely identify this notification group.
3. In the Recipients field, add a comma-separated list of email addresses. These are the addresses to
which the notifications are sent.
4. In the Subject Line field, specify the subject line which are added to every email sent by this
notification group.
5. If required, select SMS (Use SMS encoding for this notification group).
6. If you want to send information regarding the status of MySQL Enterprise Monitor to the recipients
of this notification, select the MEM Admin checkbox. Only critical system messages are included.
200
Event Handlers Page
Name Description
Enable Email Select to activate the email settings controls.
Notifications
From Address The email address added to the From field of all emails sent from MySQL
Enterprise Monitor.
SMTP server The SMTP server address. The default port is assumed unless otherwise
specified.
If your mail server does not use the default SMTP port, add the port number
to the address using the mailServerName:portNumber format. For
example, if your mail server, mail.yourserver.com, uses the port 4456,
add mail.yourserver.com:4456 to the SMTP Server field.
SMTP Server Login The username for the SMTP server
Update Password on Select to activate the password fields.
Save
Disable JavaMail TLS/ Select if the SMTP server does not require an encrypted connection.
SSL
On Save, Send Test Enter an email address if you want to send a test email when the changes
Email Message To are saved.
Save Email Settings Saves the Email Settings and sends a test email if an address is defined in
the On Save, Send Test Email Message To field.
201
Event Handlers Page
The Email Notification Status section displays the success or failure of the last email sent, and an
error message describing why the sending failed.
The SNMP Settings section enables you to define the SNMP trap configuration, such as SNMP
version, SNMP targets, and so on.
Name Description
Enable SNMP Activates the SNMP configuration fields.
Notifications
Use SNMP v1/v2c Choose the version of SNMP you intend to use.
Target and Port IP address and Port number of the system which receive the SNMP Traps.
Number
Community String SNMP community string. Default value is public.
Use the remote Defines the source IP address included in the trap.
MySQL agent host IP
address as the SNMP • Disabled: the trap uses the IP address of the service manager.
trap agent address
for Advisor traps • Enabled: the trap uses the IP address of the agent monitoring the host for
(optional) which the advisor was triggered.
SNMP trap agent Defines the source IP address included in traps generated by MySQL
address for internally Enterprise Service Manager
generated traps
(optional)
202
Creating Event Handlers
Name Description
On Save send test trap Send a test trap message when Save is clicked. Select one, or more, of the
trap types from the list. One trap is sent for each option selected.
• Assets and Groups: enables you to select multiple assets or multiple groups to monitor.
Important
It is possible to define both Assets and Groups in an event handler, but is not
recommended. It is recommended that you create the event handler using
either Assets or Groups, not both. If you define Assets and Groups in an
event handler, notifications are only sent for the defined Assets which also
exist in the defined Groups.
To create an event handler, click Create Event Handler in the Event Handlers section on the Event
Handlers page.
203
Creating Event Handlers
Name Description
Event Handler Name Specify a name which uniquely identifies the new event handler.
Filters
Groups Select the groups of assets to monitor. If this field is left blank, all groups
are included in the event handler's condition, unless one or more assets
are defined. If assets are defined, and the group field is blank, the event
handler's condition includes the selected assets only.
Assets Select the individual assets to monitor from the Assets drop-down list. If this
field is left blank, all assets are included in the event handler's condition,
unless one or more groups are defined. If groups are defined, and the asset
field is blank, the event handler's condition includes the contents of the
selected groups, only.
The Assets drop-down list displays the Assets in their groups, if groups
are defined. If no groups are defined, it lists the assets. It is not possible
to select groups in the Assets field. You must expand the group to select
individual assets.
Note
204
Event Action Log
Name Description
Auto-Close Events Defines whether the events are closed after the trigger status changes. The
following values are possible:
• Yes: the default auto-close policy is honored and the events are closed
when the conditions defined are no longer met.
• No: the default auto-close policy is ignored and the events remain open in
the Events page even after the conditions are no longer met.
Important
If you leave the Assets, Groups, and Advisors fields empty, the event handler
can generate an extremely high volume of emails, depending on the number of
assets monitored. It is recommended to create event handlers which address
specific requirements and contain strictly defined criteria.
Important
Do not define both Assets and Groups, use one or the other.
If multiple event handlers are defined on the same advisor, their corresponding actions are combined
into a single action. However, these actions are logged separately in the event handler log.
If multiple event handlers are defined on the same advisor, their corresponding actions are combined
into a single action. However, these actions are logged separately in the event handler log.
The Action Log [n] lists the time the action was taken, the type of action (SMTP or SNMP), the failure
or success of the action, and the triggering policy used to trigger the event. The Triggering Policy
column lists the names of the event handlers which triggered the actions.
205
Suspending an Event Handler
Note
The rights to suspend event handlers depend on the Event Blackout permission.
If this right is not granted to your role, it is not possible to suspend an event
handler.
206
Chapter 23 Access Control
This chapter describes how to manage access to your MySQL Enterprise Monitor installation.
• Asset visibility: the rights to access data collected from hosts or MySQL instances. Access can be
strictly limited to specific groups of monitored assets.
• Application administration: the rights to view or change the MySQL Enterprise Monitor configuration.
• Specific data access: the rights to view specific types of potentially sensitive data.
• Role reuse: rather than define permissions per user, permission sets are defined in Roles and
multiple users can be assigned to each Role.
The access control system is based on Users and Roles. Users have no rights assigned to them
directly. All rights are defined on Roles. Users are assigned to Roles and inherit the rights defined on
those Roles.
Roles
Roles are collections of permissions to which users are assigned. Roles define what the user is
permitted to see and do in the application. Users can be assigned to multiple roles.
If users are assigned to multiple roles, MySQL Enterprise Monitor always takes the highest permission
defined on those roles for that user. For example, if the user is assigned to a role with the Advisor
Configuration set to Read-Only, and another role with Advisor Configuration set to Administer,
Administer is the permission used for that user.
Users
Users are simple definitions of user name, password, and an optional authentication method, such as
Active Directory or LDAP. Each user must be assigned to at least one Role.
Note
23.2 Permissions
This section describes the permissions available in MySQL Enterprise Monitor Roles.
Permission Scope
There are two distinct permissions scopes in MySQL Enterprise Monitor:
• System-wide Permissions: apply to all assets and groups defined on the system. System-wide
roles grant access to all monitored assets.
207
Permission Groupings
Important
If you log in to the application as a group-specific user, the View filter displays
the group to which you are assigned, and the All group, which contains only
those assets to which you have access.
Permission Groupings
Permissions are grouped in the following way:
• Core Monitored Assets: grant or deny access to the monitored assets and collected data.
• MEM/Service Manager: grant or deny access to the application and its settings.
Permission Types
The following grant types:
• Read-Only: read-only access to the functional area. The user can view, but not edit.
• Administer: complete access to the functional area. The user can view and edit.
An Error Occurred. Access denied. You do not have sufficient permissions to perform the requested
operation. (U0403)
208
Server Group & MySQL NDB Cluster
Important
• Read-Only: Can view Groups of assets. This permission, or higher, is required for all other
permissions which use Groups. Permissions such as Event Handling and Server Group Creation
require access to the defined Groups. If the role requires access to those functional areas, this
permission must be set.
• Administer: Can edit group information and delete groups of assets, but cannot create groups.
Creating a group requires the Server Group Creation permission.
• MySQL Instances: grants access to the data collected on the monitored MySQL Instances. Possible
values are:
• Read-Only: access to the MySQL instances, but no rights to create, modify, or delete connections
to those instances.
• Administer: access to the MySQL instances, and can create, modify, and delete connections to
those servers.
Administer is also required to access the bad connections, unreachable agents, and unmonitored
instance lists on the MySQL Instances dashboard.
Administer is also required by the Database File I/O, which requires the sys schema. To install
SYS schema from the MySQL Enterprise Monitor User Interface, the user must be assigned to a
role with the Administer permission.
Warning
• Query Analysis Aggregate Data: access the data collected for the Query Analyzer. This permission
also defines access to events which contain Query Analyzer data. Possible values are:
209
MySQL NDB Cluster Permissions
• None: No access to the aggregated data collected for the Query Analyzer. If this permission is set,
the user can open the Query Analyzer page, but the page does not load any aggregated data. This
also affects the Query Analyzer graphs.
Events containing query analysis data are not displayed. Currently, this is limited to events
generated by the SQL Statement Generates Warnings or Errors and Average Statement
Execution Time advisors.
• Read-Only: Aggregated data is presented to the user, and the Query Analyzer page is populated.
• Administer: grants the right to close events containing Query Analysis aggregated data.
• Query Analysis Example and Explain Data: access the data for example and explain plans in the
Query Analyzer. This permission depends on the Query Analysis Aggregate Data permission. This
permission also defines access to events which contain EXAMPLE and EXPLAIN data. Possible
values are:
• None: no access is granted to the Query Analyzer EXAMPLE and EXPLAIN data.
• Read-Only: EXAMPLE and EXPLAIN data is accessible. If Query Analysis Aggregate Data is
not set to Read-Only, EXAMPLE and EXPLAIN data cannot be accessed.
• Administer: grants the right to close events containing Query Analysis EXAMPLE and EXPLAIN
data.
Note
• MySQL NDB Cluster API Nodes (Non-SQL): grants access to monitored MySQL NDB Cluster API
Nodes. Read-only grants permission to view details of the nodes and view events generated for the
nodes. Administer permission grants the ability to edit MySQL NDB Cluster API Node details and
initiate actions against the Node, and to close Events generated for the node.
• MySQL NDB Cluster Data Nodes: grants access to monitored MySQL NDB Cluster Data Nodes.
Read-only grants permission to view details of the nodes and view events generated for the nodes.
Administer grants permission to edit MySQL NDB Cluster Data Node details and initiate actions
against the Node, and to close Events generated for the node.
• MySQL NDB Cluster Management Nodes: grants access to monitored MySQL NDB Cluster
Management Nodes. Read-only grants permission to view details of the nodes and view events
generated for the nodes. Administer permission grants the ability to edit MySQL NDB Cluster
Management Node details and initiate actions against the Node, and to close Events generated for
the node.
210
Agent Services Access
Important
If you are defining an agent role, you must set all other permissions to None.
The agent does not require them.
Authentication-level settings, such as the External Authentication and HTTP Proxy Settings on
the Settings page are not visible if this is set to Read-Only.
Setting any of these values automatically sets the same value for all nested permissions.
211
Advisor Configuration
Note
Advisor Configuration
Advisor Configuration defines access to the Advisor page and its settings.
Note
Advisors do not run as the user who created or enabled them, but as the system
role. This is done to avoid problems such as user deletion, replication topology
visibility (advisors collect on complete topology, but user may only see part of
that topology). As such, the Advisors cannot be set on a group-specific level;
they can only be set at a global level.
• None: no access to the Advisors. If the user attempts to load the Advisors page, an Access Denied
error is displayed.
• Read-Only: read-only access to the Advisors. The user can view the Advisors, but cannot save
changes.
Important
Event Blackout
Event Blackout: Possible values are:
Event Handlers
The Event Handlers permission grants access to the Event Handlers page and menu item. Possible
values are:
• None: no access to Event Handlers. The Event Handlers menu item is not displayed on the
Settings menu.
• Read-Only: read-only access to Event Handlers. The Event Handlers page is accessible, but it is
not possible to create, delete, or edit event handlers.
• Administer:full access to Event Handlers page. Users associated with this role can create, edit,
suspend, and delete Event Handlers.
Note
If the user does not also have Server Group set to at least Read-Only, they are
unable to add groups to an Event Handler.
212
Settings
• None: no access to server group creation. If Server Group is set to Administer, assigned users can
delete and modify existing groups, but cannot create new groups.
• Administer: full access to server groups. If Server Group is set to Administer, the assigned user
can create, delete, and edit server groups. If Server Group is set to Read-Only, the assigned user
can create new groups, but cannot modify existing groups.
Note
Settings
The Settings permission grants access to the Settings menu item and Settings page. Possible values
are:
• Read-Only: read-only access to the Settings. Assigned users can open the Settings page, but
cannot change any settings.
• Administer: full access to the Settings. Assigned users can open the Settings page and edit the
values.
Important
Settings this permission to Administer does not grant access to the External
Authentication section of the Settings page.
• Read-Only: read-only access to the Users and Roles pages. Assigned users can view, but not edit.
• Administer: full access to the Users and Roles pages. Assigned users can view and edit both Users
and Roles.
Default Users
The following default users are created when MySQL Enterprise Service Manager is first installed and
setup:
• Agent user: defines the username and password used by all agents to connect to MySQL Enterprise
Service Manager. This user is automatically added to the Agent role. The username defined on the
initial setup page is used.
• The Manager user: defines the username and password of the Manager user. This user is
automatically added to the Manager role which has all rights granted. The username defined on the
initial setup page is used.
213
Default Roles
Default Roles
This section describes the default roles.
Important
It is not possible to edit or delete the default roles. They are present to enable
upgrades from earlier versions, only.
The following are the default roles and a brief explanation of how they map to user definitions from
earlier versions:
• agent: the role used by the agent user. This role has only the Agent Services access permission
defined because the agent does not need access to any MySQL Enterprise Service Manager
functionality.
• Display Query Analyzer: maps to View Query Analyzer tab in previous versions. Any user with
View Query Analyzer tab defined, is added to the Display Query Analyzer role.
• Display Query Analyzer Examples: maps to View actual (example) queries in previous versions.
Any user with View actual (example) queries defined, is added to the Display Query Analyzer
Examples role.
Users are added to the default roles based on the rights assigned to them in the earlier version of
MySQL Enterprise Monitor. For example, if a user is assigned to the dba role and has both View Query
Analyzer tab and View actual (example) queries enabled, the user is added to the following Roles:
• dba
Creating a Role
Note
1. Select Roles from the Settings menu (gear icon). The Roles page is displayed.
2. On the Roles page, click Create. The Create Role page is displayed.
3. On the Details tab, enter a name in the Role Name field and add a description of the role.
If you are using an external authentication system, such as LDAP or Active Directory, enter the
external role name in the External Roles field.
214
Creating a User
Note
5. If this role applies to a specific group only, select Group-Specific Permission, and select the
required group from the drop-down list.
6. Define your permissions as required. For more information, see Section 23.3, “Monitored Assets
Permissions” and Section 23.4, “Monitoring Services”
7. If users exist, you can add them to this Role using the Assigned Users tab.
To add a user, click on the user name in the Available Users field. The user is moved to the
Assigned Users field.
8. Click Save to save your changes, or click Cancel to discard your changes.
Creating a User
This section describes how to create a user.
1. Select Users from the Settings menu (gear icon). The Users page is displayed.
• Authenticate this user using LDAP: select only if you intend to use LDAP to authenticate this
user.
5. Assign roles to the user by clicking the required role in the Available Roles field.
Important
It is not possible to edit a user's role, if the user is authenticated by LDAP and
their role is also provided by LDAP.
215
216
Chapter 24 Access Control - Best Practices
This chapter describes some best practices for setting up your access control permissions. As each
organization has a different way of implementing their MySQL installations and monitoring, the
scenarios described are general guidelines.
• Open: an organization with one, or more, DBAs. All users can see, but have varying access to, all
monitored assets.
• Strict: an organization with several DBAs and developers, and many monitored assets, grouped
according to the applications and users which use them. Some users within the organization have
access to all monitored assets, some have access only to a subset of those assets and cannot
see any asset which falls outside their responsibilities. This scenario adopts a production vs.
development pattern.
Typically, in this type of scenario, there is a strict separation between production and development.
That is, those roles which have complete access on the development assets, have only limited
access, or no access, to the production assets.
• Database Administrator (DBA): responsible for the proper operation of the MySQL instances. As
such, they need access to the data collected on the monitored instances. In most scenarios, the DBA
can access functionality such as Advisors, Event Handlers, and Query Analysis.
Note
For the purposes of this chapter, the DBA role is taken by SeniorDBA and
JuniorDBA.
• Group/User Administrator: responsible for user, role, and group management. This role defines
who has access to MySQL Enterprise Service Manager and defines the grouping of the servers.
Users in this role are typically high-level DBAs, IT administrators, or project managers. In large
organizations, the Group Administrator role may also be responsible for managing Event Handlers,
Event Blackouts, and Notification Groups. It is strongly recommended that a group administrator is
assigned in all setups. The scope of the Group Administrator role's permissions can vary, depending
on the size of the organization. In smaller organizations, members of this role are solely responsible
for the addition of users, roles and groups. While, in larger organizations, they are also responsible
for managing the event traffic via email/SMTP notifications, group management, and so on.
The GroupAdmin role is a lock-and-key role. It is defined in such a way that it cannot be used on
its own. To add groups, users or roles, it must be used in combination with a role which grants
the top-level permissions, Server Group and MEM Web Application. That is, for a user to have
permissions to edit users, roles and groups, they must be members of both the GroupAdmin role and
another role which grants the dependent permissions.
The GroupAdmin role is recommended for all implementations except the most basic.
• Developers: responsible for the code deployed on the assets. As such, they need to see the impact
of their code on the monitored assets. In a production environment, the developers have access to
Events, Query Analysis, graph data, and so on.
217
Open Permission Sets
• Manager: responsible for all monitored assets, advisor configuration, group configuration, query
analysis, event handling and communications. (Default role. Complete access.)
• DBA: responsible for monitoring MySQL instances, investigating issues and repairing those issues.
Manager Role
This section describes the Manager role definition for the Open implementation. Users in this role are
power users. They are responsible for configuring everything. This role is permitted to perform the
following actions:
The Manager users are responsible for configuring Advisor thresholds and defining the Event Handlers
and Notification Groups. The Notification Groups contain the members of the standard DBA role, and
the Senior DBA members.
This user has the permission to close Events, due to MySQL Instances being set to Administer.
DBA Role
This section describes the DBA role definition for the Open implementation. Users in this role are
monitoring users. They are responsible for investigating events and resolving issues with the monitored
MySQL instances. This role is permitted to perform the following actions:
218
Role Membership
Permission Level
MySQL Instances Administer
Query Analysis Aggregate Data Read-Only
Query Analysis Example and Explain Data Read-Only
Web Application Login Read-Only
MySQL Enterprise Monitor Read-Only
Advisor Configuration Administer
Event Blackout Administer
Event Handling Administer
New Group Creation Administer
Settings None
Users and Roles None
Note
It is possible, in this Open implementation, to add all DBA users to the default
DBA role. However, for any size installation, it is recommended to have a
well-defined hierarchy of users. Particularly for SMTP or SNMP notifications
which can, if unmanaged, produce a very high volume of notification traffic. It is
recommended to have a single group of senior users manage Advisor, Event
Handler, and Notification Group configuration. All requests should go through
those senior users.
Role Membership
Users are assigned to roles in the following way:
• Manager Role
• Teamlead/Coordinator user
• DBA Role
• DBAs
This scenario focuses on two groups, Development and Production. Development is the group of
MySQL instances where the product is developed and tested. Production is the group of MySQL
instances to which the finished product is deployed for customers to use.
219
Users, Roles and Groups
• Development: all assets used by the development and quality teams are grouped in the
Development group.
• Production: all assets deployed for use by the customer are grouped in the Production group.
Note
• GroupAdmin: System-wide role. Members are responsible for user, role, and group management
only. This role is limited in the sense that it does not have the Server Group or MEM Web
Application permission set to a usable value. To access the UI or create groups, the users assigned
to this role must also be assigned to roles with usable Server Group permissions (Read-Only or
Administer).
• SeniorDBA: System-wide role. Members have access to all monitored assets on both Production and
Development groups. No group-specific permission sets.
• JuniorDBA: members have read-only access to the monitored assets in the Development group,
only.
If a member of this role requires an event handler or advisor threshold edit on the Production group,
it must be requested from a member of the SeniorDBA role.
220
System-Wide Role Definitions
• JuniorDev-Development: members have access to the Development group, only. For the most part,
their permissions are read-only. They are entitled to view events, Query Analyzer data, and so on.
• DBA Teamlead: manages the DBA team and has complete access to all monitored assets. This user
is a member of the SeniorDBA and GroupAdmin roles. This combination of permissions gives them
complete access to all monitored assets.
• Senior DBAs: responsible for the monitored assets. Has complete access to all monitored assets. No
user management rights.
• Junior DBAs: responsible for investigating issues. Read-only rights on all Development assets. No
access to Production assets.
• Senior Developers: responsible for deploying code to the Development group and reviewing impact
on performance and functionality. No user management rights, event blackout rights, and so on.
Permitted to view events on the Production group, but not to add event handlers, notification groups,
and so on.
• Junior Developers: responsible for deploying code and viewing events on the Development group.
No access to the Production group.
For each of these roles, select System-Wide Permissions in the Core Monitored Assets frame.
• GroupAdmin: DBA manager and at least one Senior DBA, for redundancy.
221
Production Group Roles
Note
Distributed Departments
The Strict implementation is also useful for large companies with globally distributed teams, accessing
central server farms.
222
Distributed Departments
• Company server farm with DBAs and individuals responsible for liaising with departments.
• Departments with their own DBAs, Developers, and so on. This implementation includes the
following departments, each with an identical permissions set: BlueTeam, RedTeam, GreenTeam,
YellowTeam, and OrangeTeam.
• Groups must be configured for each department. In this scenario, BlueGroup, RedGroup,
GreenGroup, YellowGroup, and OrangeGroup. Where each group contains the assets dedicated to
each department.
223
224
Part IV Using MySQL Enterprise Monitor
Table of Contents
25 Overview ............................................................................................................................. 229
25.1 Overview Sparkline Graphs ....................................................................................... 230
25.2 Database Availability ................................................................................................. 232
25.3 General Database Statistics ....................................................................................... 233
26 Events ................................................................................................................................. 235
26.1 Events ...................................................................................................................... 235
27 Enterprise Backup Dashboard .............................................................................................. 239
27.1 Backup Overview ...................................................................................................... 239
27.2 Backup Details .......................................................................................................... 241
28 Replication Dashboard ......................................................................................................... 245
28.1 Replication Overview ................................................................................................. 245
28.2 Replication Dashboard Tabs ...................................................................................... 246
28.3 Replication Logging ................................................................................................... 250
29 Topology .............................................................................................................................. 251
30 Reports and Graphs ............................................................................................................. 255
30.1 All Timeseries Graphs ............................................................................................... 255
30.1.1 Graph Controls ............................................................................................... 255
30.1.2 Graph Types .................................................................................................. 256
30.1.3 Timeseries Data Aggregation .......................................................................... 257
30.2 Database File I/O and Lock Waits .............................................................................. 257
30.2.1 sys Schema ................................................................................................... 257
30.2.2 Database File I/O Graphs and Reports ............................................................ 258
30.2.3 Lock Waits Report .......................................................................................... 260
30.3 Processes Report ...................................................................................................... 261
30.4 Table Statistics .......................................................................................................... 261
30.5 User Statistics ........................................................................................................... 262
30.6 Memory Usage Report .............................................................................................. 264
30.7 InnoDB Buffer Pool Usage ......................................................................................... 265
30.8 NDB Cluster Memory Usage ...................................................................................... 266
31 Customizing MySQL Enterprise Monitor ................................................................................ 269
31.1 Creating Advisors and Rules ...................................................................................... 269
31.1.1 Creating Advisors ........................................................................................... 269
31.1.2 Overview of Graph Creation ............................................................................ 269
31.1.3 Overview of Advisor Creation .......................................................................... 270
31.1.4 Variables ........................................................................................................ 272
31.1.5 Thresholds ..................................................................................................... 272
31.1.6 Using Strings .................................................................................................. 273
31.1.7 Wiki Format .................................................................................................... 273
31.1.8 Creating a New Advisor: An Example .............................................................. 274
31.1.9 Creating a New Graph: An Example ................................................................ 274
31.2 Custom Data Collection ............................................................................................. 275
31.2.1 Custom.xml .................................................................................................... 276
31.2.2 Queries .......................................................................................................... 276
31.2.3 Data Collection Attributes ................................................................................ 278
31.3 Event Notification Blackout Periods ............................................................................ 279
31.3.1 Scripting Blackouts ......................................................................................... 281
227
228
Chapter 25 Overview
The Overview shows a high level summary of the MySQL clusters, groups, instances, and hosts
monitored by MySQL Enterprise Monitor.
The Overview summarizes various key statistics related to the context selection, Database
Availability, Problem Hosts, Problem MySQL Instances, and any current MySQL Instances or
Hosts that have active Critical or Emergency level events against them. It is designed in this way to
give you a quick high level picture of assets that require immediate attention, as well as give you an up
to date profile of how MySQL Instances within environment are behaving.
The contents of the Overview depend on the selection made in the target selection menus at the top of
the page. The following selections are possible:
• Global Overview: default context selection of Global Summaries and All Targets. the overview
displays a summary of all monitored assets.
• Group Overview: (present only if you have created groups or are monitoring replication topologies)
displays the overview of the group or topology selected from the Global Summaries menu. The
information displayed relates to the contents of the selected group or replication topology, only.
• MySQL InnoDB Cluster: (present only if you are monitoring InnoDB Cluster or Group Replication
topologies) displays the overview of the InnoDB Cluster or Group Replication topology selected from
the Global Summaries menu. The information displayed relates to the contents of the selected
group or replication topology, only.
229
Overview Sparkline Graphs
Note
• MySQL NDB Cluster Overview: (present only if you are monitoring MySQL NDB Clusters)
displays the overview of the MySQL NDB Cluster selected from the Global Summaries menu. The
information displayed relates to the contents of the NDB Cluster, only.
• MySQL Instance Overview: displays the overview of the MySQL instance selected from the All
Targets menu. The information displayed relates to the selected MySQL instance, only. Information
on the instance's hostname, port, version, and directory paths is also displayed.
• OS Host Overview: displays the overview of the host selected from the All Targets menu. The
information displayed relates to the selected MySQL instance, only. Information on the filesystems
and network interfaces is also displayed.
• NDB API Node Overview: (present only if you are monitoring MySQL NDB Clusters) displays the
overview of the NDB API node selected from the All Targets menu. The information displayed
relates to the selected node, only.
• NDB Data Node Overview: (present only if you are monitoring MySQL NDB Clusters) displays the
overview of the NDB Data node selected from the All Targets menu. The information displayed
relates to the selected node, only.
• NDB Management Node Overview: (present only if you are monitoring MySQL NDB Clusters)
displays the overview of the NDB API node selected from the All Targets menu. The information
displayed relates to the selected node, only.
• Agent Overview: displays the overview of MySQL Enterprise Monitor Agent selected from the All
Targets menu. The information displayed relates to the selected agent, only. Information on the
agent's host is also displayed.
230
Customize the Default Graphs
The MySQL InnoDB Cluster Overview displays the following graphs by default:
If you select an individual asset, such as a MySQL Instance, the following, default graphs are
displayed:
Note
The red points are the highest value, while the values in blue, at the right side of
the graph, are the most recent values.
1. Select the Settings button, the gear on the right side of the Overview page. The Instruments list is
displayed:
231
Database Availability
2. Click inside the Instruments field and select the required graph from the drop-down list.
3. To remove a graph, click the X in the top-right corner of the graph name.
4. To close the Instruments list, click the gear icon again. Your selection is saved for all future
sessions.
5. To reset the sparklines to the default, open the Instruments list and click the Reset to Default
button.
6. To set a time interval for the graph data, select one of the interval values. The interval is saved for
the selected targets.
Note
The MySQL Availability Advisor must be enabled for this functionality to work.
It is enabled by default.
Database Availability is computed by each MySQL Enterprise Monitor Agent attempting a connection to
the monitored MySQL instances (by default every 1 second, but this is configurable within the Advisor),
to check whether the MySQL Instance is actively accepting new connections.
To see a summary of the instance availability per period, hover the cursor over any of the availability
bars to display the Availability pop-up. The availability is broken down in to four categories:
• Available: The percentage of time the monitored instances were actively monitored.
232
General Database Statistics
• Up: The instance Uptime reports the percentage of time the instance was running but was not
monitored.
• Unreachable: The percentage of time a monitored MySQL Instance did not respond.
• Down: The Agent could not get a response from the MySQL Instance at all.
For each time range, the bar chart is split up in to slices of time (1 or 2 pixels each, depending on the
width of the display), which represent a period of time; Day = 4 minutes, Week = 20 minutes and Month
= 2 hours. Within those slices, the time within each availability state is aggregated across all MySQL
Instances within the selected Group, and shown as the percentage of the total time in the slice.
For example, if you have four MySQL Instances within the selected group, with three of them being
up and one of them being down for a 4 minute period within the day, the slice representing those 4
minutes would be 75% dark green, and 25% red.
Note
This graph is not displayed for any selection from the All Targets menu, except
the MySQL instances.
The results are sorted by the total time that each event has had those statuses, by Emergency
descending, and then Critical descending. This means that the MySQL Instances, or Hosts, that have
had Emergency, then Critical events open for the longest are displayed at the top of the list.
Note
These panels do not apply to every selection. For example, if a single MySQL
Instance is selected from the All Targets menu, only the Database Availability
graph is displayed, along with a simple listing of the instance's details.
This enables you to see all current high priority events within a single panel for all monitored assets.
233
234
Chapter 26 Events
This chapter describes Events.
Events are displayed if an Advisor Threshold is crossed, and are used to inform you of errors or
potential problems with your implementation.
26.1 Events
Advisors generate events if one, or more, of the defined thresholds are crossed by the monitored value.
Events are displayed on the Events view. Emergency and Critical events also appear on the Overview
dashboard. The notification group or groups associated with a specific advisor receive a notification
when an alert is triggered. For more information about creating notification groups, see Chapter 22,
Event Handlers.
To view open events, select Events from the navigation bar. The target selection menus enable you to
choose which group's or asset's events are displayed.
Important
The events displayed are dependent on the permission of the role to which you
are assigned. If you are a member of a group-specific role, the events displayed
are generated by the members of that group, only. Your ability to close events is
also governed by the permissions of your role.
The following image shows the Events page with filter enabled:
Note
You can change the column selection using the Show/Hide Columns button,
adjacent to the filter drop-down list.
235
Event Filter
Event Filter
The Event filter enables you to filter your events based on criteria.
• From/To: displays From and To fields enabling you to define a date and
time range to filter on.
State: Enables you to choose the events states to filter on. The available choices
are Any, Open, or Closed.
Current Status Enables you to filter on specific current status.
Worst Status Enables you to filter on specific worst status.
Advisors Enables you to filter events based on the Advisors which generated them.
Filter Click to filter the events list on the defined criteria.
Discard changes Removes any changes made.
Reset to Default Reverts any changes, and restores the saved criteria.
Events List
The Events list displays all events for the selected group or asset.
• Critical: The event is critical and requires immediate attention. Critical events indicate that a serious
problem has occurred or is about to occur.
• Warning: The event is something to investigate and schedule for correction, but does not
immediately affect the operation of your server, such as free space on a disk, or a table cache is
inadequately sized.
236
Closing Events
• Notice: The event is for informational purposes. Notice events call attention to issues that do not
affect the operation of your server, such as minor configuration issue.
• Success: The rule executed successfully with no issues. It also indicates an event, previously in a
Critical or Failure state, has returned to normal.
Green check indicates that the Advisor ran successfully and no alert was generated.
Closing Events
Advisor's generate events when the threshold defined on the Advisor is breached. Investigate the issue
that triggered the event; rectify the issue or problem (or choose to ignore it); then close the event when
you are satisfied it does not have a significant impact on your servers.
Some of the advisors identify transient or temporary issues, such as a replication slave being
unavailable. For these advisors, you can schedule events to automatically be closed when the event
moves from notification status back to the OK state.
When auto-close is enabled, the event remains open while the condition that triggered the event is
still in effect. When the condition is no longer in effect, the event is automatically closed. You can also
manually close such events before resolving the issue. Events can also be closed by event handlers.
For more information on handling events, see Chapter 22, Event Handlers.
Important
Not all Advisors generate events which can be auto-closed. See Chapter 20,
Expression-Based Advisor Reference and Chapter 21, GUI-Based Advisor
Reference for more information on the Advisors which support auto-close.
Events which support auto-close are closed by the Default Auto-close Policy
after the event which triggered them is no longer in effect. For more information
on Default Auto-close Policy, see Default Auto-close Policy. It is possible to
override the Default Auto-close Policy by setting Auto-Close Events to No in
an Event Handler
To close an individual event, click the [X] icon in the Actions column. Document the resolution using
the Notes text area and choose the Close Events button. During the closing operation, you can also
reconfigure the rule scheduling that triggered this event by selecting the checkbox After closing, take
me to the page for adjusting schedules of Advisor(s) that reported these events. This option
opens the Advisors page and selects the relevant Advisors.
For more information on configuring advisor scheduling and auto closing, see Table 19.3, “Advisor Edit
Menu Controls”.
237
Automatic Closing of Events
To close a number of alerts simultaneously, select the checkbox beside each event to close and click
the Close Selected Events button.
When closing individual or multiple events, a notification window indicates what operations have been
completed. The events remain in the displayed event list, but the close link is replaced by a link to the
resolution notes. You can update the active list by clicking filter to re-filter the event display.
A historical list of all events, including closed events, is available by setting the Current Severity
to Closed. The list shows all of the closed events for a given time range and the servers selected
in the server tree. Historical data is limited by the data purge settings. For more information, see
Section 15.4, “Data Purge Behavior”
Auto-closed events send a notification only if notifications were sent for any previous state transitions. If
no other notifications were sent, no notification is sent for the auto-close.
238
Chapter 27 Enterprise Backup Dashboard
This chapter describes the Enterprise Backup dashboard.
MySQL Enterprise Monitor reads the backup_history and backup_progress tables created by
MySQL Enterprise Backup and presents that information on the Enterprise Backup dashboard. The
dashboard supports Full, Incremental, TTS, and Partial backups.
• Overview Filter
• Backup Overview
• Backup History
• Backup Events: displays a summary of all the backup event types and lists all events for the
selected groups or instance. The Backup Events label is a link. Clicking the link displays the Events
page, filtered for backup events, only. To sort the events, ascending or descending, right-click in the
required column and select the required sort. Each column supports sorting.
• End LSN: the InnoDB redo log sequence number at which the backup ended.
• Binlog Position: the point in the binlog at which the consistent snapshot was taken by the backup
process.
• Exit State: the final state of the backup process. Values can be either SUCCESS or FAILURE.
Backup Overview
The Backup Overview page has two modes, Group and Instance.
Note
Group Backup Overview is displayed for a group selection, while Instance Backup Overview is
displayed for an instance selection. The titles of each frame are links to the details page of the relevant
instance. For example, clicking the Last Successful Full Backup title link, opens the details page for
the last successful full backup. The details page opens in a tab.
• Last Backup: displays the details of the last backup performed on a member of the group.
239
Backup History
• Last Failed Backup: displays the details of the last backup which failed for a member of the
group.
• Last Successful Full Backup: displays the details of the last successful full backup on a member
of the group.
• Last Successful Incremental Backup: displays the details of the last successful incremental
backup on a member of the group.
• Instance: (displayed on the Group Backup Overview only) the name of the instance, which links
to the Instance Backup Overview page for that instance.
• Group Backup Coverage: displays which monitored instances have configured backups and
which do not. Filtered replicas are not counted. This section also lists all instances without a
configured backup. To view the list, expand the Instances without a configured backup link.
• Last Backup: displays the details of the last backup performed on the selected instance.
• Last Failed Backup: displays the details of the last failed backup on the selected instance.
• Last Successful Full Backup: displays the details of the last successful full backup on the
selected instance.
• Last Successful Incremental Backup: displays the details of the last successful incremental
backup on the selected instance.
• Full Backup Run Time History: graphs the history of the duration and lock time of all full backups
run on the selected instance.
• Incremental Backup Run Time History: graphs the history of the duration and lock time of all
incremental backups run on the selected instance.
Backup History
The History tab of the group view lists all backups, successful or failed, for all the instances in the
group, while the instance view lists all backups performed on the selected instance. It is possible to sort
the history using the column titles.
The History is divided into Backups and Events sections on the group-level, and the instance-level
includes a Graphs section. The Events section is identical to the Events section on the Current
Status tab.
Note
Overview Filter
The overview filter enables you to refine the contents of the History page.
• End Time: filters the backups based on the end time of the backup, as stored in
backup_history.end_time. Select Interval to use a predefined range, or select From-To to
define a custom range.
• Type: the type of backup to filter on. Possible values are Full, Incremental, TTS, or Partial.
240
Backup Details
• Exit State: the backup result to filter on. Possible values are Successful or Failed.
• Backup Status
• Backup Configuration
• InnoDB Configuration
• Backup Command
• Progress Log
Backup Status
241
Backup Configuration
• Start LSN: InnoDB log sequence number at which the backup started.
• End LSN: InnoDB log sequence number at which the backup ended.
• Binlog File: binlog file name. If no binlog is present, it is disabled, or the backup used the --skip-
binlog option, BINLOG-DISABLED is displayed here.
• Binlog Position: the point in the binlog at which the consistent snapshot was taken by the backup
process.
• Exit State: the final state of the backup process. Values can be either SUCCESS or FAILURE.
Backup Configuration
• Compression Level: the level of compression used. This value ranges from 0, no compression, to 9,
maximum compression.
• Engines: the storage engine file types the process is configured to backup.
InnoDB Configuration
• Data File Path: the InnoDB system tablespace files' path and size in backup.
• Log Files in Group: the number of InnoDB redo log files in the backup.
• Data Home Directory: the backup base directory for all InnoDB data files.
• Log File Size: the total size, in bytes, of the InnoDB redo log files.
• Log group Home Directory: backup directory for the InnoDB redo log files.
Backup Command
Displays the full path and parameters of the backup command which created the backup.
For example:
meb-3-linux-64bit/bin/mysqlbackup --with-timestamp
--backup-dir=/tmp/meb-server1.30006
--backup-image=/tmp/meb-server1.30006/my.mbi
--user=MyUserName --password=xxxxxxx
--host=127.0.0.1 --port=30006
backup-to-image --force
Progress Log
Displays the time-stamped progress of the backup. This is particularly useful for failed backups. The
Error Code and Error Message fields provide details of the failure.
242
Progress Log
243
244
Chapter 28 Replication Dashboard
The Replication Dashboard displays all information related to monitored replication groups. MySQL
Enterprise Monitor supports monitoring of single-source tree hierarchy, circular replication, group
replication, or complex, multi-level, multi-source hierarchies.
For more information on the various types of replication supported by MySQL Server, and monitored by
MySQL Enterprise Monitor, see Replication and Group Replication.
Navigate to the Replication page by choosing Replication under Dashboards. This page summarizes
the state of your replication servers; you can drill down to see details about any source or replica.
Using this page helps you avoid running the SHOW SLAVE STATUS command over and over on
multiple servers; for consistency, the Replication page uses some of the same keywords as the output
from that command.
Note
Set up agents to monitor each source and replica server. Only monitored
servers are displayed on this page.
The Replication dashboard displays all replication groups, sources, and replicas. Sources and replicas
are autodiscovered and displayed based on the replication topology detected. Scans run on a five
minute interval, so it can take as long as 2 polling intervals to create a complete topology.
Warning
Auto-discovery with remote monitoring is possible with MySQL 5.6 and later,
only. Earlier versions of MySQL server require the Agent to be installed on
the same host as the monitored MySQL instance. This is because mysqld
did not expose the master's uuid value to SHOW SLAVE STATUS in versions
preceding MySQL 5.6.
You can manage replication topologies from the Groups page in the same way as other groups. For
more information, see Chapter 18, Managing Groups of Instances. However, any replicas removed
from a server group are automatically restored to that group.
Important
For information on the kinds of problems you might find while monitoring
replication, and how to solve them, see Troubleshooting Replication and
Improving Replication Performance.
The overview is displayed if you select Replication on the Dashboards menu for the first time in a
session. To open the overview while viewing a replication topology, select the Show Replication
Overview button adjacent to the Replication Topology selection menu.
245
Replication Dashboard Tabs
• Unreachable: the number of instances which were monitored but are not currently responding.
• Stopped Replicas: the total number of replicas which are no longer running.
• Replication Delay - Max Per Instance: graphs the replication delay for all monitored nodes.
• Unreachable Instances: lists the instances which were monitored but are not currently responding.
• Instances With Replication Errors: lists the names of all the instances reporting replication errors,
and the groups to which they belong. To open the group, click on the group name.
• Instances With Replication Stopped: lists the names of all the instances no longer replicating, and
the groups to which they belong. To open the group, click on the group name.
Important
The Max Replication Delay field displays the total amount of replication delay
which exists on the monitored topologies.
To display a replication group, choose a group from the Replication Topology drop-down list.
Important
Clicking the refresh icon, adjacent to the Replication Topology drop-down list,
forces a re-discovery of all replication groups.
246
Status
Status
The Status tab displays information on the status of the members of the replication topologies. Each
instance expands to display detailed information in a drill-down.
Note
Data displayed in red indicates a problem with your configuration, while green
indicates preferred settings.
If the monitored topology is a group topology, a status message is displayed above the Status table.
The status message summarizes the current state of the group, whether all members are online,
fault tolerance, and whether the group has quorum. The status message is prefixed with the Group
Replication ID, which takes the form GR-nnnnnnnn-nnnn, where nnnnnnnn-nnnn is the UUID prefix of
the group.
247
Status
Name Description
View ID (Group Replication only) Unique identifier of the view.
Group Auto Increment (Group Replication only) The auto increment defined for the group's
members.
Channels (Asynchronous topologies only) Displays the number of channels used
by this instance.
Version (All topologies) Displays the version of the MySQL instance.
The instance drill downs contain different information depending on if the instance is a source or a
replica, and also depends on the type of replication in use. Each replica also contains a tab listing all
the instances from which it is receiving updates.
• Node Status: graphs the source load in running connections, queries per second, and the average
response time. The server IDs are also provided.
• Group Replication Status: (Group Replication only) graphs the transaction status in transactions
queued, validating, checked, and in conflict.
• Local Binary Log Status: displays the details of the local binary log, such as name, position, and
GTID set.
• Binary Log Statistics: graphs the average read/writes per second, log file latency and total space
usage.
Note
This frame requires sys schema to display all graphs. If sys schema is not
installed on the node, only the Total Space Usage graph is displayed.
• Most Appropriate Candidates for Source Promotion (best candidate on top): lists the replicas
which are eligible for promotion to source.
For a replica to be eligible for promotion to source, it must have the same GTID mode as the
source. If GTID mode and binary logging are disabled, the replica cannot be promoted. Such
replicas are listed in red with a message explaining why they are not eligible for promotion.
• Semi-Synchronous Replication: this frame is present for both asynchronous and semi-
synchronous types, but is only populated if semi-synchronous replication is in use. If semi-
synchronous replication is running, this section contains graphs showing the Sessions Waiting,
Waits, and transaction status.
• General
• Networking
• Relay Logging
248
Statistics
• Crash Safety
• Appliers
• Multi-Threaded Appliers
• Node Status: graphs the replica load in running connections, queries per second, and the average
response time. The server IDs are also provided.
• Source Replication Status: displays a tab for every source replicating to the selected replica.
Each tab displays the following:
• Fetch Status: displays graphs and information on the status of the data retrieval from the
source.
• Filter / Delay Status: displays the defined and remaining delays and any filtered databases or
specific tables.
• Apply Status: displays the current apply status, the last executed GTID set, and so on. The
status by worker is also displayed.
Note
The Info column of the Status by Worker section requires the user have
the Query Analysis Example and Explain Data permission set to at
least Read-Only. If this permission is not granted, the Info column cannot
be populated.
• Source Configuration: displays the instance name, port, and username of the source.
• Secure Connection Configuration: displays all SSL-related information for the monitored
instance.
• Replication Configuration: displays all information related to the configuration of the replication
process.
It is also possible to edit and delete connections from this tab. Clicking the drop-down list next to
the instance opens the instance context menu. For more information on this menu, see Group and
Instance Context Menu.
Statistics
The Statistics tab graphs the activity of all members of the topology. You can change the data
displayed using the Graph Time Range selections. If a range is selected for which there is no data, no
graph is displayed.
• Database Activity - All MySQL Instances: displays the total number of SELECT, INSERT, UPDATE,
REPLACE, DELETE, and CALL statements performed on all members of the selected group.
• Connections Running - Per MySQL Instance: displays the running connections for each member
of the group.
249
Error History
• Database Queries - Per MySQL Instance: displays the number of queries performed against each
member of the group.
If the selected topology is a member of a group replication topology,the following graphs are also
displayed:
Error History
The Error History tab displays all errors logged for the members of the selected group. The time of the
error, type of error and error message are displayed.
To enable replication logging, add the following Logger element to the log4j2.xml file:
<Logger name="com.mysql.replication" level="debug"/>
For additional information about log4j, read the log4j documentation at http://logging.apache.org/log4j/.
250
Chapter 29 Topology
This chapter describes the Topology view. Topology is only available on the navigation bar if a
replication topology, InnoDB Cluster, or NDB Cluster is selected.
The Topology tab graphically displays the replication topology of the selected group.
• Topology graph: graphically displays the replication setup, enabling you to reposition the nodes for
better visibility, and zoom in and out using your mouse wheel.
• Tooltips: For information on an individual node or channel, hover the mouse cursor over the node
or channel. A tooltip is displayed containing information about the node or channel. The node tooltip
displays the ID, Name, and Status of the node, while the channel tooltip displays the name of the
channel.
• Nodes:
• Node OK
• Replication Issues
• Node/Replication Down
• Node Unmonitored
• Links:
• Async Fetch OK
• Semi-Sync Fetch OK
251
• Link Status Unknown
• Online
• Offline/Error
Note
The topology graph displays semi-synchronous links only if both source and
replica use the semi-sync plugins.
Group replication topologies are displayed differently. For example, the following is a three-node group:
252
Figure 29.3 Group Replication Multiple Group Topology
NDB Cluster topologies contain all the cluster components, Management node, API node, and data
node, and uses color to display their states. Each layer is identified by host or process information.
Further information can be seen by hovering the cursor over any of the elements.
253
Figure 29.6 NDB Cluster Topology - API Node
254
Chapter 30 Reports and Graphs
This chapter describes the Reports and Graphs available in MySQL Enterprise Monitor.
View Filter
The contents of the Timeseries Graphs page depend on the selections made in the View filter. The
View filter is a pair of drop-down menus on the top-left side of the page. They enable you to drill down
into the assets to which you have access.
For example, if you select a group in the Global Summaries drop-down list, and a MySQL instance
in the All Targets drop-down list, the graphs displayed are the instance-specific graphs, only. If you
select a host in the All Targets drop-down list, only host-specific graphs are displayed.
Important
The View filter displays only those assets to which you have access.
Graph Filter
The graph filter enables you to display a subset of the available graphs.
Name Description
Graph Name Opens a drop-down menu listing the available search types:
• Contains
• Doesn't Contain
• Regex
• Negative Regex
Value Free text field for the search term or regular expression.
Time Range Drop-down lists containing the time periods to apply to the graphs. The possible
values are:
• Interval: select the duration for the overview data. If you select 1 hour, the data
collected in the last hour is displayed.
• From/To: select a date and time range for the overview data.
Filter Apply the defined filter.
Save as Default Sets the selected group and time range as the default.
It is not possible to save a date range, using From/To, as the default for a group.
Reset to Default Resets the graph display to the previously saved values.
255
Graph Types
Graph Manipulation
This section describes the various actions you can perform on individual graphs.
• Graph Height: slider which enables you to increase or decrease the height of the graph in pixels.
This slider does not affect the values of the x or y axes, just resizes the graph.
• Export as CSV: downloads a CSV containing all data currently displayed in the selected graph.
• Export as PNG: generates a PNG image file of the selected graph. The image is displayed in a pop-
up. To save the image, right-click and select Save image as....
• Move: enables you to move the selected graph to another location on the page.
• Stacked/Line: enables you to change how the graph is displayed. Line displays a line graph, while
Stacked displays each data source as a solid color.
• Legend: lists the sources of information displayed in the graph. The color of the name matches the
line/stack used in the graph. To display individual sources, click the required source in the Legend.
To highlight individual sources in the graph, hover the cursor over the source's name.
Graph Query Analysis enables you to examine the queries which were running during specific intervals.
To open the Query Analyzer for a specific range on a graph, do the following:
1. On a graph, select a range by clicking at the required start point, and dragging the cursor across
the graph until you reach the required interval endpoint and release the mouse button. This selects
the range.
2. Several icons are displayed in the top-right corner of the selection. An x to close the selection,
a database icon, and a magnifying glass. Click the database icon to open the Query Analyzer's
Browse Queries page. Click the magnifying glass to zoom in on the selected range.
Browse Queries displays all the queries which were running during the defined time period. This
enables you to drill down into potential query bottlenecks and performance hotspots and tune your
queries accordingly.
For more information on the Query Analyzer, see Section 32.3, “Query Analyzer User Interface”.
• Individual: A single Asset has multiple data sets graphed on a chart. For example, counts of
SELECT, INSERT, UPDATE, and DELETE statements on a single instance.
• Combined: Multiple assets have a single data set, each graphed on one chart. For example, the
count of selects for each of the five MySQL instances of a group.
• Breakout: One (smaller) graph per Asset in a collection, showing one or more data sets on each
individual graph. For example, one graph per CPU on a Host, or in a cluster.
• Aggregate: One graph per collection of Assets, where the data sets across all Assets are
combined via an aggregation operator. For example, one graph with each of the SUM(SELECT),
SUM(INSERT), SUM(UPDATE), and SUM(DELETE) across the collection. Such as the group-level
Database Activity - All MySQL Instances graph.
256
Timeseries Data Aggregation
When you upgrade to MySQL Enterprise Monitor 3.4, all existing timeseries data is aggregated when
the upgraded MySQL Enterprise Service Manager first starts. A progress bar is displayed on the user
interface, adjacent to the system status bar, indicating the completeness of the aggregation process.
Note
While the timeseries data is being aggregated for the first time, no performance
enhancements are evident in the graph response times. Performance
improvement is evident only after the process completes and the timeseries
data is retrieved from the new, aggregated data.
For new installations of MySQL Enterprise Monitor 3.4, data aggregation begins when MySQL
Enterprise Service Manager first starts.
Timeseries data aggregation is an ongoing process. As the data is collected from the monitored
instances and hosts, it is aggregated in real time, hourly, and daily.
Important
The Database File I/O requires the MySQL sys schema, which is supported on
MySQL 5.6 and 5.7, only.
Note
This graph is displayed only if a MySQL instance is selected in the All Targets
drop-down menu.
The sys schema is installed by default in MySQL 5.7, but must be installed manually in earlier versions
of MySQL.
On the Database File I/O and Lock Waits pages, if a compatible MySQL instance is selected, but sys
schema is not installed, MySQL Enterprise Monitor prompts you to install it. To install sys schema,
click Install MySQL sys schema. If the selected instance is incompatible, a message is displayed
informing you that it is not possible to run these reports against the selected schema.
Important
If your instance already contains a schema named sys, you must rename it
before installing MySQL sys schema.
257
Database File I/O Graphs and Reports
For information on how to install sys schema from the command line, see the installation instructions
within the github repository: sys schema on GitHub.
Important
Note
This report requires sys schema be installed on the selected MySQL instance. If
sys is not installed, and the selected instance is compatible, you are prompted
to install it.
• Show/Hide Columns: enables you to change the column set displayed on the page by selecting or
deselecting the columns.
• Page Navigation: buttons enabling you to navigate the pages of the report.
I/O By File
Shows the top global I/O consumers by latency, and by file. The data is retrieved from sys.x
$io_global_by_file_by_latency, and sorted by total latency by default.
For more information on the data retrieved in this report, see The io_global_by_file_by_latency and x
$io_global_by_file_by_latency Views.
258
Database File I/O Graphs and Reports
This report is a combination of report and graphs. The graphs can be redrawn based on a time range.
To change the time range, select one of the range buttons. Values range from 1 hour to 1 week.
For more information on the data retrieved in this report, see The io_global_by_wait_by_latency and x
$io_global_by_wait_by_latency Views.
The following shows a subset of the graphs available on the I/O By Wait Type tab:
259
Lock Waits Report
I/O By Thread
Shows the top I/O consumers by thread, ordered by total latency. The data is retrieved from sys.x
$io_by_thread_by_latency, and sorted by latency, by default.
For more information on the data retrieved in this report, see The io_by_thread_by_latency and x
$io_by_thread_by_latency Views.
For more information on the data retrieved in this report, see The innodb_lock_waits and x
$innodb_lock_waits Views.
Table Metadata Lock Waits is supported on MySQL 5.7 only. This report relies
on instrumentation introduced in MySQL 5.7.
[mysqld]
performance-schema-instrument='wait/lock/metadata/sql/mdl=ON'
This report retrieves data on MySQL 5.7 table metadata locks from sys.x
$schema_table_lock_waits.
260
Processes Report
For more information on the data retrieved in this report, see The schema_table_lock_waits and x
$schema_table_lock_waits Views.
Note
This report requires sys schema be installed on the selected MySQL instance. If
sys is not installed, and the selected instance is compatible, you are prompted
to install it.
Note
This graph is displayed only if a MySQL instance is selected in the All Targets
drop-down menu.
For more information on the data retrieved by this report, see The processlist and x$processlist Views.
Note
This graph is displayed only if a MySQL instance is selected in the All Targets
drop-down menu.
Table View
The table view lists the statistics in a standard table format. The data can be sorted by column.
261
Treemap View
Treemap View
The treemap displays the data in colored boxes. The larger the box, the larger the value.
262
Table View
Note
This graph is displayed only if a MySQL instance is selected in the All Targets
drop-down menu.
Table View
The table view lists the statistics in a standard table format. The data can be sorted by column.
• Existing users who have never logged on to the instance are not listed in the results.
• The background user is the owner of the background threads running on the instance. Such as the
storage engine threads, main server thread, and event scheduler.
Treemap View
The treemap displays the data in colored boxes. The larger the box, the larger the value.
263
Memory Usage Report
Important
performance-schema-instrument='memory/%=ON'
Note
This report requires sys schema be installed on the selected MySQL instance. If
sys is not installed, and the selected instance is compatible, you are prompted
to install it.
Note
This graph is displayed only if a MySQL instance is selected in the All Targets
drop-down menu.
Table View
The table view lists the memory usage in a standard table format. The data can be sorted by column.
264
Treemap View
Treemap View
The treemap displays the data in colored boxes. The larger the box, the larger the value.
For more information on the InnoDB Buffer Pool, see InnoDB Buffer Pool Configuration and Buffer Pool
265
Running the InnoDB Buffer Pool Usage Report
Important
This page displays a warning about the table and resource requirements of the report generation
process and prompts you to select a MySQL Server to run the report against.
Important
The report can take some time to return results. If no data is returned within
2 minutes, the report times out and an error is displayed.
Note
If you click Reload while the report is generating, the report generation
process is canceled and restarted. If you navigate away from the progress
page, the report generation process is canceled.
Note
Table View
The table view lists the statistics in a standard table format. The data can be sorted by column.
266
Treemap View
Treemap View
The treemap displays the data in colored boxes. The larger the box, the larger the value.
267
268
Chapter 31 Customizing MySQL Enterprise Monitor
You can customize your MySQL Enterprise Monitor rules, advisors, and graphs, based on your
organization's business rules, best practices, and the types of issues you can anticipate.
Note
Advisors have limited edit functionality, only threshold parameters and schedule
type can be edited for an existing advisor.
• Administration
• Agent
• Availability
• Backup
• Cluster
• Graphing
• Memory Usage
• Operating System
• Performance
• Query Analysis
• Replication
• Schema
• Security
Note
You can also create your own Advisor category while creating an Advisor by
changing the Advisor Category to a custom value.
For an example of how to create a graph, see Section 31.1.9, “Creating a New Graph: An Example”.
269
Overview of Advisor Creation
• version
The version number of the graph. Generally only important with the bundled graphs, and is only used
internally.
• uuid
The unique id of the graph. Each revision (version) requires a new uuid, which is only used internally.
• name
The visible graph name, which is displayed within the graph listing. Note: graphs are sorted
alphabetically.
• frequency
Optionally define the frequency for the graph, which defaults to 1 minute. May use seconds, minutes,
hours, and days.
• rangeLabel
The Y-axis range label. For example, a graph about disk space usage may use MB.
• series
Each series contains a label and an expression. The label is the visible name of the series, and the
simple expression defines it.
• variables
Each variables definition contains a name, instance, and dcItem element. The instance defines
what data the graph displays, and each dcItem element contains a nameSpace, className, and
attribName:
• nameSpace
• className
• attribName
Important
Unlike the expression-based advisors, it is not possible to copy one of the GUI-
based advisors to use as the basis for a custom advisor.
You can change the Advisor name, change the Advisor category that an Advisor belongs to, set your
own version number, and alter the threshold and frequency of an Advisor.
270
Overview of Advisor Creation
Note
If you do not specify a version number for the new Advisor, the version 1.0 is
automatically added.
You can also edit an Advisor's expression. For more information on Advisor expressions, see
Chapter 19, Advisors. An expression can be as simple as a single server parameter or can be complex,
combining multiple parameters with mathematical operations.
For example, if enabling binary logging is a best practice for a production server (as Oracle
recommends), then this best practice is violated if log_bin is OFF. Consequently, the expression for
the “Binary Logging Not Enabled” advisor is “%log_bin% == OFF”. If this evaluates to 1, an event is
raised because the best practice is not being followed.
An expression is made up of one or more variables and zero or more mathematical operators. MySQL
Enterprise Monitor uses the Java Expression Parser. The operators and functions consist of:
• The MySQL functions LEAST(), LOCATE(), ABS(), MOD(), NOW() (returns time since Unix
epoch UTC in seconds), UNIX_TIMESTAMP (technically a no-op), and INTERVAL [n] SECOND,
MINUTE, HOUR, WEEK, MONTH.
• Comparisons with MySQL timestamps and datetimes collected by the agent in the standard MySQL
format 'YYYY-MM-DD hh:mm:ss[.nanos]'.
Note
For a complete list of the built-in variables used to create Advisors, see Server Option, System
Variable, and Status Variable Reference.
Creating an expression is dependent on variables defined in the Variable Assignment frame. This
frame links variables used in the expression field with data gathered from the target MySQL server
instance: server status variables, operating system status information, and table information. Variable
names are associated with elements in the Data Item drop-down menu. To define more than one
variable, click the add row button.
The remaining fields determine the information that you receive in a notification email or the
informational pop-up window associated with each advisor.
Note
When saving a new Advisor, choose a unique name not used by any existing
Advisor.
271
Variables
31.1.4 Variables
When MySQL Enterprise Monitor evaluates an expression, it replaces variables with values. For
example, part of the expression for the “MyISAM Key Cache Has Sub-Optimal Hit Rate” advisor
calculates the hit rate as follows:
100-((%Innodb_buffer_pool_reads% / %Innodb_buffer_pool_read_requests%)*100)
By convention, the Advisors supplied by MySQL use % as the delimiter, for example, %Key_reads%.
This makes variables more readily identifiable.
Variables can be used in the Description, Advice, Action, and Links attributes of a
advisor, as well as in expressions. This lets you report the current value of an expression.
For instance, you can add the message, “The current value of Innodb_buffer_pool_reads
is %Innodb_buffer_pool_reads%.” to the Advice text box. When this is displayed on the
screen, the value of %Innodb_buffer_pool_reads% is substituted into the text. If %
%Innodb_buffer_pool_reads%% has a value of 4522, the message becomes “The current value of
Innodb_buffer_pool_reads is 4522.”
31.1.5 Thresholds
Each expression has a threshold value that triggers an alert. The THRESHOLD keyword associates that
value with an alert level: either an Notice, Warning, or Critical alert.
For example, the expression for the performance advisor, “Thread Cache Size May Not Be Optimal”, is:
100-((%Threads_created% / %Connections%) * 100) < THRESHOLD
The THRESHOLD is set at 95% for an Info level alert, 85% for a Warning alert, and 75% for a Critical
alert, producing alerts of three different levels.
Expressions can be straightforward. The expression for “Binary Logging Not Enabled” (one of the
Administration alerts) is:
%log_bin% == THRESHOLD
When the result is OFF, only one alert is triggered: a Warning level alert. You cannot just use the
expression %log_bin% == "OFF", because this would not test binary logging against a threshold and
so would not result in an alert.
Specify precise conditions when each expression should evaluated, to avoid false alarms. For
example, the expression for the “MyISAM Key Cache Has Sub-Optimal Hit Rate” advisor is:
(%Uptime% > 10800) && (%Key_read_requests% > 10000)
&& (100-((%Key_reads% / %Key_read_requests%) * 100) < THRESHOLD)
The first part of the expression, (%Uptime% > 10800), delays evaluating this expression until the
system has been running for 10800 seconds (3 hours). When a server starts up, it might take a while
to reach a state that is representative of normal operations. For example, the InnoDB buffer pool,
MyISAM key cache, and the SQL query cache might require some time to fill up with application data,
after which the cached data boosts performance.
In addition, if some part of the system is not heavily used, an alert might be triggered based on limited
data. For example, if your application does not use the MyISAM storage engine, the “MyISAM Key
Cache Has Sub-Optimal Hit Rate” advisor could be triggered based on very limited use of other
MyISAM tables such as the mysql.user table. For this reason, this advisor has a second part:
(%Key_read_requests% > 10000). The advisor is not evaluated unless there is plenty of activity
associated with the key cache.
272
Using Strings
Similarly, the Critical Alerts threshold text box is set to a value of "Yes".
When the expression is evaluated, either "OFF" or "ON" is substituted for %Slave_running%, and
"Yes" or "No" for %Slave_IO_Running%, depending on the state of your system. If the slave is
running but the I/O thread is not, the expression becomes:
("ON" == "ON") && ("No" != "Yes")
Without quotation marks, this expression would not evaluate to TRUE as it should.
Note
273
Creating a New Advisor: An Example
<a href="http://dev.mysql.com/doc/refman/en/faqs-replication.html"
target="_blank" >MySQL Manual: Replication FAQ</a>
To create an Advisor, select the Create Advisor button from the Advisors page. The new advisor
page is displayed.
This example creates an Advisor that checks if connections have been killed using the KILL statement
and generates an event.
1. Using the Advisor Name text box, give the Advisor an appropriate name, such as "Connections
killed".
2. From the Advisor Category drop down list box, choose an Advisor category for your Advisor.
3. Define the variable for your expression in the Variable Assignment frame.
• In the Variable text box, enter %connections_killed%, the variable used in the Expression
text box.
• Set the Info Alert level to 0. An informational event is generated if 1 or more connections are
killed.
6. Add appropriate entries for the Problem Description, Advice, and Links text areas. Optionally,
use Wiki markup for these text areas. You can also reference the %connections_killed%
variable in these text areas.
After you create the Advisor, schedule it against the MySQL server you want to monitor. For
instructions on Configure Advisor, see Table 19.3, “Advisor Edit Menu Controls”.
This example creates a graph that checks and compares disk usage, by displaying the usage and total
available disk space over time.
Begin by navigating to the Configuration, Advisors page, and click the Import/Export link.
Then note the Custom Rule/Graph/Data Items Import section. This is where the XML file is
imported.
A definition to check disk space usage may look like the following:
274
Custom Data Collection
<?xml version="1.0"?>
<com_mysql_merlin_server_graph_Design>
<version>1.0</version>
<uuid>a57c2bba-ea9b-102b-b396-94aca32bee29</uuid>
<name>Custom Graph 001</name>
<rangeLabel>MB</rangeLabel>
<series>
<label>used</label>
<expression>used_fs/1024/1024</expression>
</series>
<series>
<label>total_size</label>
<expression>total_fs/1024/1024</expression>
</series>
<displayprofile>
<name>Disk Usage - All Filesystems</name>
<type>Aggregate</type>
<aggregate op="sum">
<source>used</source>
<source>total_size</source>
</aggregate>
</displayprofile>
<variables>
<name>used_fs</name>
<dcItem>
<nameSpace>os</nameSpace>
<className>fs</className>
<attribName>fs_used</attribName>
</dcItem>
<instance>/</instance>
</variables>
<variables>
<name>total_fs</name>
<dcItem>
<nameSpace>os</nameSpace>
<className>fs</className>
<attribName>fs_total</attribName>
</dcItem>
<instance>/</instance>
</variables>
</com_mysql_merlin_server_graph_Design>
This also creates a new Advisor with the same name as the new graph, which is unscheduled by
default. Go to Configuration, Advisors, Graphing to locate and enable this new Advisor.
This graph is displayed on the appropriate graphs page (like every other graph) under the name
defined within the definition, which is Custom Graph 001 in the example above.
The monitoring agent can be configured to collect data directly from the MySQL server, using a query.
This enables you to extend the functionality of the agent and create custom advisors which analyze the
data collected by the custom data collection.
To create a custom data collection, you must add a class to custom.xml, located in the etc directory
of your agent installation. Each defined class is a custom data collection.
Note
275
Custom.xml
After defining the custom data collection, it is available to select in the Data Item drop-down menu on
the Variable Assignment frame of the new Advisor page.
31.2.1 Custom.xml
The following XML shows the structure of a custom data collection:
<class>
<namespace>NameSpace</namespace>
<classname>ClassName</classname>
<precondition><![CDATA[Add Precondition Query Here]]></precondition>
<query><![CDATA[Add Main Query Here]]></query>
<attributes
<attribute name="AttributeName1"/>
<attribute name="AttributeName2"/>
</attributes>
</class>
</classes>
Element Description
classes Container element for all defined classes.
class Container element for the definition of the collection.
namespace Logical grouping for the new data collection item.
classname Name of the custom data collection. Do not use spaces or special
characters in this element.
precondition (Optional) Query which checks some conditions. If the query returns true,
the main query is executed. For example, the precondition query can be
used to check the version of the MySQL server. See Section 31.2.2.1,
“Precondition Queries” for more information.
query The main query. For more information, see Section 31.2.2.2, “Main Queries”
attributes Enables you to label the types of data returned by the query. Possible
types are: STRING, INTEGER, and FLOAT. This information is required
by the advisor receiving the data. It is also possible to define one or more
attributes as counters. See Section 31.2.3, “Data Collection Attributes” for
more information.
The values in the namespace and classname elements are used as the first two elements of the name.
31.2.2 Queries
This section describes the precondition and main queries used to create custom data collections.
276
Queries
<precondition>
<![CDATA[SELECT @@version NOT LIKE '5.0%' AND @@version NOT LIKE '5.1%']]>
</precondition>
If the server version is higher than 5.1, the precondition returns true and the main query is executed.
If the MySQL server is version 5.0.x or 5.1.x, the precondition returns false and the main query is not
executed.
• The query must be defined within a <![CDATA[]]> container. For example: <![CDATA[SELECT X
FROM Y AS FOO]]>. Do not enter any characters between CDATA and the following [, nor between
the [ and the start of the query. The same rule applies to the closing ]].
• Only SELECT statements are possible. It is not possible to use INSERT, UPDATE, DELETE, and so
on.
• Do not define queries which take longer to run than the schedule defined on the advisor. For
example, if the query takes 2 minutes to run, but the advisor-defined schedule requires the query
to run every 1 minute, no results are returned. To avoid this, test your query thoroughly on the
monitored server. If the custom data collection is deployed on multiple agents, it must be tested on
each monitored server and the schedule modified accordingly.
• The query can return only one row, except if the result type CLASS_TYPE_1STCOL_ATTRIBUTES is
used. See Section 31.2.3.2, “Returning Multiple Rows” for more information.
For each value retrieved from the server, you must assign a name. That is, you must use the following
format, where NAME is the name applied to the data collection:
SELECT X AS NAME FROM Y
The items are displayed in the Data Item drop-down menu on the Variable Assignment frame of the
new Advisor page. They take the following format: namespace:classname:name. For example,
mysql:status:open_files_limit.
Note
The examples used in this section are taken from the default advisors delivered
with your MySQL Enterprise Monitor installation.
The following example is used by the Server Has Anonymous Accounts advisor:
<class>
<namespace>mysql</namespace>
<classname>anonymous_user</classname>
<query><![CDATA[SELECT COUNT(*) AS user_count FROM mysql.user WHERE user='']]></query>
</class>
277
Data Collection Attributes
The following example is taken from the data collection used by the Server Has Accounts Without A
Password advisor:
<query>
<![CDATA[SELECT GROUP_CONCAT('\\\\\n* ', '\'',user,'\'@\'',host,'\'' ORDER BY user, host)
as user FROM mysql.user WHERE password='' /*!50507 AND (plugin = '' OR plugin IS NULL
OR plugin = 'mysql_native_password') OR (plugin = 'sha256_password'
AND authentication_string = '')*/]]>
</query>
The wiki markup formats the user and host into information readily displayed in the Events page of
MySQL Enterprise Monitor User Interface. This example lists the user name and host for all accounts
without a defined password.
See Section 31.1.7, “Wiki Format” for more information on the supported wiki markup.
Name Description
name The name of the attribute defined in the AS clause of the query.
counter Whether the attribute is a counter type.
Important
It is possible to override the default setting by assigning a counter, type, or both to the attribute
definition. For example:
278
Event Notification Blackout Periods
<attributes>
<default counter="true" type="INTEGER"/>
<attribute name="total_wait_time_ms"/>
<attribute name="total_statements"/>
<attribute name="max_wait_time_ms" counter="false"/>
<attribute name="total_errors"/>
<attribute name="total_warnings"/>
<attribute name="total_rows_returned"/>
<attribute name="total_lock_time_ms"/>
</attributes>
Important
The following example shows how a 2-column result set is returned and formatted by the resulttype
element:
<class>
<namespace>mysql</namespace>
<classname>rpl_semi_sync_vars</classname>
<query><![CDATA[
SHOW GLOBAL VARIABLES WHERE
Variable_name='rpl_semi_sync_master_timeout' OR
Variable_name='rpl_semi_sync_master_trace_level' OR
Variable_name='rpl_semi_sync_master_wait_no_slave' OR
Variable_name='rpl_semi_sync_master_enabled' OR
Variable_name='rpl_semi_sync_slave_enabled'
]]></query>
<resulttype>CLASS_TYPE_1STCOL_ATTRIBUTES</resulttype>
<attributes>
<attribute name="rpl_semi_sync_master_timeout" counter="false" type="INTEGER"/>
<attribute name="rpl_semi_sync_master_trace_level" counter="false" type="INTEGER"/>
<attribute name="rpl_semi_sync_master_wait_no_slave" counter="false" type="STRING"/>
<attribute name="rpl_semi_sync_master_enabled" counter="false" type="STRING"/>
<attribute name="rpl_semi_sync_slave_enabled" counter="false" type="STRING"/>
</attributes>
</class>
To enable a blackout period for an individual instance, you can use the context menu on the MySQL
Instances page. Open the instance menu and select Enable Event Handler Blackout. The instance
name is grayed out to indicate the presence of an active blackout. No Event Handlers are triggered for
the selected instance for the duration of the blackout period.
You can also enable a blackout period by entering the following URL into the address bar of your
browser, substituting the appropriate host name, port and server name:
https://HostName:18443/rest?command=blackout&server_name=ServerName:3306&blackout_state=true
279
Event Notification Blackout Periods
• group_name: the name of the group. See Chapter 18, Managing Groups of Instances for more
information.
• asset_type: (only used for blackout of agents and blackout_status of agents) can be one of the
following
• agent.Agent: specifies the agent as the asset type. The command, or URL, must also contain
the agent_id parameter.
• mysql.MysqlServer: specifies the MySQL instance as the asset type. The command, or URL,
must also contain the id parameter, with the value of the MySQL instance UUID.
Log on to the MySQL Enterprise Service Manager as a user with blackout privileges. For more
information, see Section 23.5, “MySQL Enterprise Monitor”. Use the username and password you
specified when you initially logged in to the Monitor UI.
You can also blackout a server group by entering the following URL into the address bar of your
browser, substituting the appropriate host name, and server group name:
https://localhost:18443/rest?command=blackout&group_name=Finance&blackout_state=true
When the HTTP authentication dialog box opens, enter the administrator's credentials.
To confirm that a server is blacked out, check that its name is grayed out in the Monitor UI.
To reactivate the blacked-out server or server group, use the appropriate URL and query string,
changing the blackout_state=true name/value pair to blackout_state=false. Again, this
must be done by a user with administrative privileges.
Note
Restarting MySQL Enterprise Monitor does not reactivate a blacked out server.
To blackout an agent and all the MySQL instances currently monitored by that agent, use the following
URL:
https://localhost:18443/rest?command=blackout&agent_id=agentID&blackout_state=true&recursive=true
280
Scripting Blackouts
https://localhost:18443/rest?command=blackout_status&id=agentID&asset_type=agent.Agent
To check the blackout status of a MySQL instance, use the following URL:
https://localhost:18443/rest?command=blackout_status&id=mysqlUUID&asset_type=mysql.MysqlServer
You can also check the blackout status of a MySQL instance using its serer name. For example:
https://localhost:18443/rest?command=blackout_status&server_name=serverName
Note
Note
On Unix systems, use the chmod +x blackout.sh command to make the file
executable.
• Group Blackout: describes how to apply or remove a blackout on a MySQL Enterprise Monitor
groujp.
• Agent Blackout: describes how to apply or remove a blackout on a MySQL Enterprise Monitor Agent
and, recursively, on all MySQL instances monitored by the agent.
• Blackout Status: describes how to check the blackout status on the agent, group, or MySQL
instance.
Note
Server Blackout
The blackout command enables you to blackout individual MySQL instances.
• --user: the username and password of the Service Manager user running the command. Ensure
this user has the correct rights to perform blackouts.
• The URL of the Service Manager's rest API. For example: "https://servicemanager:18443/
rest"
281
Scripting Blackouts
To remove the blackout, run the same command, with "blackout_state=false". For example:
curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest"
--data-urlencode "command=blackout"
--data-urlencode "server_uuid=62e74f29-526a-11ba-77fb-0242xy112504"
--data-urlencode "blackout_state=false"
It is also possible to blackout all the MySQL instances monitored by a specific Agent. for more
information, see Agent Blackout.
Group Blackout
The blackout command enables you to blackout groups of MySQL instances. For more information
on MySQL Enterprise Service Manager Groups, see Chapter 18, Managing Groups of Instances.
• --user: the username and password of the Service Manager user running the command. Ensure
this user has the correct rights to perform blackouts.
• The URL of the Service Manager's rest API. For example: "https://servicemanager:18443/
rest"
The following command blackouts all MySQL instances in the group named Group 1.
curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest"
--data-urlencode "command=blackout" --data-urlencode "group_name=Group 1"
--data-urlencode "blackout_state=true"
Agent Blackout
The command blackout enables you to blackout an Agent, or an Agent and all the MySQL instances
it is currently monitoring.
• --user: the username and password of the Service Manager user running the command. Ensure
this user has the correct rights to perform blackouts.
• The URL of the Service Manager's rest API. For example: "https://servicemanager:18443/
rest"
282
Scripting Blackouts
To blackout an Agent and all the MySQL instances it monitors, run the following command:
curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest"
--data-urlencode "command=blackout"
--data-urlencode "agent_id=1e365f83-b703-4588-9472-877c90a2c49f"
--data-urlencode "blackout_state=true" --data-urlencode "recursive=true"
Blackout Status
The command blackout_status enables you to check if an agent or MySQL instance is currently
blacked out.
• --user: the username and password of the Service Manager user running the command. Ensure
this user has the correct rights to perform blackouts.
• The URL of the Service Manager's rest API. For example: "https://servicemanager:18443/
rest"
283
284
Part V Using the Query Analyzer
Table of Contents
32 Query Analyzer View ............................................................................................................ 289
32.1 Providing Query Analyzer Data .................................................................................. 289
32.1.1 Using the MySQL Performance Schema .......................................................... 289
32.2 Query Response Time index (QRTi) ........................................................................... 291
32.3 Query Analyzer User Interface ................................................................................... 292
32.4 Detailed Query Information ........................................................................................ 295
32.5 Query Analyzer Configuration View ............................................................................ 298
287
288
Chapter 32 Query Analyzer View
The MySQL Query Analyzer enables you to monitor SQL statements executed on a MySQL server
and displays the details of each query, number of executions and execution times. Similar queries with
different literal values are combined for reporting purposes.
Query Analyzer collects information on the SQL statements MySQL client applications send to the
MySQL server using the Performance Schema statement digests (MySQL Server 5.6.14 and above).
Data can be gathered directly from MySQL Server without additional configuration, using a MySQL
Enterprise Monitor Agent
For more information on the Query Analyzer user interface, see Section 32.3, “Query Analyzer User
Interface”.
Once the data is collected, you view and monitor the queries, check the execution statistics, and filter
and drill down on the information. By comparing the queries to the server graphs, you can correlate
query execution with server status. For more information on viewing, filtering and reporting on the
Query Analyzer data, see Section 32.3, “Query Analyzer User Interface”.
Using the Performance Schema statement digests with MySQL Server 5.6.14 and above, data can be
gathered directly from MySQL Server without additional configuration.
Note
It is not possible to retrieve statement digest data from MySQL server versions
prior to MySQL 5.6.14.
Collecting Query Analyzer data from Performance Schema provides data about how statements
generate their result sets:
• How many temporary tables were created, and whether any were created on disk
• Whether range scans were done, and in what form they were done
• Whether sorting happened, how many rows were sorted, and what form the sort took
289
Using the MySQL Performance Schema
+-------------------+---------+
| NAME | ENABLED |
+-------------------+---------+
| statements_digest | YES |
+-------------------+---------+
Note
Note
The maximum space available for digest computation is 1024 bytes by default;
queries exceeding this length are truncated.
If your application executes more than this number of normalized statements, then it is possible
that you may begin losing some statement instrumentation. You can monitor this situation with the
Performance_schema_digest_lost variable:
If you detect that this counter variable is growing, consider increasing the
performance_schema_digests_size system variable. It is also possible that your statement
profile has changed over time, and you are now executing different statements than were originally
tracked (this is especially possible in very long running instances). In this case, you can simply
290
Query Response Time index (QRTi)
If the Example Query feature is enabled, Query Analyzer attempts to get an example of the
longest running statement during the snapshot interval by doing a LEFT JOIN with a groupwise-
max on the performance_schema.events_statements_summary_by_digest table to
the performance_schema.events_statements_history_long table. Using this method
does not guarantee that an example statement is always provided because, by default, the
events_statements_history_long table is a ring buffer of the last 1000 statements executed.
Data is collected in this way from Performance Schema to minimize load on the monitored instance
rather than polling the performance_schema.events_statements_history_long table at too
high a frequently to try and gather statistics.
Note
When Example Query and Example Explain are enabled, the MySQL Enterprise Monitor Agent
attempts to run an EXPLAIN for each example statement that is discovered and ran for longer than the
Auto-Explain Threshold. Due to the way that Performance Schema exposes normalized statements,
truncating any normalized statement that is longer than 1024 bytes due to memory concerns within the
MySQL Server means it is possible that an EXPLAIN may fail because the truncated statements do not
parse correctly when running the EXPLAIN.
291
An example calculation
An example calculation
From there, we calculate an average to determine the final QRTi value. For Example, if there are 100
executions of the digested/canonical query, where 60 finished below 100ms (the optimal time frame),
30 between 100ms and 400ms (the acceptable time frame), and the remaining 10 took longer than
400ms (unacceptable time), then the QRTi score is:
So when doing query optimization, you want to start with the ones that have a QRTi visual pie chart
that is 100% red, which means that they also have an actual QRTi value of 0. This means that *all*
executions of that query took longer than the acceptable time frame (400ms by default). You can
then click on the query to get more information, such as the maximum and average query times, the
average number of rows examined, the average lock wait time, examine a sample query, look at an
example EXPLAIN plan, see if full table scans were done, examine index usage, etc.
You can then work your way up from the queries with a QRTi value of 0, towards those that have a
value of 1 (1 meaning that all instances of the query executed within the optimal time frame). Once you
get to the point that you no longer have any queries with a QRTi value of less than 1, then you can go
into the Query Analysis Reporting Advisor configuration, and adjust the QRTi Threshold (the target
time) down, say to 50ms, and start the process all over again.
To open the Query Analyzer, select Queries from the navigation menu.
292
Query Analyzer User Interface
Control Description
Filters Query Analyzer: contains the following default, system filters:
• Statements with Errors: filters on the advanced filter options of Total Errors >
0.
293
Query Analyzer User Interface
Control Description
• Statements with Full Table Scans: filters on the advanced filter options of
Table Scan notices and Total Table Scans > 0.
• Statements with Max Exec Time Over 1 Second: filters on the advanced filter
options of Max Exec Time > 1.
• Customized versions of the system filters are created using the name of the filter
with a -clone suffix.
Configure View Opens the configuration view.
The Configure View enables you to customize the data displayed on the
Query Analyzer view. For more information, see Section 32.5, “Query Analyzer
Configuration View”.
Statements The statements panel displays the statement data. The data displayed is
configured in the Data View section of the Configuration View.
• QRTi pie chart: visual representation of the Query Response Time index. Hover
the cursor over the pie chart to see a summary of the Optimal, Acceptable, and
Unacceptable QRTi percentages.
• Query: displays the normalized query. Hover the cursor over the statement to
see the full version. Or click the query to open the Details page.
• Database: the name of the database on which the query was executed.
• First Seen: the time and data at which this query was first seen on the
database.
• Latency: sparkline graph displaying the latency of the query. Hover the cursor
over the graph to display a tooltip containing the summary of the latency.
All elements of the statement view are configurable, except for the statement itself,
which is always displayed. To display the full statement, hover the cursor over the
statement line. The full statement is displayed in a pop-up. To view the details of
294
Detailed Query Information
Control Description
the statement, click the statement, or the more options button on the right of the
statement's panel.
For more information on the Details page, see Section 32.4, “Detailed Query
Information”.
For more information on Normalization and Statement Digests, see Performance Schema Statement
Digests and Sampling.
Note
If you change the context, by selecting another MySQL instance from the All
Targets menu, and the selected instance does not contain the statement digest
of the originally selected query, an error is displayed.
• Statement Digest field: lists the truncated identifier of the statement. To see the full version, click
Show. To copy the statement digest to the clipboard, click Copy.
• Date and time range: displays the statement's time range, as selected on the Query Analyzer page.
• Statistics: displays the relevant statistics for the SQL statement. Number of executions, Total
Execution time, and so on.
• Graphs: displays the average execution time, number of executions, and number of rows affected by
the statement within the selected time range.
• Example Statements: (Displayed only if Example Query is enabled) distribution chart of the
statement by Execution Time, in milliseconds, and time and date, within the selected time range.
295
Graphs
Graphs
The statement graph displays the average execution time, number of executions, and the number of
rows affected.
296
Example Statements, Details, and EXPLAIN
Statements with an associated EXPLAIN plan are represented by a circle in the Distribution Chart.
Squares have no EXPLAIN plan. The red circle or square is the SQL statement with the longest
execution time for the specified period. Clicking on a circle or square displays its query text in the
original form, execution details, and its EXPLAIN plan, if EXPLAIN is enabled. Selecting one of the
points loads the data for that point in the Example details frames:
Figure 32.5 Example Statement and Details
297
Query Analyzer Configuration View
To select a time range for the graphs, select a value from the Zoom section. Possible values range
from one hour to two days.
To select one or more graphs to display on the Query Analyzer view, click in the Graph selection box
and select the required graphs from the available options.
Filter View
298
Filter View
• Column: enables you to filter the queries based on specific values within any of the columns shown
in the Query Analyzer report list.
To use the column filters, you must specify the Column that you want to filter on, the Operator to
use when performing the comparison and the Value that you want to compare.
For example, to filter on all queries that return more than 100 rows on average, set the Column to
Average Rows, the Operator to >=, and the Value to 100.
• Database: limits the queries to those executed within a specific database. The database match
is performed using the LIKE match from the MySQL database, hence you can use the % and _
characters to multiple and single character matches. For more information, see Pattern Matching.
• Notices: Filters on the notices, enabling you to filter the list to show only the queries that did not
raise a notice, indicated a full table scan, or indicated that a bad index was used.
• Statement Text and Value support text searching of the normalized query. For the search type you
can specify either a basic text match (Contains), or a regular expression match (Regex). In addition
to the basic text match, you can also search for a query that does not contain a particular string. For
regular expression searches, you can specify whether the regular expression should match, or not
match (negative regexp) the queries. Regular expressions are parsed using the standard MySQL
REGEXP() function. For more information, see Regular Expressions.
Note
The search is performed against the canonical version of the query. You
cannot search against specific text or values within the parameters of the
query itself.
• Statement Type: Limits the search to statements of a particular type (SELECT, LITERAL, etc.).
• The Time From/To: enables you to select a time range for filtering. Only queries executed within the
displayed time period are displayed, using the Hours and Minutes pop-up), or whether the selection
should be based on a time period (From/To).
Using this property you can display only the queries executed during a specific time span, and you
can display the query history for a much longer time period, for as long as you have been recording
query analysis information.
Note
It is not possible to use both Time Interval and Time From\To together. You
must use one or the other.
299
Sort View
• Time Interval: filters queries within the given time period from the point the graph was updated.
For example, if you select 30 minutes, the queries displayed are those captured within the last 30
minutes. If you updated the display at 14:00, the queries displayed are those captured between
13:30 and 14:00. Possible values are between 15 minutes and 2 years.
Note
It is not possible to use both Time Interval and Time From\To together. You
must use one or the other.
• View: determines whether the information should be returned on a Group basis, where an aggregate
of the same query executed on all monitored servers is shown, or on a Server basis, where queries
are summarized by individual server. If the latter option is selected, the statements can be expanded
to list the individual servers on which they were executed.
Sort View
The Sort view enables you to specify how the data is ordered in the Statements view.
• Database: The default database in use at the time of the query. The database name might be
blank, or might not match the database used within the query, if you used a qualified table name (for
example, select ... from db_name.table_name) or if you issued a USE statement to switch
databases after connecting.
• Errors: Highlights any specific issues experienced when running queries, including excessive table
scans and bad index usage. These provide an immediate indication of a problem with a query that
might require additional examination.
• Execution Counts: The number of times that the query has been executed.
• First Seen: The date and time the normalized version of this query was first seen, which might be
earlier than the period specified by the filter.
• Latency: The execution time for all the matching queries. This is the time, for every invocation of the
corresponding query, as calculated by comparing the time when the query was submitted and when
the results were returned by the server. Times are expressed in HH:MM:SS.MS (hours, minutes,
seconds, and milliseconds).
• Latency Total: the cumulative execution time for all the executions of this query.
• Latency Maximum: the maximum execution time for an execution of this query.
• Latency Average: the average execution time for the execution of this query.
• Locks: the time spent waiting for table locks caused by the query.
300
Sort View
• Average History graph (Avg History): graphs the average execution time.
• No Index Used:
• Rows: The rows returned by the query. This is sub-divided into the following groupings:
• Rows Total: The sum total number of rows returned by all executions of the query.
• Rows Average: The average number of rows returned by all executions of the query.
• Rows Examined: The average number of rows returned by all executions of the query.
• Select Type
• Select Type Full Join: number of joins performing table scans because they do not use indexes.
• Select Type Full Range Join: the number of joins using a range search on a reference table.
• Select Type Range: the number of joins using ranges on the first table.
• Select Type Range Check: the number of joins without keys that check for key usage after each
row.
• Select Type Scan: the number of joins performing a full scan of the first table.
• Sorting
• Sorting Merge Passes: the number of merge passes the sort algorithm has performed.
• Statement: The normalized version of the query. Normalization removes the query-specific data so
that different queries with different data parameters are identified as the same basic query.
The information is shown as one query per row. Each query row is expandable, and can be
expanded to show the execution times for individual servers for that query.
Note
If the selected context is a cluster, the queries for the cluster's SQL nodes
are displayed either for the specific node or for the cluster as an aggregate. If
other node types are selected, the aggregate is displayed.
• Temporary Tables
• Temporary Tables Average: the average number of internal temporary tables created per
occurrence of the statement.
• Temporary Tables Disk: the total number of internal, on-disk temporary tables created by
occurrences of the statement.
• Temporary Tables Disk % : the percentage of internal in-memory temporary tables that were
converted to on-disk tables.
• Temporary Tables Total: the total number of internal in-memory temporary tables created by
occurrences of the statement
301
Data View
Data View
The Data View configures the elements displayed in the entries of the Statement view.
• Database: the name of the database on which the statement was executed.
• First Seen: the time and date the statement was first seen.
• Information Icons: select which information icons you want displayed on the statement view. These
icons are displayed on the right-hand side of the statement. Possible choices are: Notices. Errors,
or Warnings.
• Latency: the execution times for the statements. The following latency settings are possible:
• History Graph: adds a latency graph to the statement data. This graphs the latency high, low, and
average history.
• Total Time: the total time taken by all executions of this statement.
• Maximum Time: the maximum time taken for an execution of this statement.
302
Customizing Filters
• Lock Time: the time spent waiting for table locks caused by this statement.
• QRTi Graph: adds a Query Response Time index pie-chart to the left side of the statement. The pie-
chart graphs the Optimal, Acceptable, and Unacceptable percentages for the statement.
• Rows: the number of rows returned. The following are the possible values:
• Full Join: the number of joins performing table scans because they do not use indexes.
• Full Range: the number of joins using a range search on a reference table.
• Range Check: the number of joins without keys that check for key usage after each row.
• Scan: the number of joins performing a full scan of the first table.
• Merge Passes: the number of merge passes the sort algorithm has performed.
• Average: the average number of internal temporary tables created per occurrence of the
statement.
• Disk: the total number of internal, on-disk temporary tables created by occurrences of the
statement.
• Disk % : the percentage of internal in-memory temporary tables that were converted to on-disk
tables.
• Total: the total number of internal in-memory temporary tables created by occurrences of the
statement
Customizing Filters
Filters can be created, or existing filters customized, in the Query Analyzer Configuration View.
To create a user filter, you can either create a filter and save it by clicking Save as... menu item, or
create a new filter by clicking New, defining your filter criteria, and clicking Save as....
You can also create a filter by using an existing filter as a template. Select the filter and make your
changes. If you create a named filter based on an existing filter, the -clone is appended to the name
when you edit the new filter. The name can be edited as required.
303
Customizing Filters
System filters are listed with a padlock on the left side of their name. These cannot be edited, but can
be used as templates for new filters.
To set a filter as the default, select it in the drop-down list, and select Set as Default from the adjacent
drop-down menu. A star is displayed next to the default filter.
Note
If you upgraded from a previous version, and used default filters in that version,
your filters are migrated and renamed User Default.
304
Part VI Appendices
Table of Contents
A MySQL Enterprise Monitor Component Reference .................................................................. 309
A.1 MySQL Enterprise Service Manager Reference ............................................................ 309
A.1.1 MySQL Enterprise Service Manager Log Files ................................................... 309
A.1.2 The Management Information Base (MIB) File ................................................... 309
A.1.3 The config.properties file ......................................................................... 309
A.2 MySQL Enterprise Monitor Agent Reference ................................................................ 313
A.2.1 Agent Log Files ............................................................................................... 313
B Managing the Inventory ......................................................................................................... 315
B.1 The Inventory Page .................................................................................................... 315
B.2 Using the Inventory Page ............................................................................................ 315
C MySQL Enterprise Monitor Frequently Asked Questions .......................................................... 317
D MySQL Enterprise Monitor Support ........................................................................................ 323
D.1 Diagnostics Report ..................................................................................................... 323
307
308
Appendix A MySQL Enterprise Monitor Component Reference
Table of Contents
A.1 MySQL Enterprise Service Manager Reference .................................................................... 309
A.1.1 MySQL Enterprise Service Manager Log Files ........................................................... 309
A.1.2 The Management Information Base (MIB) File ........................................................... 309
A.1.3 The config.properties file ................................................................................. 309
A.2 MySQL Enterprise Monitor Agent Reference ........................................................................ 313
A.2.1 Agent Log Files ....................................................................................................... 313
All log files except catalina-daemon.out are rotated to ensure they do not grow beyond 10MB in
size. The catalina-daemon.out Apache Tomcat log file is rotated (as catalina.yyyy-mm-dd.log)
when Apache Tomcat is restarted, which happens when MySQL Enterprise Service Manager is
restarted.
On all operating systems, the Apache/Tomcat, and Repository directories contain both access and
error files.
309
The config.properties file
File location
The repository user name and encrypted password are stored in the config.properties file. The
following table shows the location of this file on various operating systems:
Make sure that the file is secured at the filesystem level so that it cannot be read by anybody but the
administrator, or MySQL Enterprise Monitor.
Usage
The following examples shows a generated config.properties file:
Note
The application has two connection pools, one to service agent traffic, and the other for the UI. You
can configure them as one logical pool with a 85/15 (agent/ui) percentage split, and use "dbPool"
as the pool name in the further settings. Or, you can configure each pool separately, where the pool
names are "default" and "ui". Note that the names after the "." come verbatim from DBCP at http://
commons.apache.org/proper/commons-dbcp/configuration.html.
310
The config.properties file
• dbpool.ui.initialSize(5)
Type Integer
Default Value 5
The initial number of connections that are created when the pool is started.
• dbpool.ui.maxActive(15)
Type Integer
Default Value 15
The maximum number of active connections that can be allocated from this pool at the same time.
• dbpool.ui.minIdle(0)
Type Integer
Default Value 0
The minimum number of established connections that should be kept in the pool at all times. Default
value is derived from ???.
• dbpool.ui.maxIdle(5)
Type Integer
Default Value 5
The maximum number of connections kept in the pool at all times. Idle connections are checked
periodically, if enabled, and connections idle for longer than minEvictableIdleTimeMillis are
released.
• dbpool.ui.maxWaitMillis(30 seconds)
Type String
Default Value 30000 seconds
The maximum number of milliseconds the pool waits for a connection to be returned before throwing
an exception. Set to -1 to wait indefinitely.
• dbpool.ui.timeBetweenEvictionRunsMillis(5 seconds)
Type String
Default Value 5000 milliseconds
The number of milliseconds to sleep between runs of the idle connection validation or cleaner thread.
Do not set this value to less than 1 second. It specifies how often checks are performed for idle
connections, and how often idle connections are validated.
• dbpool.ui.minEvictableIdleTimeMillis(15 seconds)
311
The config.properties file
Type String
Default Value 15 seconds
The minimum amount of time an object may sit idle in the pool before it is eligible for eviction.
• dbpool.default.initialSize(20)
Type Integer
Default Value 20
• dbpool.default.maxActive(70)
Type Integer
Default Value 70
The maximum number of active connections allocated from this pool at the same time.
• dbpool.default.minIdle(0)
Type Integer
Default Value 0
The minimum number of established connections kept in the pool at all times.
• dbpool.default.maxIdle(5)
Type Integer
Default Value 20
• dbpool.default.maxWaitMillis(30 seconds)
Type String
Default Value 30 seconds
The maximum number of milliseconds the pool waits for a connection to be returned before throwing
an exception.
• dbpool.default.timeBetweenEvictionRunsMillis(5 seconds)
Type String
Default Value 5 seconds
The number of milliseconds to sleep between runs of the idle connection validation or cleaner thread.
Do not set this value to less than 1 second. It specifies how often checks are performed for idle
connections, and how often idle connections are validated.
• dbpool.default.minEvictableIdleTimeMillis(15 seconds)
Type String
Default Value 15 seconds
The minimum amount of time an object may sit idle in the pool before it is eligible for eviction.
312
MySQL Enterprise Monitor Agent Reference
MySQL Enterprise Monitor Agent is configured through the MySQL Enterprise Monitor User Interface,
and the bundled agent.sh/agent.bat script. Using these methods is recommended,
Note
In MEM versions before 3.0.0, the Agent was configured using the mysql-
monitor-agent.ini and agent-instance.ini configuration files.
The log files are managed with log4j, which is configured using log4j2.xml. The Agent watches
for changes every 30 seconds, and updates MySQL Enterprise Monitor accordingly. The default file
location:
The maximum size of a log file may be limited to 2GB. If MySQL Enterprise Monitor Agent cannot add
information to the configured log file, information is sent to the standard output instead.
Because the log files can become large, you could rotate the logs by defining log4j options. For
example, to implement a rotation of 10 x 10MB log files:
<Policies>
<SizeBasedTriggeringPolicy size="10 MB">
</Policies>
<DefaultRolloverStrategy max="10"/>
For additional information about log4j, read the log4j documentation at http://logging.apache.org/log4j/.
313
314
Appendix B Managing the Inventory
Table of Contents
B.1 The Inventory Page ............................................................................................................ 315
B.2 Using the Inventory Page .................................................................................................... 315
The Inventory pages enable you to view all currently monitored assets and delete assets which are no
longer monitored or no longer present. It is also useful for debugging problems with your setup. The
information in the Inventory page is read from the repository's Inventory schema, where all information
about the current and historical assets is stored.
Historical assets are assets which were once monitored but are no longer used, such as servers
which used to host MySQL instances but were decommissioned, or repurposed. These persist in the
repository's Inventory schema and are displayed in the MySQL Enterprise Monitor User Interface even
though they are no longer used.
Current assets are assets which are active and currently monitored.
https://ServiceManagerHost:PortNumber/v3/inventory
Where ServiceManagerHost is the address of your MySQL Enterprise Service Manager and
PortNumber is the port it listens on.
Enter the login details, if prompted to do so. The username and password are the same as those used
to log in to the MySQL Enterprise Monitor User Interface.
All Inventory
The All Inventory page displays all recorded assets, current and historical, grouped into categories.
For example, selecting agent.Agent opens a page listing all the agents stored in the inventory.
Selecting one of those agents, opens a page listing the details of that agent. Details such as the
homeDir, version, and so on.
All Hosts
The All Hosts page displays all current and historical hosts. Clicking one of the host links opens a
page listing the details of that host. Details such as the number of CPUs, the file systems and the
MySQL instances, if any, installed on that host.
315
Deleting Assets
Deleting Assets
MySQL Enterprise Monitor maintains a record, in the Inventory schema, of all assets detected. As a
result, if the network topology changes frequently, the inventory and the MySQL Enterprise Monitor
User Interface may contain many unused or obsolete assets. The Inventory page enables you to
remove such assets, permanently.
Important
3. Click Yes to delete the asset, Cancel to return to the asset page.
Important
To delete a host which is currently monitored, you must first, in the MySQL
Enterprise Monitor User Interface, stop the monitoring Agent, delete the Agent
and Instance, then delete the host using the Inventory page.
316
Appendix C MySQL Enterprise Monitor Frequently Asked
Questions
Note
FAQ Categories
• Security
• General Usage
• MySQL Monitor
Security
Questions
• C.1: If I upgrade to 3.1, what happens to the users defined in earlier versions?
C.1: If I upgrade to 3.1, what happens to the users defined in earlier versions?
All users defined in earlier versions are mapped to the default roles introduced in Access Control Lists
in MySQL Enterprise Monitor 3.1. The user names are retained but their permissions are defined
separately in default roles. All pre-existing users are automatically mapped to the default roles.
For example, if User1 is defined as a dba in MySQL Enterprise Monitor 3.0.x, User1 is created in
MySQL Enterprise Monitor 3.1, but assigned to the dba Role. If User1 is defined as a dba, and granted
both Query Analyzer permissions in 3.0.x, it is assigned to the default dba Role, and both Query
Analyzer roles in 3.1.
General Usage
Questions
• C.1: How do I find Ignored MySQL Instances? And how to I show them again?
• C.2: Using MySQL Enterprise Service Manager 3.2 with older agents, why am I seeing warning
messages like the following in the agent logs?
WARN [HttpPollingJobFetcher-thread-0:com.mysql.etools.agent.ManagedOrder]
bean order property CoalescedCollectionRunner.collections is a collection
and contains a class not available on the agent. This element of the collection
will be ignored. Upgrading the agent to a version at least the same as the service
manager may solve this problem.
java.lang.RuntimeException: java.lang.ClassNotFoundException:
com.mysql.etools.inventory.model.mysql.XXXXXXX
• C.3: In 2.3, the agent-mgmt-hostname contained the string "heartbeat" as the URLs path. Did this
change?
• C.5: Does Query Analyzer work with all versions of MySQL and the MySQL Client Libraries?
317
• C.6: Why does the file apache-tomcat/logs/tomcat.log show error messages saying This
is very likely to create a memory leak.? Is that anything to be concerned about?
• C.7: Why does monitoring a MySQL instance with FEDERATED tables cause extra connections,
and decreased performance?
C.1: How do I find Ignored MySQL Instances? And how to I show them again?
From the MySQL Instances page, open the Unmonitored Instances panel and enable the Ignored
Instance filter parameter and execute the search. This lists the ignored MySQL Instances.
To change the status of an ignored MySQL Instance, choose Show Instance from the context-menu
for a specific MySQL Instance, or check the ignored MySQL Instance(s) and click the Show Instances
button.
C.2: Using MySQL Enterprise Service Manager 3.2 with older agents, why am I seeing warning
messages like the following in the agent logs?
WARN [HttpPollingJobFetcher-thread-0:com.mysql.etools.agent.ManagedOrder]
bean order property CoalescedCollectionRunner.collections is a collection
and contains a class not available on the agent. This element of the collection
will be ignored. Upgrading the agent to a version at least the same as the service
manager may solve this problem.
java.lang.RuntimeException: java.lang.ClassNotFoundException:
com.mysql.etools.inventory.model.mysql.XXXXXXX
MySQL Enterprise Monitor 3.2 introduced support for multi-source replication. Some of the functionality
introduced in the 3.2 agents is not available in the earlier agents. XXXXXXX represents one of the
classes unavailable in the earlier agent.
These warnings do not imply anything is wrong with your installation or any data is missing from the
collections. However, it is strongly recommended that you upgrade your agents to the same version as
your MySQL Enterprise Service Manager.
C.3: In 2.3, the agent-mgmt-hostname contained the string "heartbeat" as the URLs path. Did
this change?
Yes, this is no longer required and is ignored as of MySQL Enterprise Monitor 3.0.0.
Open the MySQL Instances dashboard, and choose Edit Instance from the instance menu.
Alternatively, toggle the checkbox for one instance and click Edit Instances.
Renaming the server in this way will override all other server naming, including changes to the agent
configuration.
C.5: Does Query Analyzer work with all versions of MySQL and the MySQL Client Libraries?
Analyzing Performance Schema results requires MySQL Server 5.6.14 and above.
C.6: Why does the file apache-tomcat/logs/tomcat.log show error messages saying This
is very likely to create a memory leak.? Is that anything to be concerned about?
This message is sometimes produced by underlying components of the web stack on web application
reload or shutdown, and is not a cause for concern. It is not practical to shut off these spurious
messages within Tomcat.
318
C.7: Why does monitoring a MySQL instance with FEDERATED tables cause extra connections,
and decreased performance?
When the agent starts, it executes a discovery process that performs a number of
INFORMATION_SCHEMA queries that gather table information for rules. These
INFORMATION_SCHEMA queries can be costly on instances with many tables, particularly with large
numbers of FEDERATED tables to another instance, as each table has a new session opened for it on
the target machine.
MySQL Monitor
Questions
• C.1: What are the features and related benefits of the MySQL Enterprise Monitor?
• C.2: What are the immediate benefits of implementing the MySQL Enterprise Monitor?
• C.3: What are the long-term benefits of the MySQL Enterprise Monitor?
• C.7: What versions of MySQL are supported by the MySQL Enterprise Monitor?
• C.8: What operating system platforms are supported by the MySQL Enterprise Monitor?
• C.9: How are subscribers notified about the availability of new or updated MySQL Enterprise
Monitor, MySQL Enterprise Advisors and Advisor Rules?
C.1: What are the features and related benefits of the MySQL Enterprise Monitor?
The MySQL Enterprise Monitor is like having a "Virtual DBA Assistant" at your side to recommend
best practices to eliminate security vulnerabilities, improve replication, and optimize performance.
For the complete features and benefits, visit the http://www.mysql.com/products/enterprise/monitor-
features.html.
C.2: What are the immediate benefits of implementing the MySQL Enterprise Monitor?
Often MySQL installations are implemented with default settings that may not be best suited for specific
applications or usage patterns. The MySQL Advisors go to work immediately in these environments
to identify potential problems and proactively notify and advise DBAs on key MySQL settings that can
be tuned to improve availability, tighten security, and increase the throughput of their existing MySQL
servers
C.3: What are the long-term benefits of the MySQL Enterprise Monitor?
Over time, the task of managing even medium-scale MySQL server farms becomes exponentially
more complicated, especially as the load of users, connections, application queries, and objects on
each MySQL server increases. The Enterprise Monitor continually monitors the dynamic security,
performance, replication and schema relevant metrics of all MySQL servers, so as the number of
MySQL continues to grow, DBAs are kept up to date on potential problems and proactive measures
that can be implemented to ensure each server continues to operate at the highest levels of security,
performance and reliability.
The Enterprise Monitor is powered by a distributed web application that is installed and deployed within
the confines of the corporate firewall.
319
C.5: How is the Enterprise Monitor web application architected?
• Monitor Agent: A lightweight Java program that is installed on each of the monitored hosts. Its
purpose is to collect MySQL SQL and operating system metrics that allow the DBA to monitor the
overall health, availability and performance of the MySQL server and host. The Monitor Agent is the
only component within the application that touches or connects to the MySQL Server. It reports the
data it collects via XML over HTTP to the centralized Service Manager.
• Service Manager: The main server of the application. The Service Manager manages and stores the
data collections that come in from each monitor agent. It analyzes these collections using MySQL
provided best practice Advisor rules to determine the health, security, availability and performance
of each of the monitored MySQL Servers. The Service Manager also provides the content for the
Enterprise User Interface which serves as the client user interface for the distributed web application.
• Repository: A MySQL database that is used to stored data collections and application-level
configuration data.
Of the products on the market that monitor MySQL, SQL code and OS specific metrics, the MySQL
Enterprise Monitor is the only solution that is built and supported by the engineers at MySQL. Unlike
other solutions that report on raw MySQL and OS level metrics, the MySQL Enterprise Monitor is
designed to optimize the use of MySQL by proactively monitoring MySQL instances and providing
notifications and 'MySQL DBA expertise in a box' advice on corrective measures DBAs can take before
problems occur.
C.7: What versions of MySQL are supported by the MySQL Enterprise Monitor?
The MySQL Enterprise Monitor supports MySQL versions 5.1 and above.
C.8: What operating system platforms are supported by the MySQL Enterprise Monitor?
The Enterprise Monitor Service Manager is fully supported on most current versions of Linux, Windows,
and Windows Server Editions. The Monitor Agent supports any platform supported by the MySQL
Enterprise server. For the complete list of MySQL Enterprise supported operating systems and CPUs,
visit MySQL Supported Platforms and select MySQL Enteprise Monitor.
C.9: How are subscribers notified about the availability of new or updated MySQL Enterprise
Monitor, MySQL Enterprise Advisors and Advisor Rules?
Customers receive email notifications of new and updated MySQL Enterprise Monitor versions.
Questions
• C.3: What overhead can I expect if the MySQL Query Analyzer is enabled?
• C.4: What are the main features and benefits of the MySQL Query Analyzer?
• C.5: What are the typical use cases of the MySQL Query Analyzer?
320
• C.9: Does Query Analyzer enable me to monitor the disk reads and writes during a query?
• C.11: Will the Query Analyzer work without any special setup?
The MySQL Query Analyzer allows DBAs, developers and system administrators to improve
application performance by collecting, monitoring, and analyzing queries as they run on their MySQL
servers. http://www.mysql.com/products/enterprise/query.html
C.3: What overhead can I expect if the MySQL Query Analyzer is enabled?
Using MySQL 5.6, or higher, with Performance Schema enabled, there is no appreciable overhead.
C.4: What are the main features and benefits of the MySQL Query Analyzer?
For the complete features and benefits, see MySQL Enterprise Monitor Features and Benefits.
C.5: What are the typical use cases of the MySQL Query Analyzer?
The typical use cases for developers, DBAs and system administrators are:
• Developers – Monitor and tune application queries during development before they are promoted to
production.
• DBAs and System Administrators – Identify problem SQL code as it runs in production and advise
development teams on how to tune. This use case benefits the most from regular sampling of
queries as they are running, most often during non-peak hours.
Other products (free, open source and commercial) that provide MySQL query monitoring are
dependent on the MySQL Slow Query Log being enabled and available for sampling. While this
provides some time savings over the DBA collecting and parsing the Log, the Slow Query Log comes
with overhead and does not capture sub millisecond executions. The log data also grows very large
very quickly.
The MySQL Query Analyzer collects queries and execution statistics with no dependence on the SQL
Query Log, it captures all SQL statements sent to the MySQL server and provides an aggregated
view into the most expensive queries in number of executions and total execution time. It is also fully
supported as part of the MySQL Enterprise subscription.
The MySQL Query Analyzer is built into the MySQL Enterprise Monitor.
To experience the MySQL Enterprise Monitor for 30 days, visit the http://www.mysql.com/trials/
Yes, providing that exact node is monitored with an agent and query analyzer has been enabled for
that node. Note that you must be accessing your cluster data through a standard MySQL node for this
to work.
C.9: Does Query Analyzer enable me to monitor the disk reads and writes during a query?
321
No, that information is not available to the query analyzer, but many Advisors and graphs do handle
this information. An Agent monitors the host, which includes monitoring of the CPU, Disk, and Memory.
At this time, the query analyzer does not track server-side prepared statements. However the default
configurations for most client-side libraries for MySQL don't use them, they emulate them client-side,
and those will be tracked by the query analyzer.
C.11: Will the Query Analyzer work without any special setup?
With MySQL Server 5.6.14 and greater, Query Analyzer data is automatically (by default) collected
and displayed using the Performance Schema Statement Digests MySQL Server feature. If you are
monitoring an earlier MySQL Server version, then you can continue to use alternative methods of
providing query data to the Query Analyzer.
For information about the different methods of retrieving query data, see Section 32.1, “Providing
Query Analyzer Data”.
322
Appendix D MySQL Enterprise Monitor Support
Table of Contents
D.1 Diagnostics Report ............................................................................................................. 323
Introduction
To generate a diagnostic report file, select Diagnostics Report from the Help menu. The information
is provided as a time stamped Zip file (such as support-20160115T2238.zip). The information
contained in the report includes detailed information about your server (or multiple servers if
you selected a server group), including configuration, hardware, MySQL options/variables and
historical graphs. To view the information extracted, unzip the downloaded file and double-click the
index.html.
The Diagnostic Report is useful for debugging MySQL Enterprise Service Manager and MySQL
Enterprise Monitor Agent. When filling out a My Oracle Support (MOS) ticket, include this report.
• mysql-monitor-full.log: The full MySQL Enterprise Service Manager log file, that also
contains stack traces.
mysql-monitor-agent-full.log: A full built-in MySQL Enterprise Monitor Agent log file, that
also contains stack traces.
• product usage.html: A usage report for each MySQL Enterprise Monitor User Interface page.
• Replication n.json: The MySQL server replication structure, where n is the number of the
replication topology.
323
Diagnostics Report File Contents
324
MySQL Enterprise Monitor Glossary
These terms are commonly used in information about MySQL Enterprise Monitor.
A
access control
MySQL Enterprise Monitor Access Control enables you to manage asset visibility, application administration,
data access, roles, and users.
advisor
Advisors filter and evaluate the information collected by the Monitoring Agents and present it to the Events
page when defined thresholds are breached. Advisors can be in one or more Categories.
The MySQL Enterprise Monitor product comes with a number of default advisors. Based on your
organization's particular needs, you may create or adapt custom advisors.
See Also custom, notification, schedule, standard.
advisor category
A set of Advisors that are designed to enforce MySQL best practices for that specific category. For
example, there are predefined advisor categories such as Administration, Availability, Cluster,
Replication and Security.
See Also advisor.
Agent
The MySQL Enterprise Monitor component that actively collects data from a host and its MySQL server
instances. The data is transmitted to the Service Manager.
See Also instance, Service Manager.
Apache
The web server that runs the Tomcat servlet container that powers the UI. The MySQL Enterprise Monitor
Service Manager installation includes the Apache web server.
See Also Service Manager, Tomcat.
asset
A component that the MySQL Enterprise Monitor product monitors, such as a MySQL server instance, or a
CPU or file system within a server machine. Contrast with metric, which is a property within the component
that is measured.
See Also instance, metric.
Asset Selector
The Groups shown in the Asset Selector are the ones you create and manage (on the MySQL Instances
Dashboard, or during Agent installation) and those that are discovered automatically from monitoring
replication topologies. It is on the left side of many UI pages that controls content in the main-body of the
page.
See Also asset, graph.
autodiscovery
The mechanism that detects the set of master, slave, and master/slave servers in a replication
configuration, and displays the topology in the Server tree.
See Also Asset Selector, master, replication, slave, topology.
325
B
backlog
The agent backlog is a caching mechanism which stores monitoring data in the event the agent cannot
communicate with the MySQL Enterprise Service Manager. The backlog can store 10MB of monitored data in
active RAM.
See Also Agent.
blackout period
A function of Event Notification, it is a time period where events do not trigger notifications via the Event
Handler, in that information is not reported from a MySQL Server. Typically, this is during a maintenance
period when the database might go through an unusual workload that does not require raising any
notifications.
See Also Agent, instance, notification.
bottleneck
An aspect or component of a system whose capacity imposes a limit on performance. In MySQL Enterprise
Monitor, you identify bottlenecks in areas such as I/O or memory usage using graphs, and use advisors to
automatically raise events when problems occur.
See Also advisor, event, graph.
bundled
The “bundled MySQL server” refers to the MySQL server delivered with the MySQL Enterprise Monitor
product, to serve as the repository for the collected data.
See Also repository.
C
C
The C programming language.
canonical query
A synonym for normalized query.
See Also normalized query.
chain replication
In replication, a kind of topology where each server acts as a source/replica server, connected to at most
two other servers.
See Also circular replication, master/slave, replication, topology.
circular replication
In a replication configuration, a topology where every server is both a source and a replica, connected to
two other servers, forming a ring structure. Forms a ring structure.
See Also replication, ring replication, topology.
credentials
The MySQL Enterprise Monitor product interfaces with many different databases and other kinds of servers.
Each of these components can have its own login and security credentials. MySQL Enterprise Monitor pulls
performance data from the MySQL servers that you monitor, stores the resulting data in a repository that is
also a MySQL server, and sends alerts by communicating through other kinds of servers such as SMTP for e-
mail alerts and NMS for SNMP traps. It pulls support-related data from the My Oracle Support site. You view
the results in the UI, which is protected by its own login and optionally by LDAP authentication.
See Also LDAP, NMS, repository, SMTP, SNMP.
Critical
A high severity level for alarms. Within a rule, you can designate the threshold values that specify whether
an alarm triggers a Critical, Warning, or notice alert.
See Also advisor, event, Notice, threshold, Warning.
326
custom
User-created rules and graphs. Contrast with standard.
See Also graph, standard.
D
data collection item
Data values derived from server status variables, operating system status information, and MySQL table
information. You can reference these items using mnemonic names in expressions when you create or edit
rules.
See Also expression.
diagnostic report
The diagnostic report includes detailed information about your server (or multiple servers if you selected a
server group), including configuration, hardware, MySQL options/variables and historical graphs.
If you intend to communicate with MySQL Enterprise Monitor support, it is strongly recommended you provide
this report with your support request.
See Also My Oracle Support, service request, support issue.
E
event
The highest severity level for an advisor. Within an Advisor, you can designate the threshold values that
specify whether an event triggers an Emergency, Critical, Warning, or notice event.
See Also advisor, Critical, event, Notice, Warning.
event
Events are displayed if an Advisor Threshold is crossed, and are used to inform you of errors or potential
problems with your implementation. Monitor events using the Events page, and define how events are
handled by configuring Event Handling.
See Also Critical, Events, Notice, notification, Warning.
event handler
Event handlers are conditions associated with notifications. If the condition is met, the notification is sent.
See Also Critical, event, Events, Notice, notification, Warning.
Events
A page within the UI, for monitoring events. See Section 26.1, “Events”.
See Also event.
EXPLAIN plan
A textual report showing the internal mechanisms used by a query, and estimates for the “cost”, such as
amount of data to process, involved in each step. Performance monitoring involves checking whether queries
that are slow or frequently run could be sped up or made less resource-intensive, by examining the EXPLAIN
plan to check if the MySQL optimizer has chosen the most efficient ways to process indexes, order join
clauses, and so on. The MySQL Enterprise Monitor product includes a number of features for visualizing
EXPLAIN plans.
See Also query.
expression
The part of an Advisor that tests a metric against a threshold value.
See Also advisor, metric, threshold.
F
firewall
Additional considerations apply when the server you are monitoring is separated from the Service Manager
by a firewall.
327
See Also remote, Service Manager, SSL.
To diagnose possible issues due to full table scans, choose a time period of heavy SQL activity from one of
the graphs, use the Query Analyzer to locate queries that process large numbers of rows, and examine the
explain plan for the queries. The notation in the explain plan that indicates a full table scan is Type=ALL.
See Also EXPLAIN plan, graph, query, Query Analyzer.
G
graph
A visual representation of server activity, resources, or other metric over time. You view graphs using the
Metrics view.
See Also metric.
H
heartbeat
An implementation detail from MySQL Enterprise Monitor 2.x that is no longer present. A heartbeat signal
that is sent from an Agent to the Service Manager was defined as the heartbeat, and was present in the
connecting URL.
See Also Agent, Service Manager.
host
A computer running one or more instances of MySQL server. Typically each host is monitored by a MySQL
Enterprise Monitor Agent.
See Also instance, MySQL server.
I
instance
A mysqld daemon running on a MySQL server. There might be multiple instances running on the same
server machine. An instance is one of the asset MySQL Enterprise Monitor can monitor.
The Instances view manages the instances, and the MySQL Process Discovery advisor discovers local
instances on the host that the Agent is installed on.
See Also asset.
instrument
A persisted instance of a run-time metric evaluation. These may store the raw metric data, or the result of
an expression or function against a metric. Instruments are generally stored for things that are displayed in the
GUI, such as graph data.
See Also graph, metric.
inventory
Core information about a host or MySQL server instance. This data is collected by the Agent. The inventory
includes details such as the MySQL server version number, supported storage engines and replication
configuration. The data in the inventory helps to determine what other kinds of data can be collected from the
hosts and MySQL servers.
See Also Agent, instance, replication.
328
J
Java
The MySQL Enterprise Monitor product is partly built on Java technology, using the Tomcat servlet container
for the web-based GUI. It uses a JRE on the machine that runs the Service Manager, its performance is
affected by the Tomcat configuration parameters, the Agent is written in Java, and during troubleshooting you
might use diagnostic information from the Java environment.
See Also JDBC, Query Analyzer, Tomcat.
JDBC
The underlying database API used by many Java applications.
See Also Java.
JET
Oracle JavaScript Extension Toolkit (JET) is a collection of open source JavaScript libraries along with a set
of Oracle contributed JavaScript libraries used to build applications that consume and interact with Oracle
products and services.
See Also UI.
L
LDAP
An authentication mechanism that can control access to the UI. On Linux, Unix, and macOS systems, you
might have a separate LDAP server where each user has their own credentials. On Windows systems,
the LDAP protocol is used to connect to an Active Directory server for the same authentication purposes.
Typically, you map LDAP roles to corresponding MySQL Enterprise Monitor roles, to enable groups of users
to have basic or administrative access to the Dashboard without configuring each user individually, or giving
them a new user ID and password, or requiring extra work to revoke access when they leave the organization.
See Also credentials, role.
log file
MySQL Enterprise Monitor manages log files for the Tomcat, repository, agentand Service Manager
components, as well as a configuration report pertaining to the initial installation.
See Also repository, Service Manager, Tomcat.
Lua
A programming language that is used for parts of the Service Manager. Although you do not need to know
this language to operate MySQL Enterprise Monitor, you may need to specify options containing file paths
related to Lua scripts or libraries.
See Also Agent, Query Analyzer, Service Manager.
M
master
In a replication configuration, a database server that sends updates to a set of slave servers. It typically
dedicates most of its resources to write operations, leaving user queries to the slaves. In complex topologies,
a server can be both a master and a slave, known as a master/slave.
See Also master/slave, replica, replication, slave, source, topology.
master/slave
In replication, a server that acts as a slave to receive updates from another server, and also acts as a
master to propagate changes to another set of slave servers. Keeps the top-level master from having to
service too many slaves, and allows certain kinds of changes to be propagated to a subset of slaves. This
topology is represented as a tree, with all the intermediate nodes being master/slave servers.
See Also master, replication, slave, topology, tree.
metric
Any property that is measured using a numeric value. Within MySQL Enterprise Monitor, such measurements
can be displayed over time as a graph, or an alert can be sent when a threshold value is reached. Each
329
metric is collected from an asset. For example, how much time is taken by a database query, or how full is the
file system on a server machine.
See Also asset, graph, threshold.
mixed replication
In a replication configuration, a kind of topology consisting of different combinations of master, slave, and
dual-purpose master/slave servers.
See Also chain replication, circular replication, master, master/slave, replication, slave, topology, tree.
monitor
To view information about the state, health, activity, and history of a resource such as a MySQL server
instance. Monitoring can help to diagnose problems, spot worrisome trends before they turn into problems,
reassure when systems are operating normally, and notify when an operator needs to take corrective action.
With MySQL Enterprise Monitor, the component you interact with during monitoring is the UI.
See Also instance.
My Oracle Support
The website for filing bugs and service requests with Oracle Support. (Commercial customers such as
MySQL Enterprise Monitor users now use the official Oracle support channel rather than the MySQL bug
database.) In MySQL Enterprise Monitor, you interact with the support site through the What's New tab.
See Also service request, What's New tab.
MySQL server
The MySQL database instance running on a host computer. More than one MySQL instance can run on the
same computer, either as separate mysqld processes or through virtualization.
See Also instance.
N
.NET
A programming framework used by many Windows applications.
NMS
Acronym for Network Management System, a type of monitoring system that is separate from the MySQL
Enterprise Monitor product. If your network has this kind of monitoring capability, MySQL Enterprise Monitor
can notify the NMS of network issues by translating events into SNMP traps.
See Also event, SNMP.
normalized query
A condensed form of the query text used to treat similar queries as if they were identical, for monitoring
performance. When MySQL Enterprise Monitor normalizes queries, it disregards differences in keyword
capitalization, whitespace, and most comments. It replaces literal values with placeholders and transforms
multi-row insert statements and IN clauses, to group similar statements with different parameters when
measuring how much time is consumed by a particular type of query.
See Also canonical query, query.
Notice
A low severity level for events. Within an advisor, you can designate the threshold values that specify the
severity level that is triggered.
See Also advisor, Critical, event, threshold, Warning.
notification
The e-mail or other form of communication triggered by an alarm. Notifications are defined using Event
Handlers.
See Also event.
notification group
A collection of users who receive a notification when advisor alerts occur. These users might have login
credentials for the UI, but this is not a requirement.
See Also event, event handler, notification.
330
P
PHP
A scripting language typically embedded within web pages.
Q
QRTi
QRTi stands for "Query Response Time index". It is a "quality of service" measurement for each query, and it
uses the Apdex formula for that calculation. For more information about Apdex, see: Apdex on Wikipedia.
See Also Query Analyzer.
QuAn
An abbreviation for Query Analyzer used in some keyword names.
See Also Query Analyzer.
query
In the MySQL Enterprise Monitor context, any SQL statement whose performance might be monitored.
Includes not just SQL SELECT queries, but also DML statements such as INSERT, UPDATE, and DELETE, and
DDL statements such as CREATE TABLE and TRUNCATE TABLE.
See Also normalized query, slow query log.
Query Analyzer
The MySQL Enterprise Monitor component that tracks data about MySQL queries and summarizes that
data using graphs and tables. You interact with it (for example, filtering the displayed queries or selecting a
specific time period) using the Query Analyzer tab in the UI.
See Also graph, query, Query Analyzer view.
R
remote
Additional considerations apply when the server you are monitoring is separated from the Service Manager,
for example by a wide-area network or by a firewall.
See Also firewall, remote monitoring, SSL.
remote monitoring
An Agent on one host that monitors different hosts, and MySQL instances on different hosts.
Remote monitoring has limitations, versus local monitoring. Remote monitoring does not provide Operating
System level data, such as CPU, file, and network utilization information.
See Also Agent, remote.
replica
Synonym for slave in replication topologies.
In a replication configuration, a database server that receives updates from a source server. Typically used
to service user queries, to minimize the query load on the master. In complex topologies, a server can be
both a source and a replica, known as a source/replica.
See Also master, master/slave, replication, topology.
replication
A set of database features that mirrors the same data across a set of servers. Used for reliability in case
of server failure, and to speed up queries by dividing the work across servers. Because replication involves
so many aspects of reliability and performance, it is an important aspect to monitor and has a dedicated
Replication view in the UI.
331
See Also topology.
Replication view
A view within the UI that monitors aspects of replication. See Chapter 28, Replication Dashboard.
See Also replication.
repository
The database that stores the monitoring data collected by the MySQL Enterprise Monitor product. It can be
a separate database instance that is part of the MySQL Enterprise Monitor installation (the bundled MySQL
server), or you can use an existing database of your own. The bundled MySQL server is a level of MySQL
database that is fully tested with the MySQL Enterprise Monitor product, and can be kept separate from your
other databases to avoid any extra load on them. You might use an existing server that has spare capacity,
fast storage devices, tuned configuration parameters, a backup system, or other conveniences that can
benefit the MySQL Enterprise Monitor data storage as well.
See Also bundled, instance.
ring replication
See circular replication.
role
A level of access privilege for the UI. One of manager (highest privilege), dba, read-only, or agent
(specialized privilege for sending data). Each user account registered with the Dashboard must have one of
these roles. Components such as the Agent and the use the agent role. To simplify the process of granting
credentials for large numbers of users, you can map LDAP roles to these MySQL Enterprise Monitor roles.
See Also Agent, credentials, LDAP.
S
schedule
Determines how often each advisor is evaluated.
See Also advisor.
scope
A dynamic filter against an asset class.
See Also asset.
Service Manager
The core MySQL Enterprise Monitor component that receives the monitoring data from the Agent and
Query Analyzer components. It displays this information through the GUI web-interface, and manages the
Advisors, Events, and Event Handlers, as well as access to Reporting, Graphing, and Query Analysis.
See Also advisor, Agent, event, Query Analyzer.
service request
Generic term for a bug that you have filed or a support request that you have opened, on the My Oracle
Support site. Formerly, we referred to these as support issues.
See Also My Oracle Support, support issue.
Settings
A page in the UI for viewing or editing configuration settings of the Service Manager.
See Also Service Manager.
severity
A measure of the seriousness of an Event. Event Handling policies can take into account the severity level in
determining the appropriate course of Notification action.
See Also event handler.
slave
In a replication configuration, a database server that receives updates from a master server. Typically used
to service user queries, to minimize the query load on the master. In complex topologies, a server can be
both a master and a slave, known as a master/slave.
332
See Also master, master/slave, replica, replication, source, topology.
SMTP
The e-mail protocol for sending alerts as e-mail messages. To send alerts this way, you configure e-mail
settings similar to those in an e-mail client.
SNMP
A protocol for sending event notifications (“SNMP traps”) to an NMS. The MySQL Enterprise Monitor
product can turn notifications for selected rules into SNMP traps. In contrast to typical alerts that are only
raised when some issue occurs, SNMP traps are broadcast for all state changes, so that corrective action can
be cancelled when an issue is cleared.
See Also NMS, notification.
source
Synonym for master in replication topologies.
In a replication configuration, a database server that sends updates to a set of replica servers. It typically
dedicates most of its resources to write operations, leaving user queries to the replicas. In complex
topologies, a server can be both a source and a replica, known as a source/replica.
See Also master/slave, replica, replication, slave, topology.
source/replica
In replication, a server that acts as a replica to receive updates from another server, and also acts as a
source to propagate changes to another set of replica servers. Keeps the top-level source from having to
service too many replicas, and allows certain kinds of changes to be propagated to a subset of replicas. This
topology is represented as a tree, with all the intermediate nodes being source/replica servers.
See Also replica, replication, source, topology, tree.
SSL
For MySQL Enterprise Monitor, the default port used for SSL connections is 18443. If you are connecting
using SSL, the built-in MySQL Enterprise Monitor certificate is self-signed and may be highlighted as “unsafe”
within the browser on initial connection. To prevent problems accessing the site, add an exception for the
certificate to your browser for this server.
standard
The predefined advisors and graphs supplied as part of MySQL Enterprise Monitor. Contrast with custom.
See Also custom, graph.
Status Summary
The Status Summary widget is displayed on top of every page, updates dynamically, and shows current
status counters for Hosts monitored, MySQL Instances monitored, MySQL Instances with invalid connection
configurations, Unmonitored MySQL Instances, and Emergency Events. The counters are live links for
displaying details or resolving the issues they are reporting.
support issue
Former term for bugs and service requests. In the My Oracle Support system, now known as a service
request, which is the preferred term.
See Also service request.
T
table scan
See full table scan.
333
threshold
Thresholds are the predefined limits for Advisors. If the monitored value breaches the defined threshold,
an event is generated and displayed on the Events page for the asset. Advisor thresholds use a variety of
different value types, depending on the monitored value. Some use percentages, such as percentage of
maximum number of connections. Others use timed durations, such as the average statement execution time.
It is also possible to check if specific configuration elements are present or correct.
See Also Critical, event, expression, Notice, Warning.
Tomcat
Apache Tomcat is a component of the Service Manager. It is the servlet engine that powers the UI.
See Also Apache, Java, Service Manager.
topology
In a replication configuration, the way in which the different source, replica, and dual-purpose source/
replica servers are connected. In MySQL Enterprise Monitor, the configurations are classified in the
Replication view as one of TREE, RING, or MIXED.
See Also master, master/slave, replication, Replication view, slave.
topology view
A graphical representation of the replication topology displayed in a dedicated Topology view.
See Also replica, replication, Replication view, source.
tree
A data structure often used to represent relationships between MySQL servers. In the UI, servers are
displayed in the Server Tree sidebar. In a replication configuration, setting up some machines as dual-
purpose master/slave servers produces a nesting relationship that is represented in the Server Tree.
See Also Asset Selector, master/slave, replication.
trending
Predicting when a problem may occur. For example, predicting that a disk is expected to run out of disk
space 30 days in the future.
U
UI
The UI is a web-based interface to the MySQL Enterprise Service Manager. The back end is a Java
application powered by the Tomcat server.
UUID
A unique identifier used to distinguish each MySQL instance, host machine, and agent. Because there is so
much flexibility in spreading components across multiple systems or running multiple instances and agents on
the same system, the combination of these different UUIDs identifies where information came from and the
source of any issues. Always generate a new UUID for any one of these components, rather than copying or
reusing an existing UUID value.
In MySQL 5.5, or earlier, the UUID for the server is stored in the table mysql.inventory. When a
component such as the Agent connects to that MySQL server, the applicable MySQL user must have
privileges to read this table.
See Also Agent, instance.
W
Warning
A medium severity level for alarms. Within a rule, you can designate the threshold values that specify for
each severity level.
See Also advisor, Critical, event, Notice, notification, threshold.
334
See Also My Oracle Support.
335
336
Binary Log Row Based Images Excessive, 165
Index Binary Log Space Exceeds Specified Limit, 165
Binary Log Usage Exceeding Disk Cache Memory
A Limits, 159
access control, 325 Binary Logging Is Limited, 148
Administration Advisors, 147 Binary Logging Not Enabled, 148
32-Bit Binary Running on 64-Bit AMD Or Intel Binary Logging Not Synchronized To Disk At Each
System, 147 Write, 148
Binary Log Debug Information Disabled, 148 Binary Logs Automatically Removed Too Quickly,
Binary Logging Is Limited, 148 148
Binary Logging Not Enabled, 148 Cluster Data Node Redo Buffer Space Getting Low,
Binary Logging Not Synchronized To Disk At Each 155
Write, 148 Cluster Data Node Redo Log Space Getting Low,
Binary Logs Automatically Removed Too Quickly, 155
148 Cluster Data Node Undo Buffer Space Getting Low,
Database May Not Be Portable Due To Identifier 155
Case Sensitivity, 149 Cluster Data Node Undo Log Space Getting Low,
Event Scheduler Disabled, 149 155
General Query Log Enabled, 149 Cluster DiskPageBuffer Hit Ratio Is Low, 155
Host Cache Size Not Sufficient, 149 CPU Utilization Advisor, 184
In-Memory Temporary Table Size Limited By Database May Not Be Portable Due To Identifier
Maximum Heap Table Size, 150 Case Sensitivity, 149
InnoDB Status Truncation Detected, 150 Database-level Privileges on All Databases, 191
InnoDB Strict Mode Is Off, 150 Duplicate Host Identity, 183
InnoDB Tablespace Cannot Automatically Expand, Duplicate MySQL Server UUID, 183
151 Event Scheduler Disabled, 149
InnoDB Transaction Logs Not Sized Correctly, 151 Excessive Disk Temporary Table Usage Detected,
Multiple Threads Used When Repairing MyISAM 159
Tables, 151 Excessive Number of Locked Processes, 160
MySQL Server No Longer Eligible For Oracle Excessive Number of Long Running Processes, 160
Premier Support, 151 Excessive Number of Long Running Processes
Next-Key Locking Disabled For InnoDB But Binary Locked, 160
Logging Enabled, 151 Excessive Percentage Of Attempted Connections To
No Value Set For MyISAM Recover Options, 152 The Server Have Failed, 154
Table Cache Set Too Low For Startup, 152 Filesystem Free Space Advisor, 185
Time Zone Data Not Loaded, 152 Flush Time Set To Non-Zero Value, 160
Warnings Not Being Logged, 152 General Query Log Enabled, 149
--adminpassword option, 66 Group Replication, 188
--adminuser option, 66 Group Replication Configuration, 189
advisor, 325 Group Replication Status, 190
advisor category, 325 Host Cache Size Not Sufficient, 149
Advisors, 179 HTTP Server Performance, 157
32-Bit Binary Running on 64-Bit AMD Or Intel In-Memory Temporary Table Size Limited By
System, 147 Maximum Heap Table Size, 150
Account Has An Overly Broad Host Specifier, 191 Indexes Not Being Used Efficiently, 160
Account Has Global Privileges, 191 InnoDB Buffer Cache Has Sub-Optimal Hit Rate, 156
Account Has Old Insecure Password Hash, 173 InnoDB Buffer Pool Writes May Be Performance
Account Requires Unavailable Authentication Plug- Bottleneck, 161
ins, 173 InnoDB Flush Method May Not Be Optimal, 161
Agent Health Advisor, 179 InnoDB Log Buffer Flushed To Disk After Each
Attempted Connections To The Server Have Failed, Transaction, 161
153 InnoDB Log Waits May Be Performance Bottleneck,
AUTO_INCREMENT Field Limit Nearly Reached, 161
169 InnoDB Not Using Newest File Format, 161
Average Statement Execution Time Advisor, 187 InnoDB Status Truncation Detected, 150
Binary Log Checksums Disabled, 164 InnoDB Strict Mode Is Off, 150
Binary Log Debug Information Disabled, 148 InnoDB Tablespace Cannot Automatically Expand,
Binary Log File Count Exceeds Specified Limit, 165 151
337
InnoDB Transaction Logs Not Sized Correctly, 151 Query Pileup Advisor, 187, 188
Insecure Password Authentication Option Is Replica Execution Position Too Far Behind, 166
Enabled, 173 Replication Configuration Advisor, 165
Insecure Password Generation Option Is Enabled, Replication Status Advisor, 166
174 Replication Too Far Behind, 166
Key Buffer Size May Not Be Optimal For Key Cache, Root Account Can Login Remotely, 175
156 Root Account Without Password, 176
LOCAL Option Of LOAD DATA Statement Is Server Contains Default "test" Database, 176
Enabled, 174 Server Has Accounts Without A Password, 176
Master Not Verifying Checksums When Reading Server Has Anonymous Accounts Not Being Used
From Binary Log, 166 As Proxies, 176
Maximum Connection Limit Nearing Or Reached, Server Has No Locally Authenticated Root User, 177
154 Server Includes A Root User Account, 177
Multiple Threads Used When Repairing MyISAM Server-Enforced Data Integrity Checking Disabled,
Tables, 151 171
MyISAM Concurrent Insert Setting May Not Be Server-Enforced Data Integrity Checking Not Strict,
Optimal, 162 171
MyISAM Indexes Found with No Statistics, 170 SHA-256 Password Authentication Not Enabled, 176
MySQL Agent Memory Usage Excessive, 153 Slave Detection Of Network Outages Too High, 166
MySQL Agent Not Reachable, 153 Slave Has Login Accounts With Inappropriate
MySQL Availability, 154 Privileges, 167
MySQL Enterprise Backup Health Advisor, 181 Slave Not Configured As Read Only, 167
MySQL Process Discovery Advisor, 182 Slave Not Verifying Checksums When Reading
MySQL Server Has Been Restarted, 154 From Relay Log, 167
MySQL Server No Longer Eligible For Oracle Slave Relay Log Space Is Very Large, 167, 167
Premier Support, 151 Slave SQL Processing Not Multi-Threaded, 168
MySQL User Account, 191 Slave Without REPLICATION SLAVE Accounts, 168
Next-Key Locking Disabled For InnoDB But Binary SQL Statement Generates Warnings or Errors, 188
Logging Enabled, 151 Support Diagnostics, 158
No Value Set For MyISAM Recover Options, 152 Symlinks Are Enabled, 177
Object Changed: Database Has Been Altered, 169 sys Schema Install Advisor, 184
Object Changed: Database Has Been Created, 169 Table Cache Not Optimal, 156
Object Changed: Database Has Been Dropped, 169 Table Cache Set Too Low For Startup, 152
Object Changed: Function Has Been Created, 170 Table Lock Contention Excessive, 163
Object Changed: Function Has Been Dropped, 170 Tables Found with No Primary or Unique Keys, 172
Object Changed: Index Has Been Created, 170 Thread Cache Not Enabled, 163
Object Changed: Index Has Been Dropped, 170 Thread Cache Size May Not Be Optimal, 157
Object Changed: Table Has Been Altered, 171 Thread Pool Stall Limit Too Low, 163
Object Changed: Table Has Been Created, 171 Thread Pooling Not Enabled, 163
Object Changed: Table Has Been Dropped, 172 Time Zone Data Not Loaded, 152
Object Changed: User Has Been Dropped, 172 Too Many Concurrent Queries Running, 164
Object Changes Detected, 171 Unsupported Agent Version, 158
Policy-Based Password Validation Does Not Perform User Has Rights To Database That Does Not Exist,
Dictionary Checks, 174 177
Policy-Based Password Validation Is Weak, 175 User Has Rights To Table That Does Not Exist, 177
Policy-Based Password Validation Not Enabled, 175 Users Can View All Databases On MySQL Server,
Prepared Statements Not Being Closed, 162 178
Prepared Statements Not Being Used Effectively, Warnings Not Being Logged, 152
162 advisors
Privilege Alterations Detected: Privileges Granted, creating, 269, 274
175 agent
Privilege Alterations Detected: Privileges Revoked, configuration utilities, 81
175 installation, 37
Privilege Alterations Have Been Detected, 175 troubleshooting, 48
Query Analysis Reporting, 188 Agent, 325
Query Cache Has Sub-Optimal Hit Rate, 156 Managing agents, 121
Query Cache Is Excessively Fragmented, 162 Agent Advisors, 152
Query Cache Potentially Undersized, 156 Agent Health Advisor, 179
338
MySQL Agent Memory Usage Excessive, 153 C
MySQL Agent Not Reachable, 153
C, 326
--agent_autocreate option, 72
canonical query, 326
--agent_installtype option, 73
chain replication, 326
--agentpassword option, 69
--checkmysqlhost option, 69
--agentservicename option, 74
circular replication, 326
--agentuser option, 69
Cluster
Apache, 325
Managing clusters, 124
Apple OS X, 44, 86, 309
Cluster Advisors
architecture, 7
Cluster Data Node Redo Buffer Space Getting Low,
asset, 325
155
Asset management
Cluster Data Node Redo Log Space Getting Low,
inventory, 121
155
Asset Selector, 325
Cluster Data Node Undo Buffer Space Getting Low,
Assets
155
Deleting Assets, 125
Cluster Data Node Undo Log Space Getting Low,
management, 121
155
autodiscovery, 325
Cluster DiskPageBuffer Hit Ratio Is Low, 155
Availability Advisors, 153
config.properties file, 309
Attempted Connections To The Server Have Failed,
Configuration, 93
153
configuration files, 309
Excessive Percentage Of Attempted Connections To
configuration utilities
The Server Have Failed, 154
agent, 81
Maximum Connection Limit Nearing Or Reached,
agent.bat, 81
154
agent.sh, 81
MySQL Availability, 154
config.bat, 79
MySQL Server Has Been Restarted, 154
config.sh, 79
service manager, 79
B Configuration View
backlog, 326 Configuration Filters, 101
backup --createBackup option, 69
restore, 53 --createDataBackup option, 63
Backup Advisors credentials, 326
MySQL Enterprise Backup Health Advisor, 181 Critical, 326
Backup Dashboard custom, 327
Backup Details, 241 custom data collection
filter, 240 customizing advisors, 275
Group Overview, 239
History, 240 D
Instance Overview, 239
data collection item, 327
Backup Details
--dbhost option, 67
Backup Command, 242
--dbname option, 67
Backup Configuration, 242
dbpool.default.initialSize option, 312
Backup Status, 241
dbpool.default.maxActive option, 312
InnoDB Configuration, 242
dbpool.default.maxIdle option, 312
Progress Log, 242
dbpool.default.maxWaitMillis option, 312
--backupdir option, 63
dbpool.default.minEvictableIdleTimeMillis option, 312
backups, 58
dbpool.default.minIdle option, 312
blackout
dbpool.default.timeBetweenEvictionRunsMillis option,
blackout period, 279
312
blackout scripting, 281
dbpool.ui.initialSize option, 311
command line, 281
dbpool.ui.maxActive option, 311
curl, 281
dbpool.ui.maxIdle option, 311
blackout period, 326
dbpool.ui.maxWaitMillis option, 311
bottleneck, 326
dbpool.ui.minEvictableIdleTimeMillis option, 311
browsers, 29
dbpool.ui.minIdle option, 311
bundled, 326
dbpool.ui.timeBetweenEvictionRunsMillis option, 311
339
--dbport option, 67 Inventory
--debuglevel option, 64, 70 Deleting Assets, 125
--debugtrace option, 64, 70 inventory, 328
Deleting Assets, 125 Inventory management
diagnostic report, 323, 327 assets, 121
Diagnostics Report, 323
J
E Java, 329
event, 327, 327 Java VM
event handler, 327 installation, 31
Events, 97, 327 JDBC, 329
EXPLAIN plan, 327 JET, 329
expression, 327
expressions, 272 L
LDAP, 329
F --limitedpassword option, 73
FAQs, 317 --limiteduser option, 73
Filtering Linux, 45, 309
Named Filters, 100 locale, 96
firewall, 327 log file, 329
firewall issues, 47 MySQL Enterprise Service Manager, 309
--forceRestart option, 67 Logout
full table scan, 328 User Menu, 99
Lua, 329
G
--generalpassword option, 73 M
--generaluser option, 72
Mac OS X, 44, 86, 309
graph, 328
macOS, 44, 86, 309
graphs
--managerhost option, 70
creating, 269, 274
--managerport option, 70
Group Replication Advisors
master, 329
Group Replication Configuration, 189
master/slave, 329
Group Replication Status, 190
Memory Usage Advisors, 155
InnoDB Buffer Cache Has Sub-Optimal Hit Rate, 156
H Key Buffer Size May Not Be Optimal For Key Cache,
heartbeat, 328 156
--help option, 63, 74 Query Cache Has Sub-Optimal Hit Rate, 156
host, 328 Query Cache Potentially Undersized, 156
Hosts Table Cache Not Optimal, 156
Managing hosts, 122 Thread Cache Size May Not Be Optimal, 157
Memory Usage Report, 264
I Menus
InnoDB Buffer Pool Usage Report, 265 Metrics, 97
installation metric, 329
agent, 37 MIB file, 309
backup, 53 mixed replication, 330
post-install tasks, 55 --mode option, 63, 71
service manager, 31 monitor, 330
unattended, 61 installation, 31
uninstalling, 85 Monitoring and Support Advisors
--installdir option, 64, 70 sys Schema Install Advisor, 184
--installer option, 64 Monitoring and Support Services Advisors, 157
--installer-language option, 70 Duplicate Host Identity, 183
instance, 328 Duplicate MySQL Server UUID, 183
Instance Status HTTP Server Performance, 157
Status Summary, 99 MySQL Process Discovery Advisor, 182
instrument, 328 Support Diagnostics, 158
340
Unsupported Agent Version, 158 InnoDB Log Waits May Be Performance Bottleneck,
My Oracle Support, 330 161
MySQL Enterprise Backup, 58 InnoDB Not Using Newest File Format, 161
MySQL Server MyISAM Concurrent Insert Setting May Not Be
installation, 31 Optimal, 162
MySQL server, 330 Prepared Statements Not Being Closed, 162
mysql-monitor-agent.log file, 313 Prepared Statements Not Being Used Effectively,
--mysqlconnectiongroup option, 74 162
--mysqlconnmethod option, 71 Query Cache Is Excessively Fragmented, 162
mysqldump, 58 Table Lock Contention Excessive, 163
--mysqlhost option, 72 Thread Cache Not Enabled, 163
--mysql-identity-source option, 65 Thread Pool Stall Limit Too Low, 163
--mysqlpassword option, 72 Thread Pooling Not Enabled, 163
--mysqlport option, 72 Too Many Concurrent Queries Running, 164
--mysqlsocket option, 72 performance schema, 289
--mysqluser option, 72 performance tuning, 75
--mysql_installation_type option, 67 PHP, 331
ports
N MySQL server for monitoring, 72
Named Filters MySQL server for repository, 67
Creating Filters, 100 service manager, 65, 71
NDB Cluster Advisors, 154 Tomcat, 65
NDB Cluster Memory Usage Report Tomcat SSL, 65
NDB Cluster, 266 post-install tasks, 55
.NET, 330
NMS, 330 Q
normalized query, 330 QRTi, 331
Notice, 330 QuAn, 331
notification, 330 query, 331
notification group, 330 Query Analysis Advisors, 187
Average Statement Execution Time Advisor, 187
O Query Analysis Reporting, 188
Operating System Advisors, 158 Query Pileup Advisor, 187, 188
CPU Utilization Advisor, 184 SQL Statement Generates Warnings or Errors, 188
Filesystem Free Space Advisor, 185 Query Analyzer, 98, 289, 331
--optionfile option, 63, 73 Query Details, 295
OS X, 44, 86, 309 supplying query data, 289
overview, 7 Query Analyzer view, 331
Overview, 229
R
P remote, 331
Performance Advisors, 158 remote monitoring, 331
Binary Log Usage Exceeding Disk Cache Memory replica, 331
Limits, 159 Replication, 245
Excessive Disk Temporary Table Usage Detected, replication, 331
159 Replication Advisors, 164
Excessive Number of Locked Processes, 160 Binary Log Checksums Disabled, 164
Excessive Number of Long Running Processes, 160 Binary Log File Count Exceeds Specified Limit, 165
Excessive Number of Long Running Processes Binary Log Row Based Images Excessive, 165
Locked, 160 Binary Log Space Exceeds Specified Limit, 165
Flush Time Set To Non-Zero Value, 160 Master Not Verifying Checksums When Reading
Indexes Not Being Used Efficiently, 160 From Binary Log, 166
InnoDB Buffer Pool Writes May Be Performance Replica Execution Position Too Far Behind, 166
Bottleneck, 161 Replication Configuration Advisor, 165
InnoDB Flush Method May Not Be Optimal, 161 Replication Status Advisor, 166
InnoDB Log Buffer Flushed To Disk After Each Replication Too Far Behind, 166
Transaction, 161 Slave Detection Of Network Outages Too High, 166
341
Slave Has Login Accounts With Inappropriate Policy-Based Password Validation Does Not Perform
Privileges, 167 Dictionary Checks, 174
Slave Not Configured As Read Only, 167 Policy-Based Password Validation Is Weak, 174
Slave Not Verifying Checksums When Reading Policy-Based Password Validation Not Enabled, 175
From Relay Log, 167 Privilege Alterations Detected: Privileges Granted,
Slave Relay Log Space Is Very Large, 167, 167 175
Slave SQL Processing Not Multi-Threaded, 168 Privilege Alterations Detected: Privileges Revoked,
Slave Without REPLICATION SLAVE Accounts, 168 175
Replication view, 332 Privilege Alterations Have Been Detected, 175
repository, 332 Root Account Can Login Remotely, 175
database name, 67 Root Account Without Password, 176
--restartImmediately option, 69 Server Contains Default "test" Database, 176
restore Server Has Accounts Without A Password, 176
backup, 53 Server Has Anonymous Accounts Not Being Used
restoring As Proxies, 176
backup, 53 Server Has No Locally Authenticated Root User, 177
role, 332 Server Includes A Root User Account, 177
rules SHA-256 Password Authentication Not Enabled, 176
blackout periods, 279 Symlinks Are Enabled, 177
creating, 269 User Has Rights To Database That Does Not Exist,
variable substitution, 272 177
User Has Rights To Table That Does Not Exist, 177
S Users Can View All Databases On MySQL Server,
schedule, 332 178
Schema Advisors, 168 service manager
AUTO_INCREMENT Field Limit Nearly Reached, configuration utility, 79
169 database name, 67
MyISAM Indexes Found with No Statistics, 170 installation, 31
Object Changed: Database Has Been Altered, 169 Service Manager, 332
Object Changed: Database Has Been Created, 169 service request, 332
Object Changed: Database Has Been Dropped, 169 services
Object Changed: Function Has Been Created, 170 starting and stopping, 34
Object Changed: Function Has Been Dropped, 170 Settings, 332
Object Changed: Index Has Been Created, 170 severity, 332
Object Changed: Index Has Been Dropped, 170 slave, 332
Object Changed: Table Has Been Altered, 171 slow query log, 333
Object Changed: Table Has Been Created, 171 SMTP, 333
Object Changed: Table Has Been Dropped, 172 SNMP, 333
Object Changed: User Has Been Dropped, 172 SNMP traps, 309
Object Changes Detected, 170 source, 333
Server-Enforced Data Integrity Checking Disabled, source/replica, 333
171 sql_mode, 46
Server-Enforced Data Integrity Checking Not Strict, SSH tunneling, 47
171 SSL, 65, 333
Tables Found with No Primary or Unique Keys, 172 standard, 333
scope, 332 starting
Security Advisors, 172, 191 MySQL Enterprise Monitor service, 35
Account Has Old Insecure Password Hash, 173 MySQL Enterprise Monitor services, 35
Account Requires Unavailable Authentication Plug- Status Summary, 333
ins, 173 Instance Status, 99
Insecure Password Authentication Option Is stopping
Enabled, 173 MySQL Enterprise Monitor service, 35
Insecure Password Generation Option Is Enabled, MySQL Enterprise Monitor services, 35
174 support files
LOCAL Option Of LOAD DATA Statement Is diagnostic report, 323
Enabled, 174 support issue, 333
MySQL Enterprise Audit Plugin, 191 --system-size option, 65
MySQL User Account, 191
342
T
Table Statistics Report, 261
threshold, 334
thresholds, 272
timezone, 96
Tomcat, 334
installation, 31
starting and stopping, 35
--tomcatport option, 65
--tomcatsslport option, 65
topology, 334
topology view, 334
tree, 334
trending, 334
troubleshooting, 48
tuning, 75
U
UI, 334
unattended installation, 61
--unattendedmodeui option, 66, 73
uninstalling, 85, 85
Unix, 45, 309
User Menu
Logout, 99
User Preferences, 99
User Preferences
User Menu, 99
User Statistics Report, 262
UUID, 334
V
variable substitution, 272
--version option, 63, 73
W
Warning, 334
Web browsers, 29
What's New tab, 334
Wiki markup, 273
Windows, 35, 43, 85, 309
343
344