検索

21.10. SNMP を使用した Directory Server の監視

download PDF
21章サーバーおよびデータベースアクティビティーの監視で説明しているサーバーおよびデータベースアクティビティー監視のログ設定は、Directory Server に固有のものです。また、SNMP (Simple Network Management Protocol) を使用して Directory Server を監視することもできます。SNMP は、ネットワーク活動を監視するのに使用する管理プロトコルで、さまざまな機器をリアルタイムに監視することができます。
Directory Server は、AgentX サブエージェントを使用して SNMP を監視できます。SNMP 監視は、バインド情報、サーバーで実行される操作、キャッシュ情報など、Directory Server に関する有用な情報を収集します。Directory Server SNMP サブエージェントは SNMP トラップをサポートし、サーバーインスタンスの実行状態の変更に関する通知を送信します。

21.10.1. SNMP の概要

SNMP は広く普及しているため、相互運用性があります。このような相互運用性と、SNMP がさまざまなデバイスクラスに固有の多くのジョブを引き受けることができるという事実により、SNMP はグローバルネットワークの制御と監視のための理想的な標準メカニズムとなっています。SNMP により、ネットワーク管理者はすべてのネットワーク監視活動を統合することができ、Directory Server の監視もその一部となります。
SNMP は、ネットワークアクティビティーに関するデータを交換するために使用されます。SNMP では、ユーザーがネットワークをリモートで管理する管理デバイスとネットワーク管理アプリケーション (NMS) の間でデータが伝送されます。管理デバイスは、ホスト、ルーター、Directory Server などの SNMP を実行するすべてです。NMS は通常、1 つ以上のネットワーク管理アプリケーションがインストールされた強力なワークステーションです。ネットワーク管理アプリケーションは、管理している機器の情報、どの機器が稼働または停止しているのか、どのエラーメッセージをどれだけ受け取ったのか、などをグラフィカルに表示します。
NMS と管理デバイスに関する情報は、サブエージェントと マスターエージェント の 2 種類のエージェントを使用して転送されます。サブエージェントは、マネージドデバイスに関する情報を収集し、情報をマスターエージェントに渡します。Directory Server にはサブエージェントがあります。マスターエージェントは、さまざまなサブエージェントと NMS との間ので報を交換します。マスターエージェントは、通常、リモートマシンで実行できるものの、通信するサブエージェントと同じホストマシンで実行します。
問い合わせ可能な SNMP 属性 (変数とも呼ばれる) の値は、マネージド機器に保持され、必要に応じて NMS に報告されます。各変数は 管理オブジェクト と呼ばれ、エージェントがアクセスして NMS に送信できるものです。すべての管理オブジェクトは、ツリーのような階層を持つデータベースである管理情報ベース (MIB) で定義されます。階層の最上位には、ネットワークに関する最も一般的な情報が含まれます。その下の各ブランチはより具体的で、個別のネットワーク領域を扱っています。
SNMP は、プロトコルデータユニット (PDU) の形式でネットワーク情報を交換します。PDU には、マネージドデバイスに保存されている変数に関する情報が含まれます。これらの変数は、管理オブジェクトとも呼ばれ、必要に応じて NMS にレポートされる値とタイトルを持ちます。NMS とマネージド機器の間の通信は、NMS が更新情報を送信したり、情報を要求したり、マネージドオブジェクトがサーバーのシャットダウンや起動時に トラップ と呼ばれる通知や警告を送信することで行われます。

21.10.2. SNMP サポートの有効化および無効化

デフォルトでは、SNMP プロトコルが Directory Server で有効になり、サブエージェントの設定後にこれを使用できます。
インスタンスで SNMP を有効または無効にするには、nsSNMPEnabled パラメーターを on または off に設定します。たとえば、Directory Server インスタンスで SNMP を無効にするには、次のコマンドを実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

dn: cn=SNMP,cn=config
changetype: modify
replace: nsSNMPEnabled
nsSNMPEnabled: on

21.10.3. SNMP を使用してインスタンスを識別するためのパラメーターの設定

