Simple Network Management Program(SNMP)は、ネットワーク管理サービスのためのプロトコルです。通常、ネットワーク管理ソフトウェアは、SNMPを使用してルーターやスイッチなどのネットワーク・デバイスの状態の問合せまたは制御を行います。また、これらのデバイスはトラップと呼ばれる非同期アラートを生成して、管理システムに問題を通知する場合もあります。
TimesTenでは、SNMPを介して問合せや制御を行うことはできません。TimesTenで行うのは、ユーザーのリカバリ・メカニズムを簡素化するため、特定の重大なイベントに対してSNMPトラップを送信することのみです。TimesTenでは、次のイベントに対してトラップを送信できます。
表明(アサーション)障害
デーモンの停止
データ・ストアの無効
トランザクションのレプリケーション障害
データ・ストアの領域不足
トランザクションの自動リフレッシュ障害
レプリケーションの競合解消
ファイル書込みエラー
こうしたイベントが発生すると、TimesTenデーモンによってログ・エントリも書き込まれますが、これらのエントリをSNMPトラップを介して公開することで、ネットワーク管理ソフトウェアで迅速な処置を行うことができる場合があります。
SNMPのデータ型は、INTEGERまたはTEXTです。
ASN_INTEGERデータは、次のとおりです。
ttPid
ttDSNConn
ttDSCurSize
ttDaeInst
ttRepReceiverPort
ttDSReqSize
ttDaePid
ttDSMaxSize
ttCacheAgentPid
残りの変数は、ASN_OCTET_STRING型です。
デフォルトでは、PermWarnThreshold属性およびTempWarnThreshold属性のパーティション領域のしきい値に基づいて、データ・ストアの領域が少ないことが記録されます。 永続データ・ストアのメモリー・パーティションしきい値を定義するPermWarnThresholdが90に設定されている場合は、永続データ・ストアのメモリーが一杯であることを示すメッセージが記録されます。 データ・ストアの永続メモリーが設定されたしきい値よりも10%を下回った場合、すなわち、この例では80%を下回ると、データ・ストアの領域が少ない状態ではなくなったことを示す2つ目のメッセージが記録されます。
データ・ストアに接続するときに、PermWarnThreshold
およびTempWarnThreshold
属性を設定することによって、領域不足のしきい値を変更できます。 『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdおよびTempWarnThresholdに関する説明を参照してください。
SNMPトラップは、UDP/IPパケットです。したがって、配信される保証はなく、トラップのサブスクライバがない場合はエラーではありません。TimesTenが送信するのはSNMPv1トラップのみです。これは、すべてのネットワーク管理システムで認識されています。
SNMPトラップの生成を有効にするには、snmp.ini
ファイルの行-enabled 0
を削除するか、その行の0
を1
に変更します。TimesTenは、デフォルトではSNMPトラップを生成しません。これは、繰り返し発生する障害(一杯になったデータ・ストアに新しい行を挿入しようとし続けるアプリケーションなど)の場合に、SNMPトラップの生成によってアプリケーションのパフォーマンスが低下する場合があるためです。
ルート・インストールの場合は、UNIXシステム上の構成ファイル/var/TimesTen/snmp.ini
、およびWindowsシステム上のinstall_dir
\srv\info\snmp.ini
が、トラップの生成を有効または無効にし、SNMPトラップのコミュニティ文字列、ターゲット・ホスト、およびトラップをリスニングするターゲット・ポートを制御します。
注意: ルート以外のインストールの場合、ファイルはinstall_dir /snmp.ini です。install_dir はTimesTenインストールのパスです。 |
ファイルの内容は次のとおりです。
構成要素 | 説明 |
---|---|
enabled {0|1} |
SNMPトラップの生成を無効または有効にします。 |
-community {string} |
SNMPコミュニティ文字列です。 デフォルトはpublicです。 |
-trapdest {host:portnumber} |
SNMPトラップ・メッセージを受信するSNMPエージェントのホスト名およびポート番号です。 デフォルト・ホストはlocalhostです。 SNMPエージェントがリスニングするデフォルト・ポート番号は162です。
|
-trapport {portnumber} |
デフォルト・ポートを使用しない場合にローカル・マシンでSNMPトラップを受信するには、-trapportオプションでポート番号を指定します。 デフォルト・ポート番号は162です。-trapdestも-trapportも指定しない場合、トラップはデフォルト、つまりIPv4ループバック・アドレスにあるlocalhostのポート162に送信されます。
デフォルトのSNMPポート番号にアクセスするには、rootである必要があります。 rootでない場合は、ポート番号をアクセス可能な番号に変更してください。 |
オプションの環境変数TT_SNMP_INIによって、snmp.ini
ファイルの場所を上書きできます。この変数を設定する場合、SNMP送信側構成ファイルのフルパスを指定する必要があります。これに、snmp.ini
以外の名前を指定できます。
例3-1
メッセージを送信し、1つのターゲット宛先を設定する場合、snmp.ini
ファイルは次のようになります。
#Enable SNMP trap generation -enabled 1 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162"
例3-2
メッセージを送信し、複数のターゲット宛先を設定する場合、snmp.ini
ファイルは次のようになります。
#Enable SNMP trap generation -enabled 0 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162" -trapdest "pluto:10999" -trapdest "mymachine:189"
例3-3
トラップの生成を無効にする場合、snmp.ini
ファイルは次のようになります。
#Disable SNMP trap generation -enabled 0 #Default community is "public" -community "public" #Default trap destination is "localhost" and default destination SNMP trap port is 162 -trapdest "localhost:162"
1つ以上のオプションを指定しなかった場合、またはsnmp.ini
ファイルが欠落している場合は、各オプションのデフォルト値が使用されます。
SNMPトラップを受信するには、ネットワーク管理ソフトウェアが必要です。
デモ用に、TimesTenではプログラムinstall_dir
/demo/snmp/snmptrapd
が配布されています。このプログラムは、SNMPトラップをリスニングし、印刷やファイルへのログ出力を行います。 このプログラムの実行方法の詳細は、install_dir
/demo/snmp/README
を参照してください。
1つのトラップの最大パケット・サイズは、1024バイトです。1024バイトの制限を超えるデータがある場合は、トラップは制限内に切り捨てられます。この場合、トラップのttTrapTruncated OIDが1に設定されます。
注意: snmptrapd は、NET-SNMPプロジェクトの一部です。 http://net-snmp.sourceforge.net/ を参照してください。TimesTenではいかなる方法でもサポートされません。 CPANのhttp://www.cpan.org/ ディレクトリにあるUCD-SNMP perlモジュールを使用して、SNMPトラップを受信し、それに従って処理することもできます。 |
管理情報ベース(MIB)は、データベース・スキーマに似ています。これは、SNMPデータの構造について記述しています。一般的なMIBについては、前述したSNMPの概要に関するドキュメントを参照してください。
MIB拡張ファイルinstall_dir
/mibs/TimesTen-MIB.txt
では、TimesTenのSNMP情報の構造について記述しています。
TimesTenのOIDは、Private Enterprise 5549
に基づいています。 ルートへの完全なパスは、iso.org.dod.internet.private.enterprise.TimesTen
.*
または数字で1.3.6.1.4.1.5549
.*
です。
すべてのトラップには、トラップ発生時のグリニッジ標準時(GMT)タイムスタンプ、およびプロセスID、プロセスのユーザー名(または、UNIXシステムでのユーザーID)、TimesTenインスタンス名、TimesTenのリリース番号、トラップ固有のメッセージが含まれます。また、ほとんどのトラップには、そのメッセージ固有の追加情報があります。たとえば、ttRepAgentDiedTrap
には、レプリケーション・ストアIDがあります。各トラップの変数のリストについては、TimesTen-MIB.txt
ファイルを参照してください。
TimesTen SNMPトラップは、重大度レベルによって分類できます。トラップの情報は、次のいずれかです。
情報
警告
エラー
次の表に、各トラップとその重大度レベルを示します。
一般的なTimesTenトラップをsnmptrapd
で出力すると、次のようになります。
Enterprise Specific Trap (ttDSGoingInvalidTrap) Uptime: 4:34:16 enterprises.timesten.ttSystem.ttTimeStamp = "2002-07-20 22:24:49 (GMT)" enterprises.timesten.ttSystem.ttPid = 127 enterprises.timesten.ttSystem.ttUid = "SYSTEM" enterprises.timesten.ttSystem.ttVersion = "@(#) TimesTen Revision: 11.2.1.0.0 Date: 2008/07/07 18:24:10, instance giraffe" enterprises.timesten.ttMsg, ttMesg "Data store going Invalid (from master daemon)" enterprises.timesten.ttDataStore.ttDSName = "tptbmdata1121" enterprises.timesten.ttDataStore.ttDSShmKey = "DBI39775920.0.SHM.12" enterprises.timesten.ttDataStore.ttDSNConn = 2
このトラップは、Windowsシステムで実行中のTimesTenデーモンから生成されたものです。トラップを送信しているシステムのホスト名は、snmptrapd
によって出力されます。Uptimeフィールド(SNMPで必要)には、このトラップを生成したプロセスの起動時からの経過時間が示されます。 この場合、プロセスttsrv1121.exe
は、4時間34分16秒実行されています。
このトラップは、無効化されているデータベースのイベントのものです。そのため、データ・ストア名、データ・ストアの共有メモリー・キーおよびデータ・ストアへの現在の接続数も示されています。