これらのスクリプトを使用すると、SNMP を使用してリモートで再設定できる拡張スクリプトを使用して、任意のシステムに ping できます。 そのため、sysedge.cf や他のカスタム スクリプトを編集する必要がありません。 任意の MIB ブラウザまたは SystemEDGE に用意された event snmpset ユーティリティから SNMP SET を使用することで、監視するシステムの名前を設定または変更できます。 拡張変数を読み取ると、ping 情報を含む文字列が取得されます。
SNMP を介して拡張スクリプトを再設定する方法
extension 31 octetstring readwrite '/opt/CA/test/ping.sh' (UNIX, Linux) extension 31 octetstring readwrite 'c:¥test¥ping.bat' (Windows)
C:¥SystemEDGE¥bin>.¥snmpget -o 1.3.6.1.4.1.546.14.31.0 1.3.6.1.4.1.546.14.31.0 Ping target must be set first
エラー メッセージが表示されます。
C:¥SystemEDGE¥bin>.¥snmpset -c private -o 1.3.6.1.4.1.546.14.31.0 -s my-sles3 1.3.6.1.4.1.546.14.31.0 my-sles3
C:¥SystemEDGE¥bin>.¥snmpget -o 1.3.6.1.4.1.546.14.31.0 1.3.6.1.4.1.546.14.31.0 my-sles3 is alive
スクリプトは、拡張にインデックス 31 があることを確認します。 ただし、この確認は技術的に必要でないため削除できます。その結果、拡張スクリプトは任意のインデックスに割り当てることができます。
スクリプト ping.bat および ping.sh により、設定情報が一時ファイルに格納されます。
UNIX および Linux の ping スクリプト
#!/bin/sh
#
# ping.sh example extension script
#
# A simple example script for the SystemEDGE agent extension group.
# This script implements a "Ping" SNMP MIB variable whereby
# Sets to this variable indicate what system should be pinged
# and Gets to this variable cause the Ping to occur and the
# output to be returned as an OctetString.
#
# For reference, the following are passed as parameters by the SystemEDGE
# Agent. They are not used in this script.
#
# The Extension Group Leaf Number
LeafNumber=$1
# The SNMP Operation: GET, GETNEXT, or SET
Operation=$2
# The value if a SET Operation
SetValue=$3
# determine which ping program to use
OSNAME=`/bin/uname -r`
OSTYPE=`/bin/uname -s`
if [ "$LeafNumber" = "31" ]; then
# setup who we should be pinging
if [ "$Operation" = "SET" ]; then
echo $SetValue > /tmp/sysedge.ping.target
echo $SetValue
fi
if [ "$Operation" = "GETNEXT" ]; then
Operation="GET"
fi
if [ "$Operation" = "GET" ]; then
if [ ! -f /tmp/sysedge.ping.target ]; then
echo "Ping target must be Set first"
exit 0
fi
case $OSTYPE in
Linux)
/bin/ping -c 1 -q -n `/bin/cat /tmp/sysedge.ping.target`
;;
HP-UX)
/etc/ping `/bin/cat /tmp/sysedge.ping.target` -n 1
;;
AIX)
/etc/ping -c 1 `/bin/cat /tmp/sysedge.ping.target`
;;
SunOS)
/usr/sbin/ping `/bin/cat /tmp/sysedge.ping.target` 2
;;
*)
case $OSNAME in
6.*)
/usr/etc/ping -c 1 -q -n `/bin/cat /tmp/sysedge.ping.target`
# IRIX PING は非常に面倒です。マシンがアライブかどうかを示している出力を 1 行取得できるのですが、
# 取得できているようには見えないからです。
# 出力を捕捉し、最後の行のみ echo するのも
# 1 つの方法です。
;;
5.*)
/usr/sbin/ping `/bin/cat /tmp/sysedge.ping.target` 2
;;
4.*)
/usr/etc/ping `/bin/cat /tmp/sysedge.ping.target` 2
;;
*)
echo 「システム用の PING コマンドを判断できません」 $OSNAME
exit 0
;;
esac
esac
fi
fi
Windows 用 PING スクリプト
@ECHO OFF @rem ping.bat のサンプル拡張スクリプト @rem @rem SystemEDGE エージェント拡張グループ用の簡単なスクリプト例。 @rem このスクリプトは、SNMP MIB 変数、「Ping」を実装します。実装することにより、 @rem この変数に対する Set は、PING する必要があるシステムを示し、 @rem この変数に対する Get は、PING を発生させ、 @rem 出力を OctetString として返します。 @rem @rem 参考までに、SystemEDGE エージェントによって、以下がパラメータとして @rem 渡されます。 @rem @rem 拡張グループのリーフ番号 set LeafNumber=%1% @rem SNMP の操作: GET、GETNEXT、または SET set Operation=%2% @rem SET 操作の場合の値 set SetValue=%3% @rem 使用する必要がある PING コマンド set PING=%SystemRoot%¥system32¥ping.exe @rem 後で使用できるよう、「環境」内のターゲットを @rem 変数 SYSEDGE_PING_TARGET を使用して保存します。 if not %LeafNumber% == 31 goto fi @rem Set の場合は、値があることを確認し、 @rem 保存してから、値を STDOUT に echo します。 @rem これは、拡張コードをわかりやすくするためです。 if %Operation% == SET if !%SetValue%==! goto error if %Operation% == SET @echo set SYSEDGE_PING_TARGET=%SetValue% > %TMP%¥pingtgt.bat if %Operation% == SET echo %SetValue% if %Operation% == SET goto fi @rem スクリプトを実行して、ターゲット名を回復します。 call %TMP%¥pingtgt.bat if !%SYSEDGE_PING_TARGET% ==! goto error @rem %SYSEDGE_PING_TARGET% の PING を echo %PING% -n 1 -w 250 %SYSEDGE_PING_TARGET% > nul if ERRORLEVEL 1 echo %SYSEDGE_PING_TARGET% not alive if not ERRORLEVEL 1 echo %SYSEDGE_PING_TARGET% is alive :fi goto exit :error echo PING ターゲットを最初に設定する必要があります。 :exit rem command.com には欠陥が多いので、クリーンアップを実行 set PING= set Operation= set LeafNumber= set SetValue=
| Copyright © 2011 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |