refactor(monitoring): remove hardcoded tool paths
Remove SAPCONTROL_PATH and HDBSQL_PATH variables from configuration. Update scripts to rely on the system PATH environment variable when executing as the <sid>adm user. Remove redundant existence checks for these commands.
This commit is contained in:
@@ -17,8 +17,7 @@ HANA_INSTANCE_NR="00"
|
|||||||
HANA_USER_KEY="CRONKEY"
|
HANA_USER_KEY="CRONKEY"
|
||||||
|
|
||||||
# --- Paths ---
|
# --- Paths ---
|
||||||
SAPCONTROL_PATH="/usr/sap/hostctrl/exe/sapcontrol"
|
# Commands are executed as <sid>adm user without full paths
|
||||||
HDBSQL_PATH="/usr/sap/HDB/HDB${HANA_INSTANCE_NR}/exe/hdbsql"
|
|
||||||
|
|
||||||
# --- Monitoring Directories ---
|
# --- Monitoring Directories ---
|
||||||
DIRECTORIES_TO_MONITOR=(
|
DIRECTORIES_TO_MONITOR=(
|
||||||
|
|||||||
@@ -19,13 +19,6 @@ trap 'release_lock "$SCRIPT_NAME"' EXIT
|
|||||||
|
|
||||||
log_message "$SCRIPT_NAME" "Starting backup status check..."
|
log_message "$SCRIPT_NAME" "Starting backup status check..."
|
||||||
|
|
||||||
# Check if hdbsql is available
|
|
||||||
if [ ! -x "$HDBSQL_PATH" ]; then
|
|
||||||
log_message "$SCRIPT_NAME" "ERROR: hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
send_alert "$SCRIPT_NAME" "HANA Monitor Error" "hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SQL Query for last successful backup
|
# SQL Query for last successful backup
|
||||||
BACKUP_SQL="SELECT TOP 1 SYS_START_TIME FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'complete data backup' AND STATE_NAME = 'successful' ORDER BY SYS_START_TIME DESC"
|
BACKUP_SQL="SELECT TOP 1 SYS_START_TIME FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'complete data backup' AND STATE_NAME = 'successful' ORDER BY SYS_START_TIME DESC"
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ execute_hana_sql() {
|
|||||||
local sql_query="$1"
|
local sql_query="$1"
|
||||||
local output
|
local output
|
||||||
|
|
||||||
output=$(su - "$HANA_USER" -c "$HDBSQL_PATH -U $HANA_USER_KEY -j -a -x \"$sql_query\"" 2>&1)
|
output=$(su - "$HANA_USER" -c "hdbsql -U $HANA_USER_KEY -j -a -x \"$sql_query\"" 2>&1)
|
||||||
local sql_status=$?
|
local sql_status=$?
|
||||||
|
|
||||||
if [ $sql_status -ne 0 ]; then
|
if [ $sql_status -ne 0 ]; then
|
||||||
|
|||||||
@@ -19,13 +19,6 @@ trap 'release_lock "$SCRIPT_NAME"' EXIT
|
|||||||
|
|
||||||
log_message "$SCRIPT_NAME" "Starting log segment check..."
|
log_message "$SCRIPT_NAME" "Starting log segment check..."
|
||||||
|
|
||||||
# Check if hdbsql is available
|
|
||||||
if [ ! -x "$HDBSQL_PATH" ]; then
|
|
||||||
log_message "$SCRIPT_NAME" "ERROR: hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
send_alert "$SCRIPT_NAME" "HANA Monitor Error" "hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SQL Query for log segments
|
# SQL Query for log segments
|
||||||
SQL_QUERY="SELECT b.host, b.service_name, a.state, count(*) FROM PUBLIC.M_LOG_SEGMENTS a JOIN PUBLIC.M_SERVICES b ON (a.host = b.host AND a.port = b.port) GROUP BY b.host, b.service_name, a.state;"
|
SQL_QUERY="SELECT b.host, b.service_name, a.state, count(*) FROM PUBLIC.M_LOG_SEGMENTS a JOIN PUBLIC.M_SERVICES b ON (a.host = b.host AND a.port = b.port) GROUP BY b.host, b.service_name, a.state;"
|
||||||
|
|
||||||
|
|||||||
@@ -19,15 +19,8 @@ trap 'release_lock "$SCRIPT_NAME"' EXIT
|
|||||||
|
|
||||||
log_message "$SCRIPT_NAME" "Starting HANA process status check..."
|
log_message "$SCRIPT_NAME" "Starting HANA process status check..."
|
||||||
|
|
||||||
# Check if sapcontrol is available
|
|
||||||
if [ ! -x "$SAPCONTROL_PATH" ]; then
|
|
||||||
log_message "$SCRIPT_NAME" "ERROR: sapcontrol not found or not executable at ${SAPCONTROL_PATH}"
|
|
||||||
send_alert "$SCRIPT_NAME" "HANA Monitor Error" "sapcontrol not found or not executable at ${SAPCONTROL_PATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get process list
|
# Get process list
|
||||||
process_list=$(su - "$HANA_USER" -c "${SAPCONTROL_PATH} -nr ${HANA_INSTANCE_NR} -function GetProcessList" 2>&1)
|
process_list=$(su - "$HANA_USER" -c "sapcontrol -nr ${HANA_INSTANCE_NR} -function GetProcessList" 2>&1)
|
||||||
sapcontrol_status=$?
|
sapcontrol_status=$?
|
||||||
|
|
||||||
if [ $sapcontrol_status -ne 0 ]; then
|
if [ $sapcontrol_status -ne 0 ]; then
|
||||||
|
|||||||
@@ -19,13 +19,6 @@ trap 'release_lock "$SCRIPT_NAME"' EXIT
|
|||||||
|
|
||||||
log_message "$SCRIPT_NAME" "Starting statement queue check..."
|
log_message "$SCRIPT_NAME" "Starting statement queue check..."
|
||||||
|
|
||||||
# Check if hdbsql is available
|
|
||||||
if [ ! -x "$HDBSQL_PATH" ]; then
|
|
||||||
log_message "$SCRIPT_NAME" "ERROR: hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
send_alert "$SCRIPT_NAME" "HANA Monitor Error" "hdbsql not found or not executable at ${HDBSQL_PATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SQL Query for statement queue
|
# SQL Query for statement queue
|
||||||
STATEMENT_QUEUE_SQL="SELECT COUNT(*) FROM M_SERVICE_THREADS WHERE THREAD_TYPE = 'SqlExecutor' AND THREAD_STATE = 'Queueing';"
|
STATEMENT_QUEUE_SQL="SELECT COUNT(*) FROM M_SERVICE_THREADS WHERE THREAD_TYPE = 'SqlExecutor' AND THREAD_STATE = 'Queueing';"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user