5.14.1 LANの監視に必要なファイルの設定
マニュアル高信頼化システム監視機能 HAモニタ Linux(R)(x86)編の「LANの監視に必要なファイルの設定」を参照してください。ただし,パブリッククラウド環境下では次の点が異なります。
-
LAN監視定義ファイル(LANインタフェース名称.conf)に指定する確認用パケット送出先としては,次のすべての条件を満たす送出先のIPアドレスを指定してください。
・HAモニタを起動する前に,送出先が起動していること。送出先よりHAモニタを先に起動すると,LAN障害を検知してしまいます。
・送出先は,HAモニタの稼働する系ではないこと。ペアとなるHAモニタがある系のIPアドレスは指定しないでください。
-
HAモニタの環境設定のlancheck_modeオペランドをrouteに設定してください。
-
必ずHAモニタ01-70以降で提供するLAN監視スクリプト(lanpatrol.sh)を使用してください。
-
LAN監視スクリプトには,次の条件を満たす送信元IPアドレスを指定してください。
・監視対象とするLANインタフェースに付与されたステーショナリIPアドレス。エイリアスIPアドレスを指定すると,LAN障害を検知してしまうおそれがあります。
LANの監視のスクリプトの修正例を次に示します。太字の個所を追記してください。
#!/bin/sh #****************************************************************************** #* * #* Linux(x86) HA Monitor * #* This is a sample of the LAN patrol command. * #* * #* [SYNOPSIS] * #* lanpatrol.sh interface [-r] * #* [OPTIONS] * #* interface * #* The name of the LAN interface. * #* -r * #* Route monitoring method * #* [DIAGNOSTICS] * #* 0 : normal * #* 1 : abnormal * #* 2 : error * #* * #* All Rights Reserved. Copyright (C) 2011, 2019, Hitachi, Ltd. * #* * #****************************************************************************** #set -x # retry interval(seconds) for receive packet number method. or # return wait(seconds) of ping command for route monitoring method. WAIT_TIME=3 # retry counter RETRY=3 # check interface and source IP address PATROL_IF[0]=eth0 SOURCE_IP[0]=192.168.0.1 PATROL_IF[1]=eth1 SOURCE_IP[1]=192.168.1.2 # environment variables PATH=/usr/bin:/usr/sbin:/bin export PATH : : : #****************************************************************************** #* [NAME] * #* exec_route_ping - execute ping command and wait return * #* [SYNOPSIS] * #* exec_route_ping interface * #* [OPTIONS] * #* interface * #* The name of the LAN interface. * #* [RETURN VALUE] * #* none * #****************************************************************************** exec_route_ping() { # specific source IP address SRCIP="" index=0 while [ ${PATROL_IF[$index]} ] do if [ ${PATROL_IF[$index]} = "$1" ]; then SRCIP="-I ${SOURCE_IP[$index]}" break fi index=`expr $index + 1` done # send some ECHO_REQUESTs and wait returns unset ping_pid unset dest_ip index=0 while read P_IPADDR do echo "`date` exec_route_ping read() DEST_IPADDR=`echo ${P_IPADDR}` WAIT=`echo ${WAIT_TIME}` SRC=`echo \'${SRCIP:-unspecified}\'`" (time ping -c 1 -w ${WAIT_TIME} ${SRCIP} ${P_IPADDR}) & ping_pid[$index]=$! dest_ip[$index]=${P_IPADDR} index=`expr $index + 1` done < ./etc/$1.conf echo "`date` exec_route_ping wait() start" unset ping_rtcd index=0 while [ ${ping_pid[$index]} ] do wait ${ping_pid[$index]} ping_rtcd[$index]=$? echo "`date` DEST_IPADDR=${dest_ip[$index]}, RESULT=${ping_rtcd[$index]}" index=`expr $index + 1` done echo "`date` exec_route_ping wait() end" return } :
・PATROL_IF[x]に監視対象のLANインタフェース名を指定します。
・SOURCE_IP[x]に送信元IPアドレスを指定します。
それぞれ[x]は配列の添え字です。監視対象のインタフェース名と送信元IPアドレスの組み合わせで添え字をそろえて指定してください。組み合わせが一つの場合でも添え字[0]を指定してください。
送信元IPアドレスには,ステーショナリIPアドレスが指定できます。エイリアスIPアドレスは指定できません。IPラベルも指定できますが,ホスト名の解決に時間が掛かることがあります。このため,IPアドレスを記述することを推奨します。
送信元にIPラベルを指定する場合であっても,変数名は"SOURCE_IP"とし,変更しないでください。