取引先の要望で、ファイルアクセスログをとらなきゃいけない。
ということでNASに使っているTeraStationでログ項目があったなぁと思ってチェックすると…ログサーバへログを吐けますよ、と。
本体でログ保存してくれるわけじゃないんだね。
仕方がないのでログホストを立てる。ついでにこのログホストにNTPサーバもやらせて、NAS間でタイムスタンプの整合性がとれるようにしてやる。
— 追記 —
どうやら、本体でもログは取れる。が、設定変更とかするとそれ以前のログを消しているようだ。
いずれにせよ、ログホストで取っておくほうがよさそうである。
———-
使っているディストリビューションがFedora Coreなので、ログホストにするには/etc/sysconfig/syslogで以下のような変更を書く。
SYSLOGD_OPTIONS=”-m 0″ < この行を
SYSLOGD_OPTIONS="-m 0 -r" < このように変更
で、サービスをリスタートすれば良し。
あとはTeraStation側の管理画面でログホストとしてこのホストを指定してやれば、/etc/log/messageにざぶざぶとログが吐かれる。
が、ちょっと待てよ。
取引先から”ログとっとけ”っていわれるってことは、”ログ見せろ”とか言われる可能性があるってことですよ。
そうすると/var/log/messageで取っててると要らないログまで見せなきゃいけないことになる。
ログ抜き出しで見せてもいいけど、なんにせよ編集しているのだから諍いのもとになる。
そうすると、Terastationのログ吐き出しがどのファシリティ値で来ているのかを調べなきゃいけない。
ファシリティ値というのは/etc/syslog.confで
cron.* /var/log/cron
と書かれているエントリ中の、例えば「cron」の部分。ドットで区切った後にログのレベルを書いて、最後にファイル名を書くのだ。
上記のエントリでは、「cronについては全てのレベルのログを/var/log/cronに書いといてね」となる。
ログファイルをわけるならば、このファシリティ値がわからないと指定が出来ないわけです。
local7というのがboot.logで使われているので、まぁこんなもんだろうとアタリをつけて切り分けてどこへ吐かれているのか見てみた。
local0.* /var/log/local0.log
local1.* /var/log/local1.log
local2.* /var/log/local2.log
local3.* /var/log/local3.log
local4.* /var/log/local4.log
local5.* /var/log/local5.log
local6.* /var/log/local6.log
local1とかになってるってことはRemote1とかあるんじゃねーのかとか思いながらも、まずは実験。
結果、TeraStationからのシステムログはlocal0へ、smbログはlocal6へ出ていることが判明。
めでたく切り分けが出来ることになった。
…だからさぁ、俺はマーケターだっつーのに。
——– 追記 2007/08/24 ————-
ファシリティがlocal0, Local6で飛んでくるのはTerastation “PRO”でした。
Terastationでは少し違うみたい。これらのファシリティでは切り分けてくれませんでした。





