次は、ログの削除について説明します。このログ削除を怠って運用を続けていると、肥大化したログがディスク領域を圧迫しかねないので注意が必要です。
最も簡単なOpenLDAPサーバのログ削除は、ログローテートを利用する方法です。
# vi /etc/logrotate.d/syslog |
例えば、上記の例のように、/etc/logrotate.d/syslogファイルにローテーション対象としてOpenDLAPサーバのログファイル(ここでは、/var/log/ldap.log)を追加することで、CentOSでは、「毎週日曜日の朝4時過ぎに現行のファイルがローテーションされ、過去4世代分のファイルを保持し、それより古い世代のファイルは削除される」ようになります。
# date |
実際のOpenLDAPサーバの運用においては、OpenLDAPサーバが出力するログのほか、エントリ情報を蓄積するバックエンドデータベースのログファイルについても考慮しておく必要があります。ここでは、OpenLDAPサーバがデフォルトで採用するバックエンドデータベースBerkeley DBを対象にして、ログファイルの管理方法を説明します。
次の表は、OpenLDAPサーバのデータディレクトリに作成されるファイル一覧です。
ファイル名 | 役割 |
---|---|
DB_CONFIG | Berkeley DBの設定ファイル。Berkeley DBのホームディレクトリ(OpenLDAPの「datadir」以下)に配置する |
__db.[00X] | Berkeley DBのプロセス、スレッドが共有利用するメモリ領域(shared memory regions)を記録するファイル |
alock | OpenLDAPがBerkeley DBの重複利用や正常停止を管理するために利用するアクセスロック(Access LOCK)ファイル |
dn2id.bdb、id2entry.bdb | OpenLDAPのエントリ情報を蓄積するデータファイル。OpenLDAPではメインのデータファイルとなる |
log.[000000000X] | Berkeley DBのトランザクションログファイル。データの更新量に依存して増加。デフォルトのサイズは10Mbytes |
[インデックス指定属性名].bdb | OpenLDAPのインデックス情報を蓄積するデータファイル。インデックスを指定した属性ごとに作成される |
上記一覧中の、ファイル名が「log.」で始まり連番が付与されるファイルが、管理対象となるBerkeley DBのトランザクションログファイルです。
Berkeley DBのトランザクションログファイルの削除方法は、大きく分けて、
の2つがあります。
管理者が手動で削除を行う方法では、第2回で紹介したdb_archive -dコマンドを利用します。
# cd /usr/local/openldap-2.4.19/var/openldap-data |
トランザクションログファイルは、次の3つの条件を満たしている場合に削除が可能となります。ここで説明したdb_archive -dコマンドは、これら3つの条件を満たすファイルを選択したうえで削除できるコマンドです。
上記の例では、チェックポイントを明示的に実行し、更新内容をデータファイルへも書き出すことで、更新内容が、先行で書き込まれているトランザクションログファイルにのみ存在する状況をなくし、削除可能なトランザクションログファイルを増やしています。
第2回で紹介した、定期的にトランザクションログファイルをバックアップディレクトリに退避するような運用を行っている場合は、退避する前に削除してしまわないよう、db_archive -dコマンドを実行するタイミングに注意が必要です。
一方のBerkeley DBに自動で削除を行わせる方法では、Berkeley DBの設定ファイルであるDB_CONFIGファイルに“DB_LOG_AUTOREMOVE”フラグを指定します。
# cd /usr/local/openldap-2.4.19 |
この方法では、Berkeley DBへ更新が発生し、トランザクションログファイルへの書き込みが行われた時点で、削除可能なファイルがあるかどうかの判断が行われます。この方法は、定期的にトランザクションログファイルを退避させる運用には向かないことに注意してください。
Copyright © ITmedia, Inc. All Rights Reserved.