Hello Kasper, On Wed, 2017-05-17 at 09:23 +0000, Kasper Løvschall wrote: > I can get the check_mysql command to work without issues: > > ./check_mysql --check-slave > Uptime: 1038854 Threads: 1 Questions: 803933 Slow queries: 0 Opens: 48 > Flush tables: 1 Open tables: 42 Queries per second avg: 0.773 Slave IO: Yes > Slave SQL: Yes Seconds Behind Master: 0|Connections=258337c;;; > Open_files=53;;; Open_tables=42;;; Qcache_free_memory=1031336;;; > Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; > Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=803933c;;; > Questions=757771c;;; Table_locks_waited=0c;;; Threads_connected=1;;; > Threads_running=1;;; Uptime=1038854c;;; 'seconds behind > master'=0,000000s;0,000000;0,000000; > > But it made me wonder if the problem is that it only display metrics and no > service status; e.g. OK, CRITICAL, WARNING or UNKNOWN?
Are you able to get notifications from Icinga based on check_mysql (once you stop your slave manually)? > > You might need to provide some thresholds to your config: > > -w, --warning > Exit with WARNING status if slave server is more than INTEGER seconds > behind master > -c, --critical > Exit with CRITICAL status if slave server is more then INTEGER seconds > behind master If slave is not running then "Seconds behind the master" are not Integers - NULL(or nil)... Thank you! > > -----Oprindelig meddelelse----- > Fra: ST [mailto:smn...@gmail.com] > Sendt: 17. maj 2017 09:50 > Til: Icinga User's Corner <icinga-users@lists.icinga.org> > Cc: Kasper Løvschall <k...@aub.aau.dk> > Emne: Re: [icinga-users] Mysql replication monitoring > > Thank you very much for your response! > > I did read about the Percona Monitoring Plugin, but thought that using > standard plugins, available as Debian package should be better, especially if > I plan to use Ansible in future to configure my Icinga setup... > > I'll definitely use your suggestion if I don't get it working with the > standard check_mysql. Just any ideas why it doesn't work? Can you test your > replication with this command, to see whether it is working correctly? > > /usr/lib/nagios/plugins/check_mysql -u repl --password='my_password' > --check-slave > > And if yes - why doesn't it work through Icinga? > > Thank you! > > > On Wed, 2017-05-17 at 07:02 +0000, Kasper Løvschall wrote: > > Hi ST! > > > > I can recommend a different approach using the Percona Monitoring Plugins > > (available for free at > > https://www.percona.com/software/database-tools/percona-monitoring-plugins). > > > > It has (among others) two check commands: > > pmp-check-mysql-replication-running and pmp-check-mysql-replication-delay > > which should do the trick. > > > > My configuration is the following - and will probably needs some tweaking > > in your environment: > > > > object CheckCommand "pmp-check-mysql-replication-running" { > > import "plugin-check-command" > > > > command = [ > > PluginDir + "/pmp-check-mysql-replication-running" > > ] > > } > > > > object CheckCommand "pmp-check-mysql-replication-delay" { > > import "plugin-check-command" > > > > command = [ > > PluginDir + "/pmp-check-mysql-replication-delay" > > ] > > } > > > > And apply service: > > > > apply Service "pmp-check-mysql-replication-running" { > > import "generic-service" > > check_command = "pmp-check-mysql-replication-running" > > display_name = "MySQL replication running" > > > > // Run the service on remote client if needed > > if ( host.vars.remote_client ) { > > command_endpoint = host.vars.remote_client > > } > > > > assign where host.vars.percona_standard_checks } > > > > apply Service "pmp-check-mysql-replication-delay" { > > import "generic-service" > > check_command = "pmp-check-mysql-replication-delay" > > display_name = "MySQL replication delay" > > > > // Run the service on remote client if needed > > if ( host.vars.remote_client ) { > > command_endpoint = host.vars.remote_client > > } > > > > assign where host.vars.percona_standard_checks } > > > > And the host has got the following assignment: > > > > vars.percona_standard_checks = true > > > > > > Regards, > > > > Kasper Løvschall > > Senior Adviser | The University Library > > > > Phone: (+45) 99 40 73 03 | Mobile: (+45) 28 95 91 29 | Email: > > k...@aub.aau.dk | Web: http://www.en.aub.aau.dk Aalborg University > > Library | Langagervej 2 | 9220 Aalborg Ø | Denmark > > > > > > > > > > > > -----Oprindelig meddelelse----- > > Fra: icinga-users [mailto:icinga-users-boun...@lists.icinga.org] På > > vegne af ST > > Sendt: 17. maj 2017 07:44 > > Til: icinga-users@lists.icinga.org > > Emne: [icinga-users] Mysql replication monitoring > > > > Hello, > > > > I'm new to Incinga2 and try to setup mysql replication monitoring on the > > slave machine. My OS is Debian/Wheezy with Incinga2 Version: r2.1.1-1 from > > wheezy-backports. > > > > While learning docs I created following > > file: /etc/icinga2/conf.d/hosts/localhost/mysql-slave.conf (see bellow). > > > > However if I stop slave manually - I get no notifications from icinga2. > > Only if I change vars.mysql_user to something non-existent - only then > > icinga complains and notifies me. This doesn't happen even if I change > > mysql_password to something wrong... > > If I run the check manually from command line: > > > > /usr/lib/nagios/plugins/check_mysql -u repl --password='my_password' > > --check-slave > > > > I get proper message on the CLI in both cases when replication runs (OK) > > and when it doesn't (Failure)... > > > > 1. What is wrong with my configuration? > > 2. Is there a better/standard way to monitor mysql replication? > > > > Thank you! > > > > --------------------------------- > > > > // custom mysql replication check > > object CheckCommand "my-mysql" { > > import "plugin-check-command" > > command = [ PluginDir + "/check_mysql" ] //constants.conf -> const > > PluginDir > > arguments = { > > "-H" = "$mysql_host$" > > "-u" = { > > required = true > > value = "$mysql_user$" > > } > > "-p" = "$mysql_password$" > > "-P" = "$mysql_port$" > > "-s" = "$mysql_socket$" > > "-a" = "$mysql_cert$" > > "-d" = "$mysql_database$" > > "-k" = "$mysql_key$" > > "-C" = "$mysql_ca_cert$" > > "-D" = "$mysql_ca_dir$" > > "-L" = "$mysql_ciphers$" > > "-f" = "$mysql_optfile$" > > "-g" = "$mysql_group$" > > "-S" = { > > set_if = "$mysql_check_slave$" > > description = "Check if the slave thread is running properly." > > } > > "-l" = { > > set_if = "$mysql_ssl$" > > description = "Use ssl encryption" > > } > > } > > vars.mysql_check_slave = true > > vars.mysql_ssl = false > > vars.mysql_host = "$address$" > > } > > apply Service "mysql-replication-health" { > > import "generic-service" > > check_command = "my-mysql" > > vars.mysql_user = "repl" > > vars. = "my_password" > > // vars.mysql_database = "icinga" > > // vars.mysql_host = "192.168.33.11" > > vars.mysql_host = "localhost" > > vars.mysql_check_slave = true > > vars.sla = "24x7" > > // assign where match("icinga2*", host.name) > > assign where true > > // ignore where host.vars.no_health_check == true } > > > > --------------------------------- > > > > _______________________________________________ > > icinga-users mailing list > > icinga-users@lists.icinga.org > > https://lists.icinga.org/mailman/listinfo/icinga-users > > _______________________________________________ > > icinga-users mailing list > > icinga-users@lists.icinga.org > > https://lists.icinga.org/mailman/listinfo/icinga-users > _______________________________________________ icinga-users mailing list icinga-users@lists.icinga.org https://lists.icinga.org/mailman/listinfo/icinga-users