ユーザー アクセスのログ取得を有効化する方法

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

監査のために、管理者では Confluence サイトでどのユーザーが何をしたかを確認する必要がある場合があります。通知はこの目的を実現するための最適な方法ではありません。アプリケーション サーバーではリクエストされた URL を記録することはできますが、ログインしているユーザーを特定することはできません。現時点でログはホストや get メソッドを含まないため、AWStats などの web ログ分析ツールでアクセス可能な形式ではありません。これらのログは手動で確認する必要があります。

Confluence でどのユーザーがどのページにアクセスしているかを示す基本的なログを生成することができます。Confluence の組み込みのアクセス ログ メカニズムを使用して、ユーザーと呼び出された URL を表示できます。これを有効化するには、いくつかの構成ファイルを変更して Confluence を再起動する必要があります。

AccessLogFilter の構成

Confluence のシンプルな AccessLogFilter を confluence/WEB-INF/classes/log4j.properties および confluence/WEB-INF/web.xml から有効化できます。

メモ:

  • アプリケーション全体の web ディスクリプタである $server/conf/web.xml は変更しないでください。これを行っても効果はなく、Confluence が破壊される可能性があります。 
  • IP アドレス、使用されたクライアント、リクエスト メソッドなどのより詳細なアクセス ログについては、以降の「Tomcat Valve Component アクセス ログ」セクションをご参照ください。

ユーザー アクセスのログ記録を有効化する方法

  1. confluence/WEB-INF/classes/log4j.properties で次の行のコメントを解除します。

    log4j.category.com.atlassian.confluence.util.AccessLogFilter=INFO
    
  2. 次の行のコメントを解除する (これらの行が含まれていない場合は追加する) ことで、confluence/WEB-INF/web.xml  でフィルターを有効化します。

    <filter-mapping>
        <filter-name>AccessLogFilter</filter-name>
        <url-pattern>/display/*</url-pattern>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>AccessLogFilter</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

    *.action パターンは、Confluence のページ ビュー以外のアクションを記録するためにオプションで追加されたものです。たとえば、login.action と指定してユーザー ログインを記録します。URL パターンの組み合わせはすべての URL で動作します。url-pattern フィールドを調整することでパターンをさらに調整できます。

    代替フィルター: トラブルシューティングを行う場合、Confluence へのすべてのアクセスを取得すると役立つ場合が多くあります。これを行うには、前述の設定内容の代わりに confluence/WEB-INF/web.xml で次のフィルター マッピングを使用します。

    <filter-mapping>
       <filter-name>AccessLogFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  3. Confluence を再起動します。

既定では、このログ情報は Confluence ホーム ディレクトリの atlassian-confluence.log ファイルに保存されます。アクティビティの数が多い大規模な環境の場合、これらのエントリはアプリケーション ログを素早く飽和させる可能性があるため、ログを別のファイルにパイプすることをおすすめします。詳細については後述の「高度な構成」セクションをご参照ください。

高度な構成

log4j.properties の最初に新しく RollingFileAppender を追加することで、アクセス ログを別のファイルにリダイレクトするように選択できます。

log4j.appender.accesslog=org.apache.log4j.RollingFileAppender
log4j.appender.accesslog.Threshold=DEBUG
log4j.appender.accesslog.File=${catalina.home}/logs/atlassian-confluence-access.log
log4j.appender.accesslog.MaxFileSize=20480KB
log4j.appender.accesslog.MaxBackupIndex=5
log4j.appender.accesslog.layout=com.atlassian.confluence.util.PatternLayoutWithStackTrace
log4j.appender.accesslog.layout.ConversionPattern=%d %p [%t] [%c{4}] %M %m%n

次の行を見つけます。

#log4j.category.com.atlassian.confluence.util.AccessLogFilter=INFO

次のように変更します。

log4j.category.com.atlassian.confluence.util.AccessLogFilter=INFO, accesslog
log4j.additivity.com.atlassian.confluence.util.AccessLogFilter=false

上述の web.xml の url-pattern はページ ビュー (/display/*) にのみマッチします。url-pattern を変更したり、別の種類のアクセスをログするようにフィルターマッピング全体を複製したりすることができます (管理機能については /admin/*、編集および作成については /pages/* など。/pages/editpage.action* は動作しない点にご注意ください)。

記録される情報

ログ ファイルには次の値がスペース区切りで含まれます。

  • スレッド名
  • ユーザー名。ユーザーが存在しない場合は "-"
  • URL
  • リクエスト開始時の VM の空きメモリ (KB 単位)
  • リクエスト完了後の空きメモリの変更量 (KB 単位)
  • リクエストにかかった時間 (ミリ秒単位)
  • リモート アドレス

例:

2008-08-08 10:33:05,359 INFO [atlassian.confluence.util.AccessLogFilter] init AccessLogFilter initialized. Format is: <user> <url> <starting memory free (kb)> +- <difference in free mem (kb)> <query time (ms)> <remote address>
2008-08-08 10:47:27,015 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/ds 42025-154 15 127.0.0.1
2008-08-08 10:47:27,187 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/ds/Confluence+Overview 41805+982 172 127.0.0.1
2008-08-08 10:47:36,296 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/ds/Breadcrumb+demonstration 42102-6660 156 127.0.0.1
2008-08-08 11:08:16,875 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/ds/test+firelite 34362-1616 188 127.0.0.1
2008-08-08 11:47:01,890 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/sand 59711-148 0 127.0.0.1
2008-08-08 11:47:02,171 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/sand/Home 59497-2302 234 127.0.0.1
2008-08-08 11:47:04,500 INFO [atlassian.confluence.util.AccessLogFilter] doFilter admin http://localhost:8080/display/ds/Tasklist 57124+155 1266 127.0.0.1

構成されている log4j パターンによっては、上述のログでは追加の log4j 生成テキストが先行している可能性があります。

その他のオプション

Google Analytics

Google Analytics を Confluence と簡単に連携してアクセスの追跡を行えます。

サインアップ後、JavaScript をコピーし、[管理] > [カスタム HTML] の "Before end of <body>" セクションにペーストします。これにより、Confluence が生成するすべてのページに JavaScript が含まれます。

ユーザーがファイアウォールや認証済みのプロキシの背後にいる場合、これは適切に動作しない可能性があります。

Confluence で Google Analytics を使用する方法の詳細については、David Simpson が作成したこのブログ記事をご参照ください。

Tomcat Valve Component アクセス ログ 

Tomcat Valve Component を使用して Confluence を監査する」をご参照ください。これにより、時間、ユーザー名、使用されていたクライアント、IP アドレス、リクエスト メソッド、リクエストの 1 行目 (メソッドおよびリクエスト URI)、送信バイト、HTTP ヘッダーの除外またはゼロの場合は "-"、およびレスポンスの HTTP ステータス コードなどの追加の詳細情報を取得できます。これらのログは異なるファイルに保存されますが、アクセス ログと照合することができます。

注意

  • パスにはバックスラッシュではなくスラッシュ "/" を含める必要があります。これは Windows ユーザーの場合に特に重要です。log4j ログ オプションの構成時に、パスのすべてのバックスラッシュをスラッシュとして記載する必要があります。たとえば、次のようなパスがあったとします。

    c:\confluence\data
    

    これは次のように記載する必要があります。

    c:/confluence/data
    
最終更新日: 2019 年 10 月 18 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.