pgsnmpd

pgsnmpd は、Linuxシステム上のAdvancedServerの現在の状態に関する階層情報を返すことができるSNMPエージェントです。 pgsnmpd は edb-asxx-pgsnmpd RPMパッケージを使用して配布およびインストールされます。 xx はAdvancedServerのバージョン番号です。 pgsnmpd エージェントは、スタンドアロンSNMPエージェント、パススルーサブエージェント、またはAgentXサブエージェントとして動作できます。

AdvancedServerのインストール後、 LD_LIBRARY_PATH 変数を更新する必要があります。次のコマンドを使用します。

$ export LD_LIBRARY_PATH=/usr/edb/as13/lib:$LD_LIBRARY_PATH

このコマンドは、 LD_LIBRARY_PATH の値を永続的に変更しません。 LD_LIBRARY_PATH の値を永続的に設定する方法については、Linuxのディストリビューションのドキュメントを参照してください。

以下の例は、読み取り専用アクセスを実装する pgsnmpd の最も単純な使用法を示しています。 pgsnmpd はnet-snmpライブラリに基づいています。net-snmpの詳細については、次を参照してください。

pgsnmpdの構成

pgsnmpd 構成ファイルの名前は snmpd.conf です。構成ファイルで指定できるディレクティブについては、 snmpd.conf のマニュアルページ( man snmpd.conf )を参照してください。

構成ファイルは手動で作成するか、 snmpconf perlスクリプトを使用して構成ファイルを作成できます。perlスクリプトはnet-snmpパッケージで配布されます。

net-snmpは、以下から入手できるオープンソースパッケージです。

snmpconf構成ファイルウィザードを使用するには、net-snmpをダウンロードしてインストールします。インストールが完了したら、コマンドラインを開き、次のように入力します。

snmpconf

構成ファイルウィザードが開くと、既存の構成ファイルを読み込むように求められる場合があります。 none を入力して、新しい構成ファイルを生成します(既存の構成ファイルに基づいていない)。

snmpconf はメニュー方式のウィザードです。メニュー項目 1:snmpd.conf を選択して、構成ウィザードを開始します。 snmpconf で表示される各トップレベルメニューオプションを選択すると、ウィザードは一連の質問を順番に実行し、構成ファイルの構築に必要な情報の入力を求めます。システムに関連する各カテゴリの情報を提供したら、 Finished を入力して snmpd.conf という名前の構成ファイルを生成します。ファイルを次の場所にコピーします。

/usr/edb/as13/share/

リスナーアドレスの設定

デフォルトでは、 pgsnmpd はポート 161 でリッスンします。リスナーポートが別のサービスで既に使用されている場合、次のエラーが表示される場合があります。

Error opening specified endpoint "udp:161".

snmpd.conf ファイルに次の行を追加することにより、代替リスナーポートを指定できます。

agentaddress $host_address:2000

この例では、 pgsnmpd にUDPポート 2000 でリッスンするように指示します。 $host_address はサーバーのIPアドレスです(例:127.0.0.1 )。

pgsnmpd を呼び出す前に、次のコマンドを使用して pgsnmpd スキーマを作成し、検索パスを設定して pgsnmpd スキーマにテーブルを作成する必要があります。

CREATE SCHEMA pgsnmpd;
SET search_path = pgsnmpd;
\i pgsnmpd.sql

pgsnmpdの呼び出し

AdvancedServerのインスタンスが稼働中であることを確認します( pgsnmpd がこのサーバーに接続します)。次の形式のコマンドでpgsnmpdを呼び出す前に、コマンドラインを開き、スーパーユーザー権限を引き受けます。

POSTGRES_INSTALL_HOME/bin/pgsnmpd -b
  -c POSTGRES_INSTALL_HOME/share/snmpd.conf
  -C "user=enterprisedb dbname=edb password=safe_password
      port=5444"

POSTGRES_INSTALL_HOME はAdvancedServerのインストールディレクトリを指定します。

-b オプションを含めて、 pgsnmpd がバックグラウンドで実行されるように指定します。

-c オプションを含めて、 pgsnmpd 構成ファイルのパスと名前を指定します。

AdvancedServerのインストールの接続情報( libpq 接続文字列の形式)を -C オプションの後に含めます。

pgsnmpdヘルプの表示

pgsnmpd ユーティリティを呼び出して他の pgsnmpd コマンドラインオプションを表示する場合は、 --help オプションを含めます。

pgsnmpd --help
  Version PGSQL-SNMP-Ver1.0
  usage: pgsnmpd [-s] [-b] [-c FILE ] [-x address ] [-g] [-C "Connect
  String"]
     -s : run as AgentX sub-agent of an existing snmpd process
     -b : run in the background
     -c : configuration file name
     -g : use syslog
     -C : libpq connection string
     -x : address:port of a network interface
     -V : display version strings

pgsnmpdからの情報の要求

net-snmp コマンドを使用して、 pgsnmpd サービスを照会できます。例:

snmpgetnext -v 2c -c public localhost .1.3.6.1.4.1.5432.1.4.2.1.1.0

上記の例では:

-v 2c オプションは、 snmpgetnext クライアントに要求をSNMPバージョン2c形式で送信するように指示します。

-c public はコミュニティ名を指定します。

localhost は pgsnmpd サーバーを実行しているホストマシンを示します。

.1.3.6.1.4.1.5432.1.4.2.1.1.0 は、要求されたオブジェクトのIDです。すべてのデータベースのリストを表示するには、最後の数字を1つ増やします(例:.1.1、.1.2、.1.3など)。

特定のオブジェクトのクエリに必要なエンコーディングは、MIB(管理情報ベース)で定義されています。SNMPクライアントは、さまざまなサーバーを監視できます。サーバーの種類によって、特定のサーバーによって公開される情報が決まります。各SNMPサーバーは、公開されたデータをMIB(管理情報ベース)の形式で記述します。デフォルトでは、pgsnmpdは次の場所でMIBを検索します。

/usr/share/snmp/mibs

$HOME/.snmp/mibs