この特集のトップページへ
この回のトップページへ

file

 file行を設定すると,特定のファイルのファイルサイズを監視したり,ファイルが一定バイト数を越えたときにエラー扱いとしたりすることができる。file行の設定書式は,次の通りだ。

file監視するファイル名エラー扱いとするファイルサイズ

 エラー扱いとするファイルサイズはキロバイト単位で指定する。省略した場合には,無限大が設定されたものとみなされる。

 デフォルトのsnmpd.confファイルには,file行は用意されていない。たとえば,/var/log/messagesファイルが5MBを越えたときにエラー扱いとしたいのであれば,snmp.confファイルに次のようなfile行を加える。

file/var/log/messages50000

 file行で指定された項目の情報は,snmpd.confファイルに登場した順番で,先頭から1,2,3,…のようにインデックス番号が付けられ,fileTableサブツリー(1.3.6.1.4.1.2021.15)以下に配列の形で格納される(Table 14)。

Table 14 fileTableサブツリー(1.3.6.1.4.1.2021.15
OID 1.3.6.1.4.2021.15.1
サブツリー名 fileEntry
用途 配下にファイル情報を含む階層ツリー。値はない
OID 1.3.6.1.4.2021.15.1.1.i
サブツリー名 fileIndex
用途 インデックス番号。file行の登場順に,先頭から1,2,…と振られる。iと同じ
OID 1.3.6.1.4.2021.15.1.2.i
サブツリー名 fileNames
用途 file行に指定した監視するファイル名
OID 1.3.6.1.4.2021.15.1.3.i
サブツリー名 fileSize
用途 fileNamesで指定されているファイルの現在のファイルサイズ(キロバイト単位)
OID 1.3.6.1.4.2021.15.1.4.i
サブツリー名 fileMax
用途 file行に指定したエラー扱いとするファイルサイズ(キロバイト単位)
OID 1.3.6.1.4.2021.15.1.100.i
サブツリー名 fileErrorFlag
用途 fileNamesで指定されているファイルがfileMaxで指定されているファイルサイズよりも大きくなっているかどうかのエラーフラグ。大きくなっていれば1,そうでなければ0
OID 1.3.6.1.4.2021.15.1.101.i
サブツリー名 fileErrorMsg
用途 fileErrorFlagが1であるとき,そのエラーメッセージ
iはインデックス番号。snmpd.confファイル中に出てきたfile行の登場順に,先頭から1,2,3,…という値。

 上に挙げた/var/log/messagesファイルを監視する例であれば,1つしかfile行を用意していないので,この/var/log/messagesファイルの監視項目のインデックス番号は1となる。よって,/var/log/messagesファイルの現在のファイルサイズ(キロバイト単位)は,1.3.6.1.4.1.2021.15.1.3.1に格納される。そして,設定されたエラー扱いとするファイルサイズである5Mバイト(50000キロバイト)を越えたときには1.3.6.1.4.1.2021.15.1.100.1の値が1に設定され,そのときのエラーメッセージが1.3.6.1.4.1.2021.15.1.101.1に設定される。

 このようにfile行を指定すると,特定のファイルを監視するのに便利だ。ただしfile行の指定は,あくまでも1つのファイルを監視対象とするものであり,あるディレクトリに含まれる総容量を調べるものではない。ディレクトリに含まれるファイルサイズを総和を監視したいのであれば,diskの指定を使うか(ただしその場合,ディレクトリではなくパーティションの監視になる),特定のディレクトリに対するfindコマンドやduコマンドの結果を加工して出力するようなスクリプトを用意しておき,それをexecの指定を使って呼び出すような手法をとることになる。

PREV 24/36 NEXT