Simple Network Management Program(SNMP)は、ネットワーク管理サービスのためのプロトコルです。 通常、ネットワーク管理ソフトウェアは、SNMPを使用してルーターやスイッチなどのネットワーク・デバイスの状態の問合せまたは制御を行います。 また、これらのデバイスはトラップと呼ばれる非同期アラートを生成して、管理システムに問題を通知する場合もあります。
次の各項では、TimesTenにおける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
型です。
デフォルトでは、TimesTenには、PermWarnThreshold
およびTempWarnThreshold
属性のリージョンのしきい値に基づいて、データベース・リージョンが少なくなることが記録されます。 永続データベース・メモリー・リージョンのしきい値を定義するPermWarnThreshold
が90に設定されている場合、TimesTenは永続データベース・メモリーがいっぱいであるというメッセージを記録します。 データベースの永続メモリーが設定されたしきい値よりも10%を下回った場合、すなわち、この例では80%を下回ると、データベースの領域が少ない状態ではなくなったことを示す2つ目のメッセージが記録されます。
データベースに接続するときに、PermWarnThreshold
およびTempWarnThreshold
属性を設定することによって、領域不足のしきい値を変更できます。 『Oracle TimesTen In-Memory Databaseリファレンス』のPermWarnThresholdに関する説明およびTempWarnThresholdに関する説明を参照してください。
SNMPトラップは、UDP/IPパケットです。 したがって、配信される保証はなく、トラップのサブスクライバがない場合はエラーではありません。 TimesTenが送信するのはSNMPv1トラップのみであり、これはすべてのネットワーク管理システムで認識されています。
SNMPトラップの生成を有効にするには、snmp.ini
の行-enabled 0
を1
に変更します。 SNMPトラップを生成すると、繰り返し発生する障害の場合(一杯になったデータベースにアプリケーションが新しい行を挿入しようとし続ける場合など)にアプリケーションのパフォーマンスが低下する可能性があるため、TimesTenではデフォルトでSNMPトラップが生成されません。
UNIXシステム上の構成ファイルtimesten_home
/conf/snmp.ini
を使用すると、トラップ生成の有効化または無効化、SNMPトラップのためのコミュニティ文字列、ターゲット・ホスト、およびトラップをリスニングするターゲット・ポートを制御できます。
注意: 各インスタンスには「インスタンス・ホーム」があります。timesten_home は、インスタンスに関連付けられたディレクトリ構造の最上位レベルを表します。 |
ファイルの内容は次のとおりです。
構成要素 | 説明 |
---|---|
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に送信されます。 |
オプションの環境変数TT_SNMP_INI
によって、snmp.ini
ファイルの場所を上書きできます。 この変数を設定する場合、SNMP送信側構成ファイルのフルパスを指定する必要があります(これには、snmp.ini
以外の名前を指定できます)。
例3-1 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 1 #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トラップ生成の無効化設定
トラップの生成を無効にする場合、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
ファイルが欠落している場合は、各オプションのデフォルト値が使用されます。
1つのトラップの最大パケット・サイズは、1024バイトです。 1024バイトの制限を超えるデータがある場合は、トラップは制限内に切り捨てられます。 この場合、トラップのttTrapTruncated
OIDが1に設定されます。
管理情報ベース(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トラップは、重大度レベルによって分類できます。 トラップの情報は、次のいずれかです。
情報
警告
エラー
表3-1は、各トラップとその重大度レベルを示しています。
表3-1 トラップの説明と重大度レベル
一般的なTimesTenトラップでは、次の情報が出力されます。
TimesTen::ttDSTraps Enterprise Specific Trap (TimesTen::ttDSGoingInvalidTrap) Uptime: 0:0:00:00.00 TimesTen::ttTimeStamp "2019-10-11 17:21:20 (GMT)" TimesTen::ttPid 128974 TimesTen::ttUid "4121" TimesTen::ttVersion "@(#)TimesTen: Release: 18.1.3.1.0 Date: 2019-10-11T16:28:39Z, instance instance1" TimesTen::ttMesg "Data store marked invalid" TimesTen::ttDSName "database1" TimesTen::ttDSShmKey "0x210738f" TimesTen::ttDSNConn 14
TimesTenデーモンから生成されたこの特定トラップは、データベース移動無効イベントに対するものです。 そのため、データベース名、データベースの共有メモリー・キーおよびデータベースへの現在の接続数も示されています。