お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-04-23 15:21:19

leaf_hiro
メンバ
登録日: 2012-04-23

ldapのログ出力方法について

初投稿です。
よろしくお願いいたします。

表題の件ですが、現在ldapを使ってlinuxのログインとsambaのログインを共通にするための実験をしています。
linuxのログインはldapを使ってできるようになったのですが、samba側がうまく行かないのでログを確認しようとしております。
そこで、
「/etc/default/slapd」の「SLAPD_OPTIONS」に「-d 256」と記述してldapを再起動したところ、再起動途中で止まってしまいます。

service slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd

ここで止まります。

Ctrl-cでブレイクして、syslogを確認したところldapのstop処理まではログが表示されているので、ldapの起動時に失敗して止まっていると思います。

Apr 23 15:18:44 ldapserver slapd[1779]: daemon: shutdown requested and initiated.
Apr 23 15:18:44 ldapserver slapd[1779]: slapd shutdown: waiting for 0 operations/tasks to finish
Apr 23 15:18:44 ldapserver slapd[1779]: slapd stopped.

ログはここで止まる
おそらく、起動オプションの渡し方が悪いか何かで、標準入力待ちになっているのではと思っているのですが・・・。

どなたかldapのログを出力させる正しい手順を教えていただけないでしょうか?
よろしくお願いいたします。

オフライン

 

#2 2012-04-23 16:46:59

leaf_hiro
メンバ
登録日: 2012-04-23

Re: ldapのログ出力方法について

すいません自己レスです。

「-s 256」ではなく「-d 256」でした。
「-s 256」の場合は再起動できますが、どちらにしてもログレベルは変わりませんでした。

オフライン

 

#3 2012-04-23 17:02:52

leaf_hiro
メンバ
登録日: 2012-04-23

Re: ldapのログ出力方法について

さらに自己レスです。
なんとか解決したっぽいので、これであっているのか有識者の方のご意見いただければと思います。

「/etc/rsyslog.d/50-default」に「local4.* /var/log/ldap」を追加して、ldapというログを出力する設定をする。

loglevel.ldifというファイルを以下のように作成
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: 256

「ldapmodify -Y EXTERNAL -H ldapi:/// -f ./loglevel.ldif」を実行してログレベルを変更。

olcLogLevelの値はmanの「slapd.conf」から必要そうなレベルを記述。

となりました。
「slapd」のmanを読むとオプションで変えられそうなんですけどね~・・・。
よく分かりません。

オフライン

 

#4 2012-04-24 12:12:10

hito
管理者
登録日: 2007-03-18

Re: ldapのログ出力方法について

leaf_hiro による投稿:

さらに自己レスです。
なんとか解決したっぽいので、これであっているのか有識者の方のご意見いただければと思います。

やって頂いた方法で問題ないように思います。すくなくとも、「これはダメ」という要素は見当たりません。

「slapd」のmanを読むとオプションで変えられそうなんですけどね~・・・。
よく分かりません。

ちょっと手元で試してみたところ、「-d 256」するとdaemonize されずにフォアグラウンドジョブになってしまう仕様が発覚しましたというか、manにそう書いてありました……。

で、現状のslapdのinitスクリプトだと、これをされるとstartが終了しない、というバグだか仕様だかあいまいなところに問題がいます。

man slapd による投稿:

If this option is specified, even with a zero argument, slapd will not fork or disassociate from the invoking terminal.

オフライン

 

#5 2012-04-24 13:22:33

leaf_hiro
メンバ
登録日: 2012-04-23

Re: ldapのログ出力方法について

hitoさん返信ありがとうございます。

こちらでもう一度slapdのmanを読んでみたのですが、

-d debug-level
    Turn  on debugging as defined by debug-level.  If this option is
    specified, even with a zero argument, slapd  will  not  fork  or
    disassociate from the invoking terminal....

となっていたので、デバッグログのレベルを設定できるのかと思っていました。
が、manの先頭の方に

-d  flag  is  given, even with a zero argument, slapd will not fork and
    disassociate from the invoking tty.

とも書いてあるので、-dの後ろに数字が無ければフォアグラウンドジョブになるんですかね?
英語苦手なのでよく分かりません(^^;

ちなみに、man slapd.confを見ると

loglevel <integer> [...]
       Specify  the  level  at which debugging statements and operation
       statistics  should  be  syslogged  (currently  logged   to   the
       syslogd(8)   LOG_LOCAL4  facility)....

となっていたので、slapd.confと言うのを作ってみたり、「/etc/default/slapd」を書いたりしてみましたがうまく行かず、最終的にldifファイルで直接ログレベルを指定する方法に落ち着きました。

ubuntuの仕組みから言って、「/etc/default/slapd」に書くのが正解な気がするんですがね~・・・よく分かりません。

オフライン

 

Board footer

Powered by FluxBB