Directory Server は、SNMP を使用してインスタンスの特定に役立つ以下の属性を提供します。
  • nsSNMPOrganization
  • nsSNMPLocation
  • nsSNMPContact
  • nsSNMPDescription
パラメーターの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 の cn=SNMP セクションを参照してください。
たとえば、nsSNMPLocation パラメーターを Munich, Germany に設定するには、以下を実行します。
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

dn: cn=SNMP,cn=config
changetype: modify
replace: nsSNMPLocation
nsSNMPLocation: Munich, Germany

21.10.4. Directory Server の SNMP Agent の設定

SNMP プロトコルを使用して Directory Server から情報をクエリーするには、SNMP エージェントを設定します。
  1. 389-ds-base-snmp パッケージおよび net-snmp パッケージをインストールします。
    # yum install 389-ds-base-snmp net-snmp
  2. SNMP マスターエージェントを設定するには、/etc/snmp/snmpd.conf ファイルを編集し、以下のエントリーを追加してエージェントの拡張性 (AgentX) プロトコルを有効にします。
    master agentx
    AgentX プロトコルの詳細は RFC 2741 を参照してください。
  3. SNMP サブエージェントを設定するには、/etc/dirsrv/config/ldap-agent.conf ファイルを編集し、監視する各 Directory Server インスタンスに server パラメーターを追加します。以下に例を示します。
    server slapd-instance_name
  4. 必要に応じて、SNMP ユーザーアカウントを作成します。
    1. snmpd サービスを停止します。
      # systemctl stop snmpd
    2. SNMP ユーザーアカウントを作成します。以下に例を示します。
      # net-snmp-create-v3-user -A authentication_password -a SHA \
           -X private_password -x AES user_name
      コマンドで使用されるパラメーターの詳細は、net-snmp-create-v3-user(1) の man ページを参照してください。
    3. snmpd サービスを起動します。
      # systemctl start snmpd
  5. 必要に応じて、Directory Server 記述プロパティーを設定します。詳細については、「SNMP を使用してインスタンスを識別するためのパラメーターの設定」 を参照してください。
  6. dirsrv-snmp サービスを起動します。
    # systemctl start dirsrv-snmp
  7. 必要に応じて、設定を確認するには、以下を実行します。
    1. net-snmp-utils パッケージをインストールします。
      # yum install net-snmp-utils
    2. Directory Server オブジェクト識別子 (OID) をクエリーします。以下に例を示します。
      # snmpwalk -v3 -u user_name -M /usr/share/snmp/mibs:/usr/share/dirsrv/mibs/ \
           -l AuthPriv -m +RHDS-MIB -A authentication_password -a SHA
           -X private_password -x AES server.example.com .1.3.6.1.4.1.2312.6.1.1

21.10.5. SNMP トラップの設定

SNMP トラップは基本的に、監視対象のサーバーによって問題が発生した場合に通知をトリガーするしきい値です。トラップを使用するには、マスターエージェントを設定して、トラップを許可し、それらの操作を行うように設定する必要があります。たとえば、トラップは、Directory Server インスタンスの管理者が停止するメール通知をトリガーできます。
サブエージェントは、トラップをマスターエージェントに送信するだけです。マスターエージェントとトラップハンドラーは、使用している SNMP マスターエージェントのドキュメントに従って設定する必要があります。
トラップは Entity Table からの情報に付随します。これには、名前やバージョン番号などの Directory Server インスタンスに固有の情報が含まれます。Entity Table は、「エンティティーテーブル」 で説明されています。つまり、マスターエージェントがトラップを受けたときに取るアクションは、あるインスタンスでは dsEntityContact 変数に定義された電子メールアドレスに電子メールを送信する一方で、別のインスタンスでは dsEntityContact 変数に定義されたページャー番号に通知を送信するなど、柔軟に対応することができます。
サブエージェントでサポートされるトラップは 2 つあります。
  • DirectoryServerDown.このトラップは、サブエージェントが Directory Server が実行されていないことを検出するたびに生成されます。このトラップは、Directory Server インスタンスの説明、バージョン、物理的な場所、および連絡先情報と共に送信されます。詳細は、dsEntityDescr 変数、dsEntityVers 変数、dsEntityLocation 変数、および dsEntityContact 変数を参照してください。
  • DirectoryServerStart.このトラップは、サブエージェントが Directory Server が起動または再起動していることを検出すると常に生成されます。このトラップは、Directory Server インスタンスの説明、バージョン、物理的な場所、および連絡先情報と共に送信されます。詳細は、dsEntityDescr 変数、dsEntityVers 変数、dsEntityLocation 変数、および dsEntityContact 変数を参照してください。

21.10.6. 管理情報ベースの使用

Directory Server の MIB は、/usr/share/dirsrv/mibs ディレクトリーに保存されている redhat-directory.mib と呼ばれるファイルです。この MIB には、そのディレクトリーのネットワーク管理に関する変数の定義が含まれます。これらの変数は、管理オブジェクトと呼ばれます。ディレクトリー MIB および Net-SNMP を使用すると、ネットワーク上の他の全デバイスと同様にディレクトリーを監視できます。MIB を使用する方法は、「Directory Server の SNMP Agent の設定」を参照してください。
クライアントツールは、Directory Server MIB を読み込み、以下のセクションに記載されている変数名を使用する必要があります。
ディレクトリー MIB を使用すると、管理者は SNMP を使用してディレクトリーの管理情報を確認し、リアルタイムでサーバーを監視できるようになります。ディレクトリー MIB は、管理オブジェクトの 4 つの異なるテーブルに分類されています。
注記
SNMP に監視される Directory Server 属性はすべて、32 ビットシステムであってもカウンターに 64 ビット整数を使用します。

21.10.6.1. 操作表

Operations Table は、Directory Server のアクセス、操作、およびエラーに関する統計情報を提供します。表21.1「操作テーブル: 管理オブジェクトと説明」 redhat-directory.mib ファイルの Operations Table に格納されている管理オブジェクトについて説明します。
表21.1 操作テーブル: 管理オブジェクトと説明
管理オブジェクト 説明
dsAnonymousBinds サーバーの起動以降、ディレクトリーへの匿名バインド数。
dsUnauthBinds サーバーの起動以降、ディレクトリーへの認証されていないバインド数。
dsSimpleAuthBinds サーバーが起動してから、単純な認証方法 (パスワード保護など) で確立された、ディレクトリーのバインド数。
dsStrongAuthBinds サーバーの起動してから、強力な認証方法 (TLS や、Kerberos のような SASL メカニズムなど) を使用して確立されたディレクトリーへのバインドの数。
dsBindSecurityErrors サーバーの起動以降に、認証失敗または無効な認証情報により、ディレクトリーで拒否されたバインド要求の数。
dsInOps サーバーの起動以降、別のディレクトリーからこのディレクトリーに転送される操作の数。
dsReadOps アプリケーションが起動してからこのディレクトリーによる読み取り操作の数。LDAP は検索操作を使用して間接的に読み取り操作を実装するため、このオブジェクトの値は常に 0 になります。
dsCompareOps サーバーの起動時にこのディレクトリーによる比較操作の数。
dsAddEntryOps サーバーの起動時にこのディレクトリーによる追加操作の数。
dsRemoveEntryOps サーバーの起動以降、このディレクトリーがサービス化された削除操作の数。
dsModifyEntryOps サーバーの起動以降、このディレクトリーがサービス化された変更操作の数。
dsModifyRDNOps サーバー起動以降、このディレクトリーが処理する RDN 操作の数。
dsListOps サーバーの起動時にこのディレクトリーによるリスト操作の数。LDAP は検索操作を使用して間接的にリスト操作を実装するため、このオブジェクトの値は常に 0 になります。
dsSearchOps サーバーの起動以降、このディレクトリーで処理された検索操作の合計数。
dsOneLevelSearchOps サーバー起動以降、このディレクトリーが処理する 1 レベルの検索操作の数。
dsWholeSubtreeSearchOps サーバー起動以降、このディレクトリーが指定したサブツリー検索操作全体の数。
dsReferrals サーバー起動からクライアント要求に対応して、このディレクトリーが返す参照数。
dsSecurityErrors セキュリティー要件を満たしていないこのディレクトリーに転送される操作の数。
dsErrors エラー (セキュリティーエラーや参照エラー以外) のためにサービスを提供できなかった要求の数です。エラーには、名前エラー、更新エラー、属性エラー、およびサービスエラーなどがあります。部分的に設定されたリクエストはエラーとしてカウントされません。

