Topic3 ログはなぜ大事か?
前回は、Dominoはそもそも何のためのシステムで、どうやって健康状態を確認するのかを書きました。
2回目の今回のテーマも近しいテーマで、「ログ」についてです。
Dominoサーバーは「IBM Domino Server」というサービスが提供しており、各機能ごとに「サーバータスク」と呼ばれるプロセスが立ち上がっている。では、そのサーバータスクそれぞれが、何時何分にどんな処理をしたか?それを示すのがログです。
例えば、AさんがBさんあてにメールを送信しました。という情報も、ログに残ります。(ログの詳細度設定によっては出ないので注意)
なので、例えばユーザーAさんが「Bさんにメールを送ったはずなのに届いていないと言われた。なんとかならないか!」と問い合わせてきた場合、真っ先に見るべきはログです。そこに「AさんがBさんへメールを送信した」というログさえ残っていれば、「いや、メールは送られたはずですよ。ログに残っています」と返せばいいのです。
新任太郎「そんなこと言っても、いや、相手は届いていないと言っている!Dominoのせいだ!みたいなことを言われたりしそうです」
そうかもしれません。しかし、法廷でも証拠がなければ裁かれないのと同様、ログにないことは真実と証明できません。極論をいえば、いくらおかしな挙動をした事実があっても、ログがなければDominoを犯人にできないのです。
新任太郎「でも、なんか偉い人にメールが届いていないといわれているときはどうすればいいのでしょうか」
ここからは管理者の経験がモノをいうところです。たとえばメール未着の案件ならば、
・メールルールでわけのわからないフォルダにメールが入ってないか?
・ユーザーが未読メールのみ表示の状態にしていないか?
などを疑ってヒアリングしていくわけです。
新任太郎「それでもメールがない場合はどうすればいいのでしょうか」
ユーザー自身が誤って消したのかもしれませんので、その線でログを再度見直すのです。このようにログは、すべての仮説の根拠となる事実の集合といえます。
新任太郎「Dominoのこと、めっちゃ信用してますね」
さんざん、弁護してきましたので。
Topic4 ログはどこにある?
ログの有用性をざっと話してしまいましたが、実際にログのある場所を示しておきましょう。まずNotesクライアントからサーバーのログを見る方法ですが、どのサーバーにも必ずデータフォルダ直下に「log.nsf」というDBがありますので、それを開いてください。
新任太郎「データフォルダってさらっと言いましたけど、それはなんですか」
失礼しました。Dominoサーバーは、一番最初に誰かがインストーラーからパッケージをインストールする作業をしているわけですが、その時に、「プログラムフォルダ」と「データフォルダ」のパスを指定します。デフォルトのパスはその時々のIBMさんの大人の事情によって変化しますが、たとえば以下のようなパスになります。
・プログラムフォルダ: C:\Program Files\IBM\Domino
・データフォルダ: C:\Program Files\IBM\Domino\data
余談ですが、昔からDominoの管理者をやっている人はこのパスにはあまりインストールしません。なぜなら「Program files」にある間のスペースが、バッチファイルなどでコマンドを実行したりするときに考慮が面倒なポイントになるからです。なので、昔からのDomino好きは「C:\Lotus\Domino」などをプログラムフォルダとすることが多いです。
新任太郎「Lotusってなんですか?車?」
その話はまたの機会に譲りましょう。
さて、プログラムフォルダとデータフォルダの違いですが、
・プログラムフォルダ:Dominoを動かすためのEXEファイルやDLLファイルなどが置かれている場所。つまり、利用する企業固有の情報はあまりない。ただし「notes.ini」というファイルがありここにはパラメータの一部が書かれているので要注意。
・データフォルダ:ユーザーのメールDBやアドレス帳など、Notesクライアントからアクセス可能なすべてのデータがつまったフォルダ。日々情報は更新されてゆく。Dominoのバックアップターゲットといえばここ。
で、肝心のログの場所に話を戻しますが、このデータフォルダ直下にある「log.nsf」というNotesDBの中に、ほぼすべての必要なデータが詰まっています。
新任太郎「さっそくDBを開いてみますね。なるほど、なんかうんざりするほど英語のメッセージがあります。さっそく3か月前に言われて放置していた案件の調査を・・・あ、ログがない!」
三か月も問い合わせを放置していたのですね、万歳。ところでlog.nsfに数ヶ月分もログをためているとDBがぶっ壊れますので、通常1週間とか、せいぜい一か月くらいで古いログは削除するように設定しますよ。
新任太郎「そんなぁ。ドラ○もん、なんとかしてください」
実は、notes.iniに「CONSOLE_LOG_ENABLED=1」というパラメータをセットすることで、テキスト形式でもログを出力することが可能です。このログは通常、データフォルダ下の「IBM_TECHNICAL_SUPPORT」というフォルダに出力されています。
新任太郎「確かに、なんかテキストファイルがいっぱいあります」
そうです、企業によってはこのテキストファイル群が肥大化することを懸念してこのログも自動ローテーションしていることもありますが、結構古いログまでさかのぼることが可能なケースが多いです。
新任太郎「なんだ、じゃあ最初からこっちを見ればいいんですね」
そうとも言えますが、サーバー上のテキストファイルに常時アクセスできるとも限りませんし、一部のログはlog.nsfでしかわかりやすく出力されなかったりもしますので一長一短です。ざっくりいうと、Notesクライアントから、直近のログを細かくみたいときはlog.nsf、ある程度長いスパンでログを検索したい場合はテキストのコンソールログを見る、というような使い分けがいいと思います。
新任太郎「なるほど。ところで、最新のログは常に更新されるんですよね?毎回ログを開きなおしてみるの面倒じゃないですか?」
そうですね。この場合はサーバーにインストールされた「Dominoコンソール」というアプリで、リアルタイムなログの出力情報を見ることができます。コンソールは、前回も触れた「Domino Administrator」からも見られるので、サーバー本体から見るか、自席のNotesクライアントから見るか、状況に応じて使い分けてください。
今回はこの辺で。ではまた次回。
【第01回 】Dominoは今日も動いている