Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
check_mk_heartbeat
Meet The New Nagios Core Services Platform
Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.
Monitoring Made Magically Better
- Nagios Core on Overdrive
- Powerful Monitoring Dashboards
- Time-Saving Configuration Wizards
- Open Source Powered Monitoring On Steroids
- And So Much More!
It is suitable for checking MASTER-SLAVE
and MASTER-MASTER replication.
Requirements:
- latest mk-heartbeat (http://www.maatkit.org/download)
- Python MySQL connector (http://dev.mysql.com/downloads/connector/python/)
This plugin is checking timestamp of the last table update (on the slave side)
and comparing it with the current system time.
You must choose server_id, warning and critical interval in seconds.
The latest version of mk-heartbeat should be installed and running with options:
--update --daemonize
The heartbeat table should be such:
CREATE TABLE heartbeat (
ts varchar(26) NOT NULL,
server_id int unsigned NOT NULL PRIMARY KEY,
file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUS
position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS
relay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUS
exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
);
(latest mk-heartbeat can create this table via option '--create-table')
Requirements:
- latest mk-heartbeat (http://www.maatkit.org/download)
- Python MySQL connector (http://dev.mysql.com/downloads/connector/python/)
Example usage:
1) MASTER -> SLAVE Replication:
1. Run on MASTER mk-heartbeat:
mk-heartbeat -u heartbeat -p hfnLgg1 -D my_db --update --daemonize
(or with --create-table if you run mk-heartbeat in first time)
2. Check table data:
mysql -u heartbeat -phfnLgg1 my_db -e "select * from heartbeat";
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
| ts | server_id | file | position | relay_master_log_file | exec_master_log_pos |
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
| 2012-12-23T20:14:18.000960 | 1 | MASTER-bin.000004 | 944011 | NULL | NULL |
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
1 row in set (0.00 sec)
3. Run on SLAVE:
$ check_mk_heartbeat.py user:heartbeat pw:hfnLgg1 db:my_db host:localhost sid:1 warn:60 crit:120
Output:
SLAVE OK: 0.23 seconds behind master (warn - 60.00, crit - 120.00), master_log_file = MASTER-bin.000004, master_log_pos = 944011
2) MASTER <-> MASTER Replication:
1. Run on each MASTER:
mk-heartbeat -u heartbeat -p hfnLgg1 -D my_db --update --daemonize
(by default mk-heartbeat uses server_id of local mysql server,
so you do not have to worry - mk-heartbeat data are not mixed)
2. Check each SLAVE:
$ check_mk_heartbeat.py user:heartbeat pw:hfnLgg1 db:my_db host:localhost sid:1 warn:60 crit:120
where 'sid' - server_id of MASTER for current SLAVE.
LAST CHANGES:
- Fixed plugin OUTPUT (old version shows wrong master_log_file and master_log_pos)
- Fixed UNKNOWN state (old version shows UNKNOWN sate on MASTER-SLAVE replication)
and comparing it with the current system time.
You must choose server_id, warning and critical interval in seconds.
The latest version of mk-heartbeat should be installed and running with options:
--update --daemonize
The heartbeat table should be such:
CREATE TABLE heartbeat (
ts varchar(26) NOT NULL,
server_id int unsigned NOT NULL PRIMARY KEY,
file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUS
position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS
relay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUS
exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
);
(latest mk-heartbeat can create this table via option '--create-table')
Requirements:
- latest mk-heartbeat (http://www.maatkit.org/download)
- Python MySQL connector (http://dev.mysql.com/downloads/connector/python/)
Example usage:
1) MASTER -> SLAVE Replication:
1. Run on MASTER mk-heartbeat:
mk-heartbeat -u heartbeat -p hfnLgg1 -D my_db --update --daemonize
(or with --create-table if you run mk-heartbeat in first time)
2. Check table data:
mysql -u heartbeat -phfnLgg1 my_db -e "select * from heartbeat";
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
| ts | server_id | file | position | relay_master_log_file | exec_master_log_pos |
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
| 2012-12-23T20:14:18.000960 | 1 | MASTER-bin.000004 | 944011 | NULL | NULL |
+----------------------------+-----------+-------------------+----------+-----------------------+---------------------+
1 row in set (0.00 sec)
3. Run on SLAVE:
$ check_mk_heartbeat.py user:heartbeat pw:hfnLgg1 db:my_db host:localhost sid:1 warn:60 crit:120
Output:
SLAVE OK: 0.23 seconds behind master (warn - 60.00, crit - 120.00), master_log_file = MASTER-bin.000004, master_log_pos = 944011
2) MASTER <-> MASTER Replication:
1. Run on each MASTER:
mk-heartbeat -u heartbeat -p hfnLgg1 -D my_db --update --daemonize
(by default mk-heartbeat uses server_id of local mysql server,
so you do not have to worry - mk-heartbeat data are not mixed)
2. Check each SLAVE:
$ check_mk_heartbeat.py user:heartbeat pw:hfnLgg1 db:my_db host:localhost sid:1 warn:60 crit:120
where 'sid' - server_id of MASTER for current SLAVE.
LAST CHANGES:
- Fixed plugin OUTPUT (old version shows wrong master_log_file and master_log_pos)
- Fixed UNKNOWN state (old version shows UNKNOWN sate on MASTER-SLAVE replication)
Reviews (0)
Be the first to review this listing!