21.10.6.2. エントリー表

Entries Table は、ディレクトリーエントリーの内容に関する情報を提供します。表21.2「エントリーテーブル: 管理オブジェクトと説明」 は、 redhat-directory.mib ファイルの Entries Table に保存されている管理オブジェクトを説明します。
表21.2 エントリーテーブル: 管理オブジェクトと説明
管理オブジェクト 説明
dsCopyEntries このディレクトリーのコピーが含まれるディレクトリーエントリーの数。このオブジェクトの値は、常に 0 になります (現在実行された更新は実行されていません)。
dsCacheEntries ディレクトリーにキャッシュされたエントリーの数。
dsCacheHits アプリケーションが起動してからローカルに保持されたキャッシュから指定された操作数。

21.10.6.3. エンティティーテーブル

Entity Table には、Directory Server インスタンスに関する識別情報が含まれます。「SNMP を使用してインスタンスを識別するためのパラメーターの設定」 で説明されているように、Entity Table の値は cn=SNMP,cn=config エントリーに設定されます。
表21.3「エントリーの表: 管理オブジェクトおよび説明」は、redhat-directory.mib ファイルの Entity Table に保存されている管理オブジェクトを説明します。
表21.3 エントリーの表: 管理オブジェクトおよび説明
管理オブジェクト 説明
dsEntityDescr Directory Server インスタンスの説明セット。
dsEntityVers Directory Server インスタンスの Directory Server のバージョン番号。
dsEntityOrg Directory Server インスタンスに対応する組織。
dsEntityLocation Directory Server インスタンスの物理的な場所。
dsEntityContact Directory Server インスタンス担当する担当者の名前と連絡先情報。
dsEntityName Directory Server インスタンスの名前。

21.10.6.4. 対話表

注記
Interaction Table はサブエージェントではサポート されていません。サブエージェントはテーブルをクエリーできますが、有効なデータで更新されることはありません。
表21.4「対話テーブル: 管理オブジェクトと説明」は、redhat-directory.mib ファイルの Interaction Table に保存されている管理オブジェクトを説明します。
表21.4 対話テーブル: 管理オブジェクトと説明
管理オブジェクト 説明
dsIntTable 表の各行で、監視される Directory Server とそれぞれのピア Directory Server との対話の履歴に関連する詳細が表示されます。
dsIntEntry Directory Server と相手の Directory Server との相互作用の詳細を示すエントリー。
dsIntIndex applIndex と共に一意の鍵の一部であり、(applIndex で参照される) Directory Server と相手の Directory Server との間の (試行された) 相互作用に関する有用な情報を含む概念的な行を特定するためのものです。
dsName このエントリーが属するピア Directory Server の識別名 (DN)。
dsTimeOfCreation この行が作成された場合の sysUpTime の値。ネットワーク管理サブシステムが初期化される前にエントリーが作成されると、このオブジェクトにはゼロの値が含まれます。
dsTimeOfLastAttempt この Directory Server に対する接続最終試行時の sysUpTime の値。ネットワーク管理サブシステムが初期化される前に最後の試行が行われた場合、このオブジェクトにはゼロの値が含まれます。
dsTimeOfLastSuccess この Directory Server に問い合わせた最後の試行時の sysUpTime の値。このエントリーは、成功した試行がない場合や、最後に成功した試行がネットワーク管理サブシステムの初期化前に行われた場合には、0 の値になります。
dsFailuresSinceLastSuccess この Directory Server への初回連絡の試行に成功した後の失敗回数。試行に成功しなかった場合、このカウンターには、このエントリーが作成されてからの失敗回数が格納されます。
dsFailures このエントリーの作成からの累積的な障害。
dsSuccesses このエントリーの作成以降、累積成功。
dsURL Directory Server アプリケーションの URL。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.