Articles on: Plugins

Monitoring MySQL



Metrics


The following metrics are submitted to Nixstats.

max_used_connections
open_files
open_tables
qcache_free_blocks
qcache_free_memory
qcache_total_blocks
slave_open_temp_tables
threads_cached
threads_connected
threads_running
uptime
aborted_clients
aborted_connects
binlog_cache_disk_use
binlog_cache_use
bytes_received
bytes_sent
com_delete
com_delete_multi
com_insert
com_insert_select
com_load
com_replace
com_replace_select
com_select
com_update
com_update_multi
connections
created_tmp_disk_tables
created_tmp_files
created_tmp_tables
key_reads
key_read_requests
key_writes
key_write_requests
max_used_connections
open_files
open_tables
opened_tables
qcache_free_blocks
qcache_free_memory
qcache_hits
qcache_inserts
qcache_lowmem_prunes
qcache_not_cached
qcache_queries_in_cache
qcache_total_blocks
questions
select_full_join
select_full_range_join
select_range
select_range_check
select_scan
slave_open_temp_tables
slave_retried_transactions
slow_launch_threads
slow_queries
sort_range
sort_rows
sort_scan
table_locks_immediate
table_locks_waited
threads_cached
threads_connected
threads_created
threads_running

Dependencies


MySQL-python

Run apt-get install python-mysqldb on debian based distro's or yum install MySQL-python to install the required plugin. Alternatively you can run pip install MySQL-python .

If you're running python3 you have to run apt-get install python3-mysqldb or pip3 install mysqlclient (mysql-devel is required on CentOS yum install mysql-devel)

Create a mysql user



Create a mysql user that has access to the performance_schema database:

sudo mysql -e "CREATE USER 'nixstats'@'localhost' IDENTIFIED BY 'safeandsecurepassword';"
sudo mysql -e "GRANT PROCESS ON *.* TO 'nixstats'@'localhost';"
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'nixstats'@'localhost';"


In case you want to enable monitoring of a replica you will have to run the following query as well:

sudo mysql -e "grant replication client on *.* to 'nixstats'@'localhost';"


Configure the plugin


To enable the plugin edit the nixstats configuration file. This file is usually located at /etc/nixstats.ini.

Add the following settings to the end of the file.

[mysql]
enabled=yes
username=nixstats
password=safeandsecurepassword
host=127.0.0.1
database=performance_schema
port=3306
;socket=null


Test to see if the plugin is working by running nixstatsagent --test mysql. It should show the following metrics:

mysql:
{
    "aborted_clients": 0,
    "aborted_connects": 0,
    "binlog_cache_disk_use": 0,
    "binlog_cache_use": 0,
    "bytes_received": 0,
    "bytes_sent": 0,
    "com_delete": 0,
    "com_delete_multi": 0,
    "com_insert": 0,
    "com_insert_select": 0,
    "com_load": 0,
    "com_replace": 0,
    "com_replace_select": 0,
    "com_select": 0,
    "com_update": 0,
    "com_update_multi": 0,
    "connections": 0,
    "created_tmp_disk_tables": 0,
    "created_tmp_files": 0,
    "created_tmp_tables": 0,
    "key_read_requests": 0,
    "key_reads": 0,
    "key_write_requests": 0,
    "key_writes": 0,
    "max_used_connections": 2.0,
    "open_files": 6.0,
    "open_tables": 71.0,
    "opened_tables": 0,
    "qcache_free_blocks": 1.0,
    "qcache_free_memory": 67091584.0,
    "qcache_hits": 0,
    "qcache_inserts": 0,
    "qcache_lowmem_prunes": 0,
    "qcache_not_cached": 0,
    "qcache_queries_in_cache": 0,
    "qcache_total_blocks": 1.0,
    "questions": 0,
    "select_full_join": 0,
    "select_full_range_join": 0,
    "select_range": 0,
    "select_range_check": 0,
    "select_scan": 0,
    "slave_open_temp_tables": 0.0,
    "slow_launch_threads": 0,
    "slow_queries": 0,
    "sort_range": 0,
    "sort_rows": 0,
    "sort_scan": 0,
    "table_locks_immediate": 0,
    "table_locks_waited": 0,
    "threads_cached": 1.0,
    "threads_connected": 1.0,
    "threads_created": 0,
    "threads_running": 1.0,
    "uptime": 59949.0
}


Now you can restart the agent service nixstatsagent restart to start monitoring MySQL.

Updated on: 18/03/2020

Was this article helpful?

Share your feedback

Cancel

Thank you!