Table of Contents
Check Mysql / mariadb server
Script: check_mysqlserver
check_mysqlserver is a plugin execute different checks on a mysql server instance.
The kind of check is defined by a parameter -m METHOD
.
Requirements
-
mysql
(mysql client as cli tool) - The icinga user needs to connect to the database server (see Installation).
Standalone installation
From this repository you need next to this script:
-
inc_pluginfunctions
shared function for all IML checks written in bash
Syntax
$ check_mysqlserver [-i|-u|-m METHOD]
______________________________________________________________________
CHECK_MYSQLSERVER
v1.2
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_mysqlserver.html
______________________________________________________________________
USAGE:
check_mysqlserver [OPTIONS] -m METHOD
OPTIONS:
-h this help
-i install monitoring user (must be executed as root)
-u uninstall monitoring user (must be executed as root)
PARAMETERS:
-m method; valid methods are:
connections current/ max connections
connects connects per min and aborted connections/ clients
commands current running statements insert, select, ...
qcache-blocks query cache blocks total vs free
qcache-queries cached / non cached queries; low memeory prunes
qcache-hits query cache efficiency: cached vs non cached and inserted
EXAMPLES:
check_mysqlserver -i
check_mysqlserver -m commands
Installation
To give access to the database there is the param -i
(for “install”).
This command needs to be run as root.
./check_mysqlserver -i
This creates a database user “icingamonitor” with a 64 byte random password.
To store the credentials a file file be created: /etc/icingaclient/.my.cnf
. It is the known mysql password file. The mysql check plugin sets $HOME to /etc/icingaclient and this config will be found automatically.
cat /etc/icingaclient/.my.cnf
#
# generated on Tue Jun 8 10:01:31 CEST 2021
#
[client]
user=icingamonitor
host=localhost
password=qrYEiPG33qNoedO4oWNrmtDOtEmQ9tw8pYEYcPbuYphUweemJEOC4fzZXIWJFvZ5
To test the connection run ./check_mysqlserver -m connections
.
Checks
connections
current/ max connections
./check_mysqlserver -m connections
OK: Mysql connections :: current/ max connections
max_connections: 151
Max_used_connections: 11
--> 7 %
Threads_connected: 3
--> 1 %
Questions: 1
|maxconnections=151;; maxusedconnections=11;; threadsconnected=3;; questions=1;;
connects
connects per min and aborted connections/ clients
./check_mysqlserver -m connects
OK: Mysql connects :: connects per min and aborted connections/ clients
Connections: 956785 ... delta = per min
Aborted_clients: 19 ... delta = per min
Aborted_connects: 1 ... delta = per min
|connections=0;; abortedclients=0;; abortedconnects=0;;
commands
current running statements insert, select, …
./check_mysqlserver -m commands
OK: Mysql commands :: currently executed commands
delete: 0
insert: 0
replace: 0
select: 0
update: 0
|delete=0;; insert=0;; replace=0;; select=0;; update=0;;
qcache-blocks
query cache blocks total vs free
./check_mysqlserver -m qcache-blocks
INFO: Query cache (have_query_cache) is active but query_cache_type is OFF.
qcache-queries
cached / non cached queries; low memeory prunes
./check_mysqlserver -m qcache-queries
INFO: Query cache (have_query_cache) is active but query_cache_type is OFF.
qcache-hits
query cache efficiency: cached vs non cached and inserted
./check_mysqlserver -m qcache-hits
INFO: Query cache (have_query_cache) is active but query_cache_type is OFF.
Uninstall
As root run
./check_mysqlserver -u
This drops the database user icingaclient
and removes the config file /etc/icingaclient/.my.cnf
.
Graph
See templates for mysql graphs in https://git-repo.iml.unibe.ch/iml-open-source/icinga-graphite-templates.