LiteSpeed (lsws) のログをドメイン毎に分割する設定方法

私の運営するブログサイト「logw」では、WebサーバーとしてLiteSpeed Web Server(lsws)を利用しています。Apache互換でありながら高速で、GUIによる設定が可能な点が気に入り、個人開発では長年愛用しています。

非常に優れたWebサーバーですが、ログ周りのデフォルト設定については、複数のサイトを運営する場合に少し注意が必要です。

今回は、lswsのデフォルトログ設定が抱える課題を整理し、仮想ホスト(ドメイン)ごとにログを分割して管理しやすくするための設定手順を解説します。

LiteSpeed デフォルトログ設定の3つの課題

lswsをインストールした直後の状態では、ログの出力に関して主に3つの課題があります。

デフォルトのログ格納場所は以下の通りです。

  • アクセスログ: /usr/local/lsws/logs/access.log
  • エラーログ: /usr/local/lsws/logs/error.log

課題1:全ドメインのログが1つのファイルに集約される

1台のサーバーで1つのドメインしか運用していない場合は問題ありません。しかし、私のように複数の仮想ホスト(バーチャルホスト)で「logw」や「管釣りどっとこむ」など、別々のサイトを運営している場合、全てのアクセスログとエラーログが上記の一つのファイルにまとめて記録されてしまいます。

これでは、ドメインごとのアクセス解析やトラブルシューティングが非常に煩雑になります。

課題2:アクセスログが記録されない

lswsのデフォルト設定では、エラーログは記録されますが、アクセスログは仮想ホスト側で設定を追加しない限り記録されません。 ApacheやNginxでも設定は必要ですが、lswsでも一手間かけないとアクセスログを取得できない点は覚えておく必要があります。

課題3:ログローテーション設定が不十分

ログファイルは放置すると際限なく肥大化します。lswsのデフォルトのログローテーション設定は、ローテーションされるサイズが10MBと大きめであったり、古いログがgzip圧縮されなかったりと、ディスク容量の観点や、いざログを確認する際の取り回しを考えると、少し不便です。

理想のログ設計を考える

これらの課題を解決するため、ログの取得方法を以下の方針で設計し直します。

方針:ドメインごとにログファイルを分割し、管理しやすい場所に配置する

具体的には、ログの出力先を以下のように変更します。SIEMのようなログ管理基盤を導入しているわけではない個人サイトでは、この形が最もシンプルで管理しやすいでしょう。

  • アクセスログ: /var/log/lsws/ドメイン名/access.log
  • エラーログ: /var/log/lsws/ドメイン名/error.log

この他にも/var/log/lsws/ドメイン名_access.logのようにファイル名にドメインを含める方法もありますが、今回はディレクトリで分ける方法で設定を進めます。

【実践】GUIでログ設定を変更する手順

lswsの魅力は、これらの設定をGUIの管理画面から直感的に行える点です。

Step 1: 管理画面へのログイン

まず、ブラウザでlswsの管理画面にアクセスし、ログインします。

https://サーバーのIPアドレス:7080

Step 2: 対象バーチャルホストのログ設定画面を開く

ログイン後、以下の順で設定画面に移動します。

バーチャルホスト > 設定したいドメイン名 > ログ タブ

画面には「バーチャルホストログ」と「アクセスログ」のセクションがあります。ここで個別設定をしない場合、サーバー全体のデフォルト設定が適用されます。

Step 3: エラーログの設定(バーチャルホストログ)

まず、エラーログから設定します。lswsの管理画面では「バーチャルホストログ」という項目がエラーログに該当します。

以下の通りに設定値を入力・変更します。

  • サーバーログを使用する: いいえ

    (※ここで「いいえ」を選ぶことで、サーバー全体の設定ではなく、この仮想ホスト固有の設定が有効になります)

  • ファイル名: $VH_ROOT/logs/error.log

    (※$VH_ROOTは各仮想ホストのルートディレクトリを指す変数です。ドキュメントルート内にlogsディレクトリが作られ、そこに保存されます)

  • ログレベル: NOTICE

  • ローテーションサイズ(バイト): 1M

  • 保持日数: 30

  • 圧縮アーカイブ: はい

Step 4: アクセスログの設定

次に、アクセスログを設定します。これを設定しないとアクセスログが一切記録されないため、注意してください。

  • ログ制御: Own Log File

    (※ここでOwn Log Fileを選ぶことで、独自のアクセスログファイルを出力する設定になります)

  • ファイル名: $VH_ROOT/logs/access.log

  • Piped Logger: (空欄のまま)

  • Log Format: (空欄またはお好みで設定。例:"%v %h %l %u %t \"%r\" %>s %b"

  • ログヘッダー: Referrer UserAgent Host にチェック

  • ローテーションサイズ(バイト) : 1M

  • 保持日数: 7

  • 圧縮アーカイブ: はい

  • バイトログ: (空欄のまま)

Step 5: LiteSpeedの再起動と確認

設定を保存したら、lswsを再起動して設定を反映させます。

# /usr/local/lsws/bin/lswsctrl restart

再起動後、設定したファイルパス(例:/home/example.com/logs/など)にaccess.logerror.logが生成されていれば設定は完了です。

まとめ

今回は、LiteSpeed Web Serverのログ設定をカスタマイズし、複数ドメインを運営しやすいように最適化する手順を解説しました。

デフォルト設定のままだと少し扱いにくい部分もありますが、GUIから簡単に設定変更できるのがlswsの良いところです。適切に設定を行うことで、ログの管理が格段に楽になり、トラブル発生時の調査も迅速に行えるようになります。

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS