automation - Invoke a shell script execution using nagios -
hi having script  restarts components(.jar files) present in server (/scripts/startall.sh). whenever server goes down, want  invoke execution of script using nagios, running on different linux server. possible so? kindly on how invoke execution of script using nagios? 
event handlers
nagios , naemon allow executing custom scripts, both hosts , services entering 'problem state.' since implementation restarting specific applications, yours need service event handlers.
from nagios documentation:
event handlers can enabled or disabled on program-wide basis using enable_event_handlers in main configuration file.
host- , service-specific event handlers can enabled or disabled using event_handler_enabled directive in host , service definitions. host- , service-specific event handlers not executed if global enable_event_handlers option disabled.
enabling , creating event handler commands service or host
- first, enable event handlers modifying or adding following line nagios config file.
[ie: /usr/local/nagios/etc/nagios.cfg]:
enable_event_handlers=1
- define , enable event handler on service failure(s) trigger script.  adding 2 event_handlerdirectives inside of service you've defined.
[ie: /usr/local/nagios/etc/services.cfg]:
define service{     host_name       my-server     service_description my-check     check_command       my-check-command!arg1!arg2!etc     ....     event_handler my-eventhandler     event_handler_enabled   1     } - the last step create event_handler command named in step 2, , point script you've created. there few approaches (ssh, nrpe, locally-hosted, remotely hosted). i'll use simplest method, hosting bash script on monitor system connect via ssh , execute:
[ie: /usr/local/nagios/etc/objects/commands.cfg]:
 define command{          command_name    my-eventhandler          command_line    /usr/local/nagios/libexec/eventhandlers/my-eventhandler.sh          } in example, script "my-eventhandler.sh" should use ssh connect remote system, , execute commands you've decided on.
note: intended quick, working solution one box in environment.  in practice, better create event handler script remotely, , use agent such nrpe execute command while passing $hostname$ variable (thus allowing solution scale across more 1 system).  simplest tutorial i've found using nrpe execute event handler can found here.
Comments
Post a Comment