
Estoy intentando iniciar mi base de datos Oracle a medida que cae usando un script de controlador de eventos.
El archivo de configuración del objeto oraclehost.cfg
tiene:
define host {
host_name Test_Oracle
address 127.0.0.1
check_command check-host-alive
check_interval 3
retry_interval 1
max_check_attempts 5
check_period 24x7
process_perf_data 0
retain_nonstatus_information 0
contacts nagiosadmin
notifications_enabled 1
notification_interval 30
notification_period 24x7
notification_options d,r
}
define service {
host_name Test_Oracle
service_description check_OraDB
check_command check_MyOracle
event_handler restart-oracle
event_handler_enabled 1
check_interval 5
retry_interval 1
max_check_attempts 5
check_period 24x7
notifications_enabled 1
notification_interval 30
notification_period 24x7
notification_options r,w,c
contacts nagiosadmin
}
El commands.cfg
tener:
# 'Oracle DB' command definition
define command {
command_name check_MyOracle
command_line $USER1$/check_oracle_on.sh
}
# 'Oracle DB Handler' command definition
define command {
command_name restart-oracle
command_line $USER2$/oracle_handle.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
}
Aquí está el oracle_handle.sh
script que es el script del controlador de eventos.
#!/usr/bin/sh
case "$1" in
OK)
;;
WARNING)
logger "Then it went here"
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/u/oracle/server/oracle12c102/bin
export PATH
ORACLE_HOME=/u/oracle/server/oracle12c102
export ORACLE_HOME
ORACLE_SID=walinv
export ORACLE_SID
echo "ora123" |sqlplus sys@walinv as sysdba @this_file.sql
;;
UNKNOWN)
;;
CRITICAL)
;;
esac
exit 0
Contiene this_file.sql
una sola línea dentro: startup
. Se utiliza para iniciar la base de datos Oracle.
Además, logger "Then it went here"
lo que está presente en el script del controlador de eventos aparece en los registros de Linux /var/log/messages
. Entonces el WARNING
caso está en marcha.
Mi registro de eventos de Nagios muestra:Script de registro de eventos de Nagios
Si ejecuto el script en la terminal como nagios
usuario, el script se ejecuta perfectamente y se inicia Oracle Database. Sin embargo, si nagios
lo ejecuta a través del servidor web, en Nagios Web Monitor el estado permanece en advertencia y la base de datos está inactiva.
El nagios
usuario está en sudoers.
He perdido más de 10 horas en esto. ¿Por qué está pasando esto?
¿Por qué Nagios no inicia mi base de datos Oracle cuando ejecuta el script del controlador de eventos?
Respuesta1
Yo tengo que trabajar.
El primer error que cometí fue no exportar ORACLE_HOME
y ORACLE_PATH
en mi script de controlador de eventos.
El segundo error fue en esta línea:
echo "ora123" |sqlplus sys@walinv as sysdba @this_file.sql
El this_file.sql
estaba en el \usr\local\nagios\libexec\eventhandlers
. Cuando estaba ejecutando el script manualmente desde la eventhandlers
carpeta, se this_file.sql
podía acceder al archivo. Nagios no lo ejecuta desde esta carpeta. Cuando mencioné la ruta completa y lo puse a funcionar.