TOPサーバ構築・運用> UNIX上のログファイルをイベントログ形式で参照する:Samba 3.0.21〜
Samba 4.0
Samba最新動向

第3回:Samba 3.0.20以降の新機能を追え(2)

著者:たかはしもとのぶ   2007/8/21
1   2  3  次のページ
UNIX上のログファイルをイベントログ形式で参照する:Samba 3.0.21〜

   この機能はSamba 3.0.20で追加されましたが、Samba 3.0.21のリリース時に大幅なパラメータの統廃合が行われたため、ここではSamba 3.0.21の新機能としてあつかいます。Samba 3.0.21以降ではいくつか設定が必要なものの、図1のようにUNIX上のログファイルをWindowsのイベントログのインターフェースを経由して参照する機能が追加されました。
UNIXのログファイルをイベントログのインターフェースで参照する
図1:UNIXのログファイルをイベントログのインターフェースで参照する
(画像をクリックすると別ウィンドウに拡大図を表示します)

   それではMessagesというカスタムログを作成する場合を例に取り、設定方法について簡単に記載します。カスタムログを作成するには「smb.conf」で下記のようにeventlog listパラメータやadmin userssパラメータ、C$共有の設定を行う必要があります。

smb.confファイルの設定

(画像をクリックすると別ウィンドウに拡大図を表示します)

   複数のカスタムログを作成する場合は「eventlog list = Messages Syslog」のようにスペースで区切って列挙してください。C$共有は存在さえしていればよく、読み取り専用、中身は空で構いません。これにより、Windows側からadmin usersで指定されたユーザやグループでアクセスすることでSambaが提供するイベントログを参照することが可能になります。

   Sambaが提供するイベントログにデータを入力する際は、eventlogadmコマンドを用います。このコマンドは、下記のようなフォーマット(以下、eventlogadmフォーマット)のエントリが列挙されたテキストファイルを標準入力から読み込み、引数で指定されたカスタムログにデータを出力します。

エントリの例(Samba 3.0.21用)
TMG: 1128631322
TMW: 1128631324
EID: 0
ETP: SUCCESS
ECT: 0
RS2: 0
CRN: 0
USL: 0
SRC: WSH
SRN: SAMBA30
STR: (root) CMD ( rm -f /var/spool/cron/lastrun/cron.hourly)
DAT:
  ← 必ず末尾に空白行を入れること

   eventlogadmフォーマットは、先頭から3文字の略語+「:」+データとなっています。詳細は以下の表1を参照してください。

略語 概要
LEN 0に設定すること
RS1 1699505740に設定すること(Samba 3.0.21には存在しない)
RCN 0に設定すること
TMG レコードが生成された時刻を1970年1月1日0:00からの経過秒数で記載する
TMW レコードが書き込まれた時刻を1970年1月1日0:00からの経過秒数で記載する
EID イベントログのID
ETP イベントの種類。INFO、ERROR、WARNING、AUDIT、SUCCESS、AUDIT FAILUREのいずれかを記載する
ECT イベントの分類
RS2 0に設定すること
CRN 0に設定すること
USL 0に設定すること
SRC イベントのソース
SRN コンピュータ
STR メッセージ本文。複数の文字列からなることもある
DAT 空に設定すること

表1:eventlogadmフォーマット

   また少なくとも筆者が検証したSamba 3.0.21cとSamba 3.0.25aでは、eventlogadmフォーマットが変更になっていました。eventlogadmフォーマットが異なっていると書き込みが失敗しますので注意してください(注1)。

※注1: このためかSamba 3.0.25aでは上記の設定を行っても、ログファイルへの書き込みができませんでした。この問題については現在調査中です。

   先述したエントリの例のような内容がrecord.txtというファイルに書き込まれている場合、下記のコマンドでイベントがMessagesというカスタムログに書き込むことができます。

# cat record.txt | eventlogadm Messages

   実際にこの機能を利用する場合は、ログが生成されるたびにその内容を変換したうえ、eventlogadmコマンドに流し込む仕掛けを作る必要があるでしょう。そのようなときは、Sambaアーカイブのexamples/script/eventlogにあるparselog.plスクリプトを用いることで一般的なsyslogファイルの出力形式をeventlogadm形式に変換することが可能です。

   例えば下記のように設定することで、このスクリプトを用いて/var/log/messagesファイルの内容をリアルタイムにMessagesというカスタムログに書き込み、Windows側から参照することが可能になります。

# tail -f /var/log/messages | parselog.pl | eventlogadm Messages

   ただしparselog.plは動作検証用のスクリプトであり、エラー処理などはまったく入っていませんので、実際に用いる際は注意してください。

1   2  3  次のページ


たかはしもとのぶ
著者プロフィール
たかはしもとのぶ
1970年生まれ。1993年早稲田大学第一文学部哲学科卒。同年NTTデータ通信株式会社(現:株式会社NTTデータ)に入社。
クライアント・サーバシステム全般に関する技術支援業務を長く勤める。UNIX・Windows等のプラットフォームやインターネットなどを中心とした技術支援業務を行なう中で、接点ともいうべきMicrosoftネットワークに関する造詣を深める。
現在は「日本Sambaユーザ会」スタッフなどを務め、オープンソース、Microsoft双方のコミュニティ活動に関わるとともに、各種雑誌への記事執筆や、講演などの活動を行なっている。


INDEX
第3回:Samba 3.0.20以降の新機能を追え(2)
UNIX上のログファイルをイベントログ形式で参照する:Samba 3.0.21〜
  UNIX上のログファイルをイベントログ形式で参照する(続き)
  WindowsのGUIからSambaユーザのユーザ名を変更する:Samba 3.0.21〜