出力時のログフォーマットを忘れることが多いため記事にしておく。
書いてて思ったのだが、これ思いっきりフォーマット変えるとツールのログ診断使えなくるかも。
2019/07/04更新:現時点での最新バージョンに対応
JIRA
log4j
log4j で出力したいときは下記 URL を参考にすればよい。
How to Enable User Access Logging - Atlassian Documentation
Tomcat
Tomcat Valve で出力したいときは下記 URL を参考にする。
Audit Confluence Using the Tomcat Valve Component - Atlassian Documentation
だが、例で載っているフォーマットはパースしにくくてあとで困ることになるので、
普通に Apache2 ライクなものにしておく。いまなら LTSV のほうが汎用的かな?
[JRASERVER-59405] Add thread name to Tomcat access.log logger - Atlassian JIRA
の提案を受け入れて、かつ X-Forward-for を追記したものにする。
pattern="%a %{jira.request.id}r %{jira.request.username}r %t "%m %U%q %H" %s %b %D "%{Referer}i" "%{User-Agent}i" "%{jira.request.assession.id}r" %{X-Forwarded-For}i %{X-Forwarded-Proto}i"
これで ${JIRA_INSTALL}/log/access_log.%Y-%m-%d.log というファイルで出力される。
fluentd の format は以下のような感じ
format /^(?<remote>[^ ]*) (?<request.id>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*) (?<response.time>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" "(?<ssession.id>[^\"]*)" (?<client>[^\"]*)?, (?<proxy>[^\"]*) (?<forwarded-proto>[^\"]*))?/
Confluence
log4j
JIRA と一緒
Tomcat
JIRA と一緒だけど jira.request.id に当たるものが見当たらなかったので削除、
jira.request.assession.id は User session id で代替。
Apache Tomcat Configuration Reference (6.0.53) - The Valve Component
pattern="%t %{X-AUSERNAME}o "%{User-Agent}i" %h "%r" %b %D %s "%{Referer}i" %I %{X-Forwarded-For}i"
fluentd の format は以下のような感じ
format /^\[(?<time>[^\]]*)\] (?<user>[^ ]*) "(?<agent>[^\"]*)" (?<remote>[^ ]*) "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<size>[^ ]*) (?<response.time>[^ ]*) (?<code>[^ ]*) "(?<referer>[^\"]*)" (?<tomcat.thread>[^ ]*) (?<client>[^,]*)(?:, +(?<proxy>[^ ]*) +\S*)?/
Bitbucket Server
Tomcat
Bitbucket Server はたしかデフォルトでアクセスログは吐かれていたはず。
ただ他のツールと初期のフォーマットがまるで違います。
Tomcat の valve 設定して他と合わせてほうが綺麗かも。
How to read the Bitbucket Server Log Formats - Atlassian Documentation
Configure Bitbucket Server Logging - Atlassian Documentation
nginx 等でプロキシさせている場合はアクセス元の IP を呼び出す用の設定が必要。
Log the original IP address when Bitbucket Server is behind a load balancer - Atlassian Documentation
Bitbucket Server のデフォルトログ用の fluentd の format は以下のような感じ
format /^(?<client>[^(,| )]*)(?:,+(?<proxy>[^\|]*))? \| (?<protocol>[^ ]*) \| (?<request.id>[^ ]*) \| (?<user>[^ ]*) \| (?<time>[^\|]*) \| "?(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)(?: +(?<git.action>[^ ]*))?(?: '+(?<git.repo>[^']*)')?"? \| "(?<referer>[^\"]*)"(?: +"(?<agent>[^\"]*)")? \| (?<code>[^ ]*) \| (?<byte.read>[^ ]*) \| (?<byte.written>[^ ]*) \| (?<labels>[^\|]*) \| (?<response.time>[^ ]*) \| (?<session.id>[^\ ]*) \|/