-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge "Close-Bug: #1443708. This is an enhancement to separate cmon t…
…ables from galera cluster. Cluster monitor tables keep track of the galera cluster and need to be replicated" into R2.20
- Loading branch information
Showing
5 changed files
with
4,786 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
#!/bin/bash | ||
# chkconfig: 235 99 20 | ||
# description: cmon start/stop script | ||
### BEGIN INIT INFO | ||
# Provides: cmon | ||
# Required-Start: $remote_fs $syslog | ||
# Required-Stop: $remote_fs $syslog | ||
# Default-Start: 2 3 4 5 | ||
# Default-Stop: 0 1 6 | ||
# Short-Description: cmon - cluster monitor | ||
### END INIT INFO | ||
|
||
# ClusterControl debian initscript | ||
# Copyright (C) 2011-2014 severalnines.com | ||
|
||
SBINDIR=/usr/local/cmon/sbin | ||
|
||
CMON_CNF="/etc/cmon.cnf" | ||
|
||
RUNNING_DIR=`grep -i pidfile $CMON_CNF | awk -F'=' '{print $2}'` | ||
|
||
if [ -z "$RUNNING_DIR" ]; then | ||
RUNNING_DIR="/var/run" | ||
fi | ||
|
||
PIDFILE=${RUNNING_DIR}/cmon.pid | ||
|
||
PROGNAME="cmon" | ||
mkdir -p /var/run/cmon | ||
OPTIONS="-r /var/run/cmon" | ||
STARTCMON="$SBINDIR/$PROGNAME $OPTIONS" | ||
LOCKFILE="" | ||
if [ -d /var/lock/subsys ]; then | ||
LOCKFILE=/var/lock/subsys/cmon | ||
else | ||
LOCKFILE=/var/lock/cmon | ||
fi | ||
|
||
RETVAL=0 | ||
pidof_prog() { | ||
if [ -f $PIDFILE ]; then | ||
if pidof $PROGNAME | tr ' ' '\n' | grep $(cat $PIDFILE); then | ||
return 0 | ||
fi | ||
fi | ||
return 1 | ||
} | ||
|
||
pidof_prog2() { | ||
if pidof $PROGNAME | tr ' ' '\n' ; then | ||
return 0 | ||
fi | ||
return 1 | ||
} | ||
|
||
start() { | ||
echo -n "Starting $PROGNAME $OPTIONS :" | ||
PID=`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"` | ||
if [ -n "$PID" ]; then | ||
printf "$PROGNAME is already running with pid $PID\n" | ||
return 0 | ||
else | ||
export LD_LIBRARY_PATH=$LIBDIR | ||
if [ ! -f $SBINDIR/$PROGNAME ]; then | ||
echo -n "$PROGNAME executable not found in $SBINDIR" | ||
fi | ||
LC_ALL=C $STARTCMON | ||
if [ $? -ne 0 ]; then | ||
echo -n "Starting $PROGNAME $OPTIONS :" | ||
echo " failed" | ||
return 0 | ||
fi | ||
echo -n "Starting $PROGNAME $OPTIONS :" | ||
sync | ||
#echo $! > $PIDFILE | ||
touch $LOCKFILE | ||
sleep 1 | ||
PID=`cat $PIDFILE` | ||
if [ "$PID" ]; then | ||
sed -i '/pidof/ s/# *//' /etc/cron.d/cmon &> /dev/null | ||
echo " ok" | ||
return 1 | ||
else | ||
echo " failed" | ||
return 0 | ||
fi | ||
fi | ||
} | ||
|
||
stop() { | ||
echo -n "Stopping $PROGNAME : " | ||
sed -i '/^\*.*pidof/s/^/# /' /etc/cron.d/cmon &> /dev/null | ||
PID=$(pidof_prog) | ||
KILLED=0 | ||
if [ -n "$PID" ]; then | ||
kill -15 $PID 2>&1 | ||
KILLED=1 | ||
fi | ||
|
||
if [ $KILLED -eq 1 ]; then | ||
I=0 | ||
while [ $I -lt 60 ]; | ||
do | ||
PID=$(pidof_prog) | ||
if [ -z "$PID" ]; then | ||
echo " ok" | ||
return 1 | ||
fi | ||
I=`expr $I + 1` | ||
echo -n . | ||
sleep 1 | ||
done | ||
fi | ||
|
||
PID=`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"` | ||
if [ -n "$PID" ]; then | ||
pkill -9 -xf "$SBINDIR/$PROGNAME $OPTIONS" | ||
else | ||
# `rm -f ${PIDFILE}` | ||
`rm -f ${LOCKFILE}` | ||
sleep 2 | ||
echo " failed" | ||
return 0 | ||
fi | ||
i=1 | ||
while [ "`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"`" ]; | ||
do | ||
if [ $i -eq 60 ]; then | ||
echo "giving up after 60 secods" | ||
return 0 | ||
fi | ||
i=`expr $i + 1` | ||
sleep 1 | ||
done | ||
PID=`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"` | ||
if [ -n "$PID" ]; then | ||
sleep 2 | ||
echo " failed" | ||
return 0 | ||
else | ||
# `rm -f ${PIDFILE}` | ||
`rm -f ${LOCKFILE}` | ||
sleep 2 | ||
echo " ok" | ||
return 1 | ||
fi | ||
} | ||
|
||
case "$1" in | ||
init|initial) | ||
initial | ||
;; | ||
start) | ||
start | ||
RETVAL=$? | ||
;; | ||
stop) | ||
stop | ||
RETVAL=$? | ||
;; | ||
status) | ||
PID=`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"` | ||
if [ -z "$PID" ]; then | ||
PID=$(pidof_prog) | ||
fi | ||
if [ -n "$PID" ]; then | ||
echo "$PROGNAME is running (pid $PID)." | ||
else | ||
echo "$PROGNAME is NOT running." | ||
fi | ||
RETVAL=$? | ||
;; | ||
condrestart|try-restart) | ||
PID=`pgrep -xf "$SBINDIR/$PROGNAME $OPTIONS"` | ||
if [ -n "$PID" ]; then | ||
stop | ||
sleep 2 | ||
start | ||
echo "$PROGNAME is running (pid $PID)." | ||
fi | ||
RETVAL=$? | ||
;; | ||
restart|reload|force-reload) | ||
stop | ||
sleep 2 | ||
start | ||
RETVAL=$? | ||
;; | ||
*) | ||
echo $"Usage: $0 {start|stop|restart|status}" | ||
exit 1 | ||
esac | ||
|
||
exit $? | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
USE cmon; | ||
|
||
set @cid:=1; | ||
|
||
INSERT IGNORE INTO cmon_cluster_counters(id, var, enabled) VALUES (1,'ABORTS','1'),(2,'COMBINED','1'),(3,'COMMITS','1'),(4,'OPERATIONS','1'),(5,'RANGE_SCANS','1'),(6,'READS_ALL','1'),(7,'SIMPLE_READS','1'),(8,'TABLE_SCANS','1'),(9,'TRANSACTIONS','1'),(10,'WRITES','1'); | ||
|
||
DELETE FROM cmon_mysql_counters; | ||
DELETE FROM cmon_mysql_graphs; | ||
DELETE FROM cluster_event_types; | ||
INSERT IGNORE INTO `cluster_event_types` VALUES ('ArbitResult'),('ArbitState'),('CM_REGCONF'),('CM_REGREF'),('CommunicationClosed'),('CommunicationOpened'),('Connected'),('ConnectedApiVersion'),('CopyDict'),('CopyFragDone'),('CopyFragsCompleted'),('CopyFragsStared'),('Disconnected'),('FIND_NEIGHBOURS'),('GCP_TakeoverCompleted'),('GCP_TakeoverStarted'),('LCP_TakeoverCompleted'),('LCP_TakeoverStarted'),('LocalCheckpointCompleted'),('LocalCheckpointStarted'),('NodeFailCompleted'),('NODE_FAILREP'),('StartCompleted'),('StartPhaseCompleted'),('StartREDOLog'),('StopCompleted'),('StopStarted'); | ||
INSERT IGNORE INTO `cluster_severity_types` VALUES ('ALERT'),('CRITICAL'),('DEBUG'),('ERROR'),('INFO'),('WARNING'); | ||
|
||
INSERT IGNORE INTO `cmon_mysql_graphs` VALUES (1,'ABORTED_CLIENTS'),(2,'ABORTED_CONNECTS'),(3,'QUERIES'),(4,'OPENED_TABLES'),(7,'CREATED_TMP_DISK_TABLES'),(8,'CREATED_TMP_TABLES'),(5,'THREADS_CONNECTED'),(6,'THREADS_RUNNING'); | ||
INSERT IGNORE INTO `cmon_cluster_graphs` VALUES (1,'COMBINED'),(5,'COMMITS'),(2,'OPERATIONS'),(4,'RANGE_SCANS'),(6,'READS_ALL'),(8,'SIMPLE_READS'),(3,'TRANSACTIONS'),(7,'WRITES'); | ||
|
||
|
||
delete from mysql_states; | ||
|
||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(0, 'MYSQL_OK', 'OK'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(1, 'MYSQL_DISCONNECTED', 'MySQL Server is disconnected'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(2, 'MYSQL_REPL_LAG', 'Replication is lagging behind'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(3, 'MYSQL_REPL_FAILED', 'Replication is stopped'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(4, 'MYSQL_REPL_ACTION_NEEDED', 'Check IO and SQL Thread, slave may have to be rebuilt.'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(5, 'MYSQL_REPL_REBUILD_NEEDED', 'Rebuild slave is needed'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(6, 'MYSQL_REPL_REBUILDING', 'Rebuilding slave'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(7, 'MYSQL_REPL_REBUILD_FAILED', 'Rebuild slave failed - try again'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(8, 'MYSQL_REPL_FASTFORWARD', 'Skipping ahead to a good position - data will be lost'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(9, 'MYSQL_REPL_USER_STOPPED', 'User initiated stop of slave'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(10, 'MYSQL_REPL_RESUME_SLAVE', 'Slave can be resumed now'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(11, 'MYSQL_GALERA_FAILED', 'Galera failed on node'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(12, 'MYSQL_GALERA_NODE_RECOVERY', 'Node recovery needed<br/>giving Galera a chance first'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(13, 'MYSQL_GALERA_CLUSTER_RECOVERY', 'Cluster recovery needed<br/>giving Galera a chance first<br/>Check /var/log/cmon.log'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(14, 'MYSQL_GALERA_READ_ONLY', 'Read-only'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(15, 'MYSQL_GALERA_NODE_RECOVERING', 'Galera node recovery in progress'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(16, 'MYSQL_GALERA_CLUSTER_RECOVERING', 'Galera cluster recovery in progress'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(17, 'MYSQL_GALERA_USER_SHUTDOWN', 'User initiated shutdown'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(18, 'MYSQL_CLUSTER_NOT_CONNECTED', 'Node not connected to NDB!<br/>Check http://support.severalnines.com/entries/21854907-node-not-connected-to-ndb for suggestions.'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(19, 'MYSQL_USER_SHUTDOWN', 'User initiated shutdown'); | ||
INSERT IGNORE INTO mysql_states(id,name,description) VALUES(20, 'MYSQL_GALERA_BLOCKED', 'Galera recovery blocked'); | ||
|
||
|
||
INSERT IGNORE INTO cmon_daily_job(cid,exectime,command) VALUES(1,'02:00',0); | ||
|
||
|
||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CPU_WARNING', '80'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CPU_CRITICAL', '90'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'RAM_WARNING', '80'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'RAM_CRITICAL', '90'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'DISKSPACE_WARNING', '80'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'DISKSPACE_CRITICAL', '90'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'SWAPSPACE_WARNING', '5'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'SWAPSPACE_CRITICAL', '20'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'MYSQLMEMORY_WARNING', '80'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'MYSQLMEMORY_CRITICAL', '90'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CMON_USE_MAIL', '0'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CMON_MAIL_SENDER', ''); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'ENABLE_DBGROWTH', '1'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'HTTP_PROXY', ''); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CCBINDIR', ''); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'CMON_DB', 'cmon'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'SSH_OPTS_BG', ''); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'MULTI_TENANT', 'yes'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'MYSQL_REPLICATION_AUTO_FAILOVER', '1'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'BACKUP_RETENTION', '7'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'GALERA_PORT', '4567'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'QUERY_SAMPLE_INTERVAL', '1'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'LONG_QUERY_TIME', '0.5'); | ||
INSERT IGNORE INTO cmon_configuration(cid, param, value) VALUES(@cid,'LOG_QUERIES_NOT_USING_INDEXES', '1'); | ||
|
Oops, something went wrong.