ユーザー情報や組織情報などを一元的に管理するディレクトリサーバは、企業システムの中で重要な役割を果たしています。オープンソースの「OpenLDAP」によるディレクトリサーバの構築方法を解説した前連載に続き、その運用方法を紹介していきます。(編集部)
今回は、追加モジュールとして提供される監査ログを説明した後、これまでに紹介したログを一覧にまとめます。その後、OpenLDAPサーバを管理するうえで大切な、syslogへ送付されるログの基本的な読み方を説明していきます。
監査ログは、OpenLDAPサーバにモジュールを追加することで利用可能となる機能であり、指定したバックエンドデータベースに対して行われたすべての変更操作を、ファイルへと記録します。同じ追加モジュールであるアクセスログ(Accesslogモジュール)が、記録する操作を選択して別のバックエンドデータベースへ保存するのに対し、監査ログは、すべての変更操作をテキストファイルへと記録する点が異なります。
本連載で対象としているCentOSにバンドルされるOpenLDAPサーバ(openldap-serversパッケージ)には、監査ログモジュールが含まれていません。CentOS 5.3以降、監査ログなどのオーバレイ機能は、openldap-servers-overlaysパッケージとして、別途、提供されています。
また、監査ログは、OpenLDAPサーバのコンパイル時にも、デフォルトでは含まれないモジュールです。この機能を利用するには、コンパイルの過程で「--enable-auditlog=yes」、または「--enable-overlays=yes」など、明示的にコンパイルオプションを指定する必要があります(注1)。
$ CPPFLAGS=-I/usr/local/BerkeleyDB.4.8/include \ |
注1:「enable-auditlog」は監査ログモジュールのみ、「enable-overlays」はすべての追加モジュールを含めてコンパイルすることを指定するオプションです。
ここでは、監査ログを出力するディレクトリを「var/openldap-auditlog」として準備します。
# cd /usr/local/openldap-2.4.21 |
slapd.confには、記録対象とするバックエンドデータベースのセクションにて、次の設定を行います。「overlay auditlog」以下に指定可能なディレクティブは、出力先ファイルを指定する「auditlog」だけです。
# cd /usr/local/openldap-2.4.21 |
slapd.confの変更後は、OpenLDAPサーバを再起動し設定を反映させます。
# cd /usr/local/openldap-2.4.21 |
その後、監査対象のバックエンドデータベースに対する変更が行われた時点で「auditlog」ディレクティブで指定したファイルが作成され、LDIF(LDAP Data Interchange Format)形式で変更操作が記録されていきます。
監査ログには、どの操作にも共通して次の3行が最初に記録されます。
# 操作 記録時のUNIXタイム 対象データベース 変更者 |
その後は、追加、変更といった操作に応じて、ユーザー属性や運用属性が追加されます。そして最終行には再び、どの操作にも共通して次の1行が記録されます。
# end 操作 記録時のUNIXタイム |
次の出力例は、あるエントリを追加したときに記録された監査ログの内容です。
# cd /usr/local/openldap-2.4.21 |
以下に、OpenLDAPサーバのログ関連ディレクティブおよびOpenLDAPサーバのバックエンドに利用されることが多いBerkeley DBのログ関連ディレクティブをまとめます。
ディレクティブ | 設定ファイル | ログの役割 |
---|---|---|
loglevel | slapd.conf(グローバルセクション) | 運用時の管理、または動作状況のデバックに用いると便利なログ。loglevelディレクティブで出力内容(出力量)を調整し、syslogに送付し記録する。 |
logfile | slapd.conf(グローバルセクション) | 主にデバック時、導入時など、loglevelディレクティブで指定した内容を、syslogに加え、さらにファイルにも重複して出力したい場合に利用すると便利。 |
overlay accesslog | slapd.conf(各バックエンドセクション) | 主に監査目的で、指定したバックエンドデータベースに行われた特定の操作を、別のバックエンドデータベースに記録する。ldapsearchでの検索や一定期間を経過したログの自動削除が可能。 |
overlay auditlog | slapd.conf(各バックエンドセクション) | 主に監査目的で、指定したバックエンドデータベースに行われたすべての変更操作を、指定したファイルにLDIF形式で記録する。 |
set_lg_dir、set_lg_maxなど | DB_CONFIG | Berkeley DBが動作するうえで必要なトランザクションログファイル。Berkeley DBへの変更が記録される。set_lg_dirでトランザクションログファイルの出力先ディレクトリを、set_lg_maxでサイズが指定可能。また「set_flags DB_LOG_AUTOREMOVE」フラグを利用して自動削除が可能。 |
表1 ログ関連のディレクティブ一覧 |
OpenLDAPサーバはさまざまなログを出力でき、目的に応じて使い分けることができますが、OpenLDAPサーバの動作状況を把握するうえで有効な情報は、一般にsyslogへ送付されます。OpenLDAPサーバ側でloglevelディレクティブを“0”としない限り、“0”以外のどのレベルであっても、最低限必要と思われる情報はsyslogへ送付されます。
このためOpenLDAPサーバの管理者は、運用中に何かがおかしいと感じたとき、syslogが出力するログファイルを真っ先に確認することになるでしょう。
これ以降、loglevelディレクティブにOpenLDAPコミュニティでの推奨値である「256」(16進数で「0x100」、文字列で「stats」)が指定されていることを前提に、syslogに送付されるログの基本的な読み方を説明していきます。
Copyright © ITmedia, Inc. All Rights Reserved.