diff --git a/oam/cloud/MCSVolumeCmds.sh b/oam/cloud/MCSVolumeCmds.sh index ff9b1681a..291d27e44 100755 --- a/oam/cloud/MCSVolumeCmds.sh +++ b/oam/cloud/MCSVolumeCmds.sh @@ -215,7 +215,7 @@ detachvolume() { sleep 1 done test -f /usr/local/mariadb/columnstore/post/functions && . /usr/local/mariadb/columnstore/post/functions - $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 100 "detachvolume failed: $STATUS" + $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 6 "MCSVolume: detachvolume failed: $STATUS" echo "failed" exit 1 fi @@ -226,7 +226,7 @@ detachvolume() { fi test -f $COLUMNSTORE_INSTALL_DIR/post/functions && . $COLUMNSTORE_INSTALL_DIR/post/functions - $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 100 "detachvolume failed status: $STATUS" + $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 6 "MCSVolume: detachvolume failed status: $STATUS" echo $STATUS exit 1 } @@ -250,7 +250,7 @@ attachvolume() { sleep 1 done test -f $COLUMNSTORE_INSTALL_DIR/post/functions && . $COLUMNSTORE_INSTALL_DIR/post/functions - $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 100 "attachvolume failed: $STATUS" + $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 6 "MCSVolume: attachvolume failed: $STATUS" echo "failed" exit 1 fi @@ -261,7 +261,7 @@ attachvolume() { fi test -f $COLUMNSTORE_INSTALL_DIR/post/functions && . $COLUMNSTORE_INSTALL_DIR/post/functions - $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 100 "attachvolume failed: $STATUS" + $COLUMNSTORE_INSTALL_DIR/bin/cplogger -w 6 "MCSVolume: attachvolume failed: $STATUS" echo $STATUS exit 1 } diff --git a/oam/install_scripts/module_installer.sh b/oam/install_scripts/module_installer.sh index 169f89aac..05d1bf3ce 100755 --- a/oam/install_scripts/module_installer.sh +++ b/oam/install_scripts/module_installer.sh @@ -97,8 +97,13 @@ if [ $module = "um" ]; then echo "Setup UM Volume Mount" device=`$COLUMNSTORE_INSTALL_DIR/bin/getConfig Installation UMVolumeDeviceName$mid` mkdir -p $COLUMNSTORE_INSTALL_DIR/mysql/db > /dev/null 2>&1 - mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o defaults - chown mysql:mysql -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1 + if [ $user = "root" ]; then + mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o noatime,nodiratime,noauto + chown mysql:mysql -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1 + else + sudo mount $device $COLUMNSTORE_INSTALL_DIR/mysql/db -t ext2 -o noatime,nodiratime,noauto,user + sudo chown $user:$user -R $COLUMNSTORE_INSTALL_DIR/mysql > /dev/null 2>&1 + fi fi fi fi diff --git a/oam/oamcpp/liboamcpp.h b/oam/oamcpp/liboamcpp.h index 7e708e45e..81154ca27 100644 --- a/oam/oamcpp/liboamcpp.h +++ b/oam/oamcpp/liboamcpp.h @@ -38,6 +38,7 @@ #include #endif #include +#include #include "bytestream.h" #include "configcpp.h" diff --git a/oamapps/serverMonitor/cpuMonitor.cpp b/oamapps/serverMonitor/cpuMonitor.cpp index f469abac4..a03d88433 100644 --- a/oamapps/serverMonitor/cpuMonitor.cpp +++ b/oamapps/serverMonitor/cpuMonitor.cpp @@ -333,26 +333,26 @@ void ServerMonitor::checkCPUAlarm(string alarmItem, ALARMS alarmID) switch (alarmID) { case ALARM_NONE: // clear all alarms set if any found - if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_HIGH); - if ( oam.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_MED); - if ( oam.checkActiveAlarm(CPU_USAGE_LOW, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_LOW, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_LOW); break; case CPU_USAGE_LOW: // clear high and medium alarms set if any found - if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_HIGH); - if ( oam.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_MED); break; case CPU_USAGE_MED: // clear high alarms set if any found - if ( oam.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(CPU_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, CPU_USAGE_HIGH); break; diff --git a/oamapps/serverMonitor/diskMonitor.cpp b/oamapps/serverMonitor/diskMonitor.cpp index 4a043db0c..4fe5e6f09 100644 --- a/oamapps/serverMonitor/diskMonitor.cpp +++ b/oamapps/serverMonitor/diskMonitor.cpp @@ -23,7 +23,6 @@ ***************************************************************************/ #include "serverMonitor.h" -#include "installdir.h" using namespace std; using namespace oam; @@ -224,7 +223,7 @@ void diskMonitor() string fileName; // check local if ( deviceName == "/") { - fileName = startup::StartUp::installDir() + "/releasenum"; + fileName = deviceName + "usr/local/mariadb/columnstore/releasenum"; } else { @@ -646,26 +645,26 @@ void ServerMonitor::checkDiskAlarm(string alarmItem, ALARMS alarmID) switch (alarmID) { case ALARM_NONE: // clear all alarms set if any found - if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_HIGH); - if ( oam.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_MED); - if ( oam.checkActiveAlarm(DISK_USAGE_LOW, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_LOW, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_LOW); break; case DISK_USAGE_LOW: // clear high and medium alarms set if any found - if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_HIGH); - if ( oam.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_MED); break; case DISK_USAGE_MED: // clear high alarms set if any found - if ( oam.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(DISK_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, DISK_USAGE_HIGH); break; diff --git a/oamapps/serverMonitor/main.cpp b/oamapps/serverMonitor/main.cpp index 3d51a067a..10903d6a4 100644 --- a/oamapps/serverMonitor/main.cpp +++ b/oamapps/serverMonitor/main.cpp @@ -291,3 +291,27 @@ int main (int argc, char** argv) return 0; } +// common functions + +// +// Check Active alarms +// +// Use a mutex to limit the number of calls +// + +pthread_mutex_t THREAD_LOCK; + + +bool ServerMonitor::checkActiveAlarm(const int alarmid, const std::string moduleName, const std::string deviceName) +{ + Oam oam; + + pthread_mutex_lock(&THREAD_LOCK); + + bool status = oam.checkActiveAlarm(alarmid, moduleName, deviceName); + + pthread_mutex_unlock(&THREAD_LOCK); + + return status; +} + diff --git a/oamapps/serverMonitor/memoryMonitor.cpp b/oamapps/serverMonitor/memoryMonitor.cpp index a1de4540f..2ada69022 100644 --- a/oamapps/serverMonitor/memoryMonitor.cpp +++ b/oamapps/serverMonitor/memoryMonitor.cpp @@ -289,26 +289,26 @@ void ServerMonitor::checkMemoryAlarm(string alarmItem, ALARMS alarmID) switch (alarmID) { case ALARM_NONE: // clear all alarms set if any found - if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_HIGH); - if ( oam.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_MED); - if ( oam.checkActiveAlarm(MEMORY_USAGE_LOW, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_LOW, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_LOW); break; case MEMORY_USAGE_LOW: // clear high and medium alarms set if any found - if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_HIGH); - if ( oam.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_MED); break; case MEMORY_USAGE_MED: // clear high alarms set if any found - if ( oam.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(MEMORY_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, MEMORY_USAGE_HIGH); break; @@ -342,26 +342,26 @@ void ServerMonitor::checkSwapAlarm(string alarmItem, ALARMS alarmID) switch (alarmID) { case ALARM_NONE: // clear all alarms set if any found - if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_HIGH); - if ( oam.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_MED); - if ( oam.checkActiveAlarm(SWAP_USAGE_LOW, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_LOW, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_LOW); break; case SWAP_USAGE_LOW: // clear high and medium alarms set if any found - if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_HIGH); - if ( oam.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_MED, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_MED); break; case SWAP_USAGE_MED: // clear high alarms set if any found - if ( oam.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) + if ( serverMonitor.checkActiveAlarm(SWAP_USAGE_HIGH, serverName, alarmItem) ) // alarm set, clear it clearAlarm(alarmItem, SWAP_USAGE_HIGH); break; diff --git a/oamapps/serverMonitor/serverMonitor.h b/oamapps/serverMonitor/serverMonitor.h index 1ff947589..4c1a1b37c 100644 --- a/oamapps/serverMonitor/serverMonitor.h +++ b/oamapps/serverMonitor/serverMonitor.h @@ -235,6 +235,12 @@ public: * @brief db health check */ int healthCheck(bool action = true); + + /** + * @brief Check Active Alarm + */ + bool checkActiveAlarm(const int alarmid, const std::string moduleName, const std::string deviceName); + }; // end of class diff --git a/procmgr/processmanager.cpp b/procmgr/processmanager.cpp index dddc7adb8..95eeeef40 100644 --- a/procmgr/processmanager.cpp +++ b/procmgr/processmanager.cpp @@ -6334,7 +6334,7 @@ void ProcessManager::saveBRM(bool skipSession, bool clearshm) if ( skipSession ) skip = "-s"; - string cmd = startup::StartUp::installDir() + "/bin/reset_locks " + skip + " > + logdir + /reset_locks.log1 2>&1"; + string cmd = startup::StartUp::installDir() + "/bin/reset_locks " + skip + " > " + logdir + "/reset_locks.log1 2>&1"; int rtnCode = system(cmd.c_str()); log.writeLog(__LINE__, "Ran reset_locks", LOG_TYPE_DEBUG);