Solaris 資料一覧
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 ""
関連資料・記事