article Creating an Action Profile Recovery Script

Overview

This article will describe how to set up and run a recovery script with an up.time Action Profile. There are three main steps for this process:

Creating a Recovery Script

The recovery script will depend on the desired action and will need to be developed based on the user's specific environment. After the agent-side script is written, the up.time agent will need to be configured to execute it. As a minimum, configure the following settings for each agent-side command:

  • For agents running on non-Windows systems, define a password and command pair in the agent-side password file by completing the following steps:
    • Ensure that a file named .uptmpasswd is created in the up.time agent bindirectory (either /opt/SPYNuptm/bin/ or /opt/uptime-agent/bin depending on the agent version). This file must be owned and readable by the user that the agent is run as.
    • Open the .uptmpasswd file in a text editor.
    • Enter a password and command pair for each command that you want to run on the agent system. The following is an example format and contents of an agent-side command script:
      Format: [password] [command path, no arguments]
      Example file contents:
      secretpassword /opt/uptime-agent/my-scripts/show_temp.sh
      $%^& /usr/local/bin/appstatus.sh
  • For agents running on Windows systems, define a password and command pair in the up.time agent console by completing the following steps:
    • Open the up.time Agent Admin console and click on the Advanced > Custom Script link on the menu.
    • Provide a command name in the Command Name field (something easy to remember) and type the path of the script in the Path to Script field.
    • Click the Add / Edit button and close the window.
    • Type the password in the Password field, save it and restart the agent.

Verify that the agent-side command permissions allow the execution of the command by the user that the agent is run as. If the commands within your script require additional system permissions, you may need to alter the security settings for the execution of the agent.

Creating a Monitoring Station Script

The next step is to write a monitoring station script that will attempt to execute your agent-side script so the action profile can perform the task based on the script's output. The monitoring station script can be written in any language and format provided that it adheres to these general rules:

  • The script must exit with a success status (i.e. no errors during the execution).
  • The script must accept the host name of the agent system as the third argument (up.time will automatically add this argument to the arguments that are passed to the script).

In most cases the monitoring station script will contact an agent system and attempt to run a pre-defined agent-side script. You can use any transport tool (e.g. rexec, rsh or ssh) to contact the agent system. However, we recommend using the bundled agentcmd or netcat utility to contact your agent systems from your monitoring station script.

The agentcmd utility is commonly called in the format listed below to execute a command on the agent-side system. The following example uses the settings that were configured above to execute the agent-side script:

  • Format: /usr/local/uptime/scripts/agentcmd [-s/+s] -p [agent port] [agent hostname] rexec [password] [path]
  • Example: /usr/local/uptime/scripts/agentcmd my-agent -p 9998 rexec secretpassword /opt/uptime-agent/my-scripts/show_temp.sh my-arguments
  • For more information on agentcmd syntax, see Using the agentcmd utility.

The netcat utility is commonly called in the format listed below to execute a command on the agent-side system. This example uses the settings that were configured above to execute the agent side script:

  • Format: echo -n rexec [password] [path] | /usr/local/uptime/bin/netcat [agent hostname] [agent port]
  • Example: echo -n rexec secretpassword /opt/uptime-agent/my-scripts/show_temp.sh my-arguments | /usr/local/uptime/bin/netcat my-agent 9998
  • Note: the rexec text above does not indicate use of the rexec system utility, it is simply a key word used to indicate to the agent that you are attempting to run a pre-defined command.

For monitoring stations running on Windows:

  1. Open a command prompt and go to the <uptime dir>uptimescripts folder.
  2. Run the following command to verify if you can create a rexec session:
    agentcmd.exe -s -p 9998 [hostname] "rexec [password] [CommandName]"
    For example: C:Program Filesuptime softwareuptimescripts>agentcmd.exe -s -p 9998 testhost "rexec uptime test"

Creating an Action Profile and Adding it to a Service Monitor

The next step is to create an up.time Action Profile. Detailed steps for this process can be found on the Help link of the up.time web interface. However, the basic functions are as follows:

  • In the Recovery Script field of the Action Profile, enter the name and path to a script that resides on the monitoring station.
  • Add the Action Profile to a service monitor and perform a test by forcing the monitor to a CRIT status.

Example Monitor Configuration

Related Articles


Test Service Instance doesn't trigger action or alert profile

RatingViews
article

The Test Service Instance feature does not trigger action and alert profiles associated with the monitor by design.

By: uptime Support | Date Created: 12-31-1969 | Last Modified: 8-10-2011 | Index: 297

  2507

Automatically restarting a Windows service

RatingViews
article

Use an up.time action profile to automatically restart a stopped Windows service.

By: uptime Support | Date Created: 12-12-2006 | Last Modified: 7-28-2011 | Index: 105

  8801

Creating Custom Alert Scripts in up.time Alert Profiles

RatingViews
article

By: uptime Support | Date Created: 5-17-2006 | Last Modified: 8-9-2011 | Index: 065

  11637

Error running Custom Script or Agent-Side Script

RatingViews
article

Symptom: script is unable to successfully pass the value for a variable name. Resolution: try using %UPTIME_VARIABLENAME% (add UPTIME_ in front of the variable name in your XML script).

By: uptime Support | Date Created: 7-12-2011 | Last Modified: 8-11-2011 | Index: 543

  2144

How do I configure automatic recovery actions?

RatingViews
article

up.time can perform recovery actions when a service monitor goes critical. This is done with action profiles. Action Profiles are templates that tell up.time what action to take when a monitor...

By: uptime Support | Date Created: 1-30-2009 | Last Modified: 8-25-2011 | Index: 350

  5309

User Comments



No comments have been posted.

Copyright © 2021 IDERA, Inc.   Legal   Privacy Statement