Solaris 資料一覧

NFSロギングを有効にする(NFSのログを出力)

2009/3/1更新

対応バージョン: 10

NFSサーバ上でNFSクライアントからのアクセス履歴を取るには以下の手順で行う。

/etc/default/nfslogdを編集し、ログ出力デーモンnfslogdの動作を設定

設定パラメータを以下に示す。

MAX_LOGS_PRESERVE=

保存するログファイルの最大数。

デフォルトは10。

MIN_PROCESSING_SIZE=

バッファファイルのデータをログファイルに書き込む際の最小サイズ(バイト)。

デフォルトは524288(byte)。

IDLE_TIME=

バッファファイル内にデータが残っているかどうかを確認するためのスリープ時間(秒)。

デフォルトは300(秒)。

CYCLE_FREQUENCY=

ログファイルの更新間隔(時間)。

デフォルトは24(時間)。

UMASK=

ログファイルのマスク値。

デフォルトは0137。

/etc/nfs/nfslog.confを編集し、ログファイルの格納ディレクトリや出力フォーマットなどを設定

ログファイルの属性は一連の設定にタグを付けて管理する。

タグに続けて設定するパラメータを以下に示す。

defaultdir=

ログファイル、及び関連ファイルの格納ディレクトリ。

デフォルトは/var/nfs。

log=

ログファイルのファイル名。

デフォルトはnfslog。

fhtable=

ファイルハンドルからファイルやディレクトリのパス名をマップするためのテーブルファイル名

デフォルトはfhtable。

buffer=

バッファファイルのファイル名。

デフォルトはnfslog_workbuffer。

logformat=

ログファイルの出力フォーマット。

basicかextendedが指定できる。

デフォルトはbasic。

例) 2つのタグを定義(最初のglobalはデフォルトタグ)

global  defaultdir=/var/nfs \
        log=nfslog fhtable=fhtable buffer=nfslog_workbuffer
test    log=test_nfslog fhtable=test_fhtable buffer=test_nfslog_workbuffer \
        logformat=extended

ここでログファイルの出力フォーマット毎の出力例を示す。

例えばNFSサーバ上の/export/home/testファイル(10Kb)をローカルにコピーした場合は以下のようになる。

・basic

Tue Mar  3 01:23:07 2009 0 jaguar 10240 /export/home/test b _ o r 60001 nfs 0 *

・extended

Tue Mar  3 01:25:42 2009 0 jaguar 10240 /export/home/test b _ read r 60001 nfs3-tcp 0 *

ログファイル中のフィールドの意味は以下のとおり。

Tue Mar  3 01:23:07 2009

アクセス時刻

0

read/writeにかかった時間(秒)

jaguar

クライアントホスト名

10240

入出力データサイズ(byte)

/export/home/test

アクセスされたファイルのパス

b

データタイプ(b:バイナリ)

_

特別なアクションが行われたかどうかを示すフラグ

o (basicの場合)
read (extendedの場合)

basicの場合、転送の方向(o:out, i:in)

extendedの場合、使用システムコール(read, write, setattr, create, remove, rename, mkdir, symlink, mknod, rmdir, link)

r

アクセスモード(NFSの場合は常にr)

60001

ユーザID

nfs (basicの場合)
nfs3-tcp (extendedの場合)

サービス名(extendedの場合はNFSのバージョンとプロトコルも出力)

0

認証メソッド(0は認証なし)

*

認証メソッドにより返されるユーザID(*は認証なし)

/etc/dfs/dfstabを編集し、ログを取得したいエントリにlogオプションを付加

logオプションの引数はnfslog.confで定義したタグを指定する。

例)

share -F nfs -o rw,log=global /export/home

NFSサーバ再起動

# svcadm restart network/nfs/server

通常のサーバ群に加え、nfslogdも起動する。

share確認

# share
-       /export/home   rw,log=global   ""

関連資料・記事