snmp_config(5) ucd-snmp アプリケーションの設定法の説明

説明

ucd-snmp パッケージはアプリケーションの設定にいろいろな設定ファイルを用いる。 この man ページは、他の man ページで説明する必要のない、 設定ファイルの全体的な特徴のみを説明している。

検索されるディレクトリ

まず第一に、いろいろな場所に設定ファイルを置いて 読み込ませることができる。 アプリケーションは、デフォルトでは /usr/share/snmp, /usr/lib/snmp, $HOME/.snmp という順番で設定ファイルを探す。 これらのディレクトリ以下にある .conf と .local.conf という拡張子のファイルを探す (2 番目の拡張子のディレクトリを最後に読み込む)。 このような方法で、これらの設定ファイルのタイプについて、 設定ファイルが存在できる 6 つのデフォルトの場所がある。

さらに上記のデフォルトの検索パスは、 環境変数 SNMPCONFPATH を設定して変更できる。 SNMPCONFPATH には、検索するディレクトリを ':' で区切ったリストで指定する。

そして永続的なデータを格納するアプリケーションは、 設定ファイルを /var/snmp でも検索する。

設定ファイルのタイプ

各アプリケーションは複数の設定ファイルを使うことができる。 これら設定ファイルでアプリケーションのいろいろな設定を行う。 例えば、SNMP エージェント (snmpd) は snmpd.conf ファイルと snmp.conf ファイルの両方にある 設定ディレクティブの内容を解釈できる。 実際、大部分のアプリケーションが snmp.conf ファイルの内容を解釈できる。 ただし、ある設定ディレクティブが複数のファイルに存在したときに、 最初に読まれた設定ファイルでの指定だけが有効となり、 それ以降に読まれた設定ファイルでの指定は無効になる点に注意すること。 より詳しい情報を得るためには、 各設定ファイルタイプについての関連ページを読むこと。 大部分のアプリケーションはコマンドラインで '-H' スイッチをサポートしており、 各アプリケーションが参照する設定ファイルと 使用可能なディレクティブをリスト表示する。

snmp.conf はアプリケーション群全体に対する 設定ファイルとして想定されていて、 全ての snmp アプリケーションの基本的な特性を制御するための ディレクティブをサポートしている。 基本的な特性とはテキスト形式の SNMP mib ファイルの 操作法や解析方法のことである。

MID ファイルにおける設定タイプの変更

パーサーが読み込む設定タイプは mib ファイルの中で切り替えることができる。 このように言われても意味がわからないので、例を示す。 例えば、デフォルトでエージェントのパケットダンプ出力を有効にしたいが、 (snmpget, snmpwalk, ... といった) 他のアプリケーションでは 有効にしたくないといった場合である。 通常、設定ファイルでパケットダンプを有効にするには、

dumpPacket true

という行を snmp.conf ファイルに書く必要がある。 しかしこれでは、全てのアプリケーションでダンプが有効になってしまう。 そこで代わりに同じ行を snmpd.conf ファイルに書けば、 snmpd デーモンにのみ適用される。 ただし、パーサーにこの行を待ち受けるように指示する必要があり、 特殊タイプの指定トークンを [] セットの中に書き込まなければならない。 言い換えれば、snmpd.conf ファイルに以下の行を追加することで、 上記の snmp.conf ディレクティブを書き込めるということである。

[snmp] dumpPacket true

この行により、上の行が snmpd.conf ファイルではなく snmp.conf ファイルにある場合と同様にパーサーに解析させる。 1 行だけでなく複数の行をパースさせたい場合には、 特殊トークンのみの行を置くことにより、 コンテキストスイッチをファイルの残りの部分または 次のコンテキストスイッチディレクティブが現れるまで適用することができる。

# このファイルを snmp.conf トークンとして処理させる:
[snmp]
dumpPacket true
logTimestamp true
# 元の snmpd.conf トークンに戻る:
[snmpd]
rocommunity mypublic

コメント

文字 '#' で始まる設定ファイルの行は、 コメントとして扱われ、パースされない。

API インタフェース

エージェントの mib モジュールやアプリケーションで このシステムを利用するための C 言語のコードを書くための情報は、 read_config(3) の man ページにある。