| SysOrb Network Monitoring System Administrator's Guide: For version 4.4.0 | ||
|---|---|---|
| Prev | Chapter 12. SysOrb Tool | Next |
In this section we will present two scripts which automate the extraction of all data in SysOrb (except Incident Logs) through the sysorb-tool.
One script is for bash, and should work with all Unix'es where bash is installed. The other script is for Windows.
Example 12-1. Example extracting all data using bash
#!/bin/bash
#
# Change these variables to match your setup.
#
SOTOOL="/usr/bin/sysorb-tool"
USERNAME=admin
PASSWORD=admtest
DOMAIN=.
SERVER=localhost
# This directory will be created by the script. If such a file or
# directory already exists, it will be deleted.
OUTPUTDIR=output
STDCMDLINE="${SOTOOL} -l ${USERNAME} -P ${PASSWORD} -s ${SERVER} -d ${DOMAIN}"
# Prepare the output directory.
if [ -e "$OUTPUTDIR" ]; then
rm -rf "$OUTPUTDIR"
fi;
mkdir -p "$OUTPUTDIR"
# The outer loop extracts a list of all the nodes on the server.
$STDCMDLINE listnodes -r -o iN . | while read i; do
# The id of the node is the characters before the first space
NODEID=`echo $i | cut -d ' ' -f 1`
# The name of the node is the rest of the characters. Remember to
# translate /'es to _, as /'es are illegal in filenames.
NODENAME=`echo $i | cut -d ' ' -f 2- | tr / _`
echo "Exporting $NODENAME"
# The inner loop extracts all the checks on one of the nodes
$STDCMDLINE listchecks -o iN -i $NODEID | while read j; do
# The check's id and the checks name, is extracted in the same
# way as the nodes.
CHECKID=`echo $j | cut -d ' ' -f 1`
CHECKNAME=`echo $j | cut -d ' ' -f 2- | tr / _`
# Extract all data for the check. If there is only need for a
# period of data, the -b and -e options to the select command
# can be used, together with the unix date command.
$STDCMDLINE -f "$OUTPUTDIR/$NODENAME - $CHECKNAME".csv select -i $CHECKID
done;
done;
Example 12-2. Example extracting all data on Windows
@ECHO off
REM The parameters to the sysorb-tool. The current one logs in as the user
REM admin with the password admtest in the domain . on the server localhost
SET params="-l admin -P admtest -d . -s localhost"
REM Change sotool to point to the path of the SysOrb tool.
SET sotool="%ProgramFiles%\SysOrb Server\sysorb-tool.exe"
REM Execute the sysorb-tool in order to extract the list of all the domains.
%sotool% %params% -f %tmp%\nodes.txt listnodes -r -o iN .
REM Now use the nodes.txt file as a parameter to the for loop
FOR /F "tokens=1*" %%i IN (%tmp%\nodes.txt) DO (
REM echo Processing node %%j
REM Extract a list of all checks present on the node
%sotool% %params% -f %tmp%\%%i-checks.txt listchecks -o iN -i %%i
REM If there are no checks on the node, the file will not be created.
IF EXIST %tmp%\%%i-checks.txt (
FOR /F "tokens=1*" %%k IN (%tmp%\%%i-checks.txt) DO (
ECHO Extracting data for %%l on %%j to file %%k.csv
REM Store the name of the check in the first line
REM of the CSV file.
ECHO Node,CheckName > %%k.csv
ECHO %%j,%%l >> %%k.csv
REM Extract the data for the check.
%sotool% %params% select -i %%k >> %%k.csv
)
DEL /F %tmp%\%%i-checks.txt
)
)
rem DEL /F %tmp%\nodes.txt