Skip to content
Snippets Groups Projects
Select Git revision
  • 267283edf656c7bde9d074071e56b6ef70ccae1d
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_mysqlserver.md

Blame
  • 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.