質問
私はawstatsを実行しており、レポートはiis logfilesから構築されています。サイト上の実行されたperlscriptsのすべてのアクションを表示するための追加セクションがあります。
構成は次のようになります:
ExtraSectionName1="Actions"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\/cgi\-bin\/.+\.pl"
ExtraSectionFirstColumnTitle1="Action"
ExtraSectionFirstColumnValues1="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=HPB
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=20
MinHitExtra1=1
出力は次のようになります:
Action Pages Hits
foo 1234 1234
bar 5678 5678
しかし、異なるPerlスクリプトに同じ名前を持ついくつかのアクションがあります。
私はこれが必要です:
Script Action Pages Hits
foo.pl foo 1234 1234
bar.pl foo 1234 1234
foo.pl bar 5678 5678
bar.pl bar 5678 5678
誰かがそのようなレポートを作成する方法を知っていますか?
編集:
私はさらに調査を行い、ハッキングなしで2つの列を追加セクションに2つの列を持つことはできないと言ったすべてのフォーラムの投稿をしました awstats.pl
今、私はそれを使用して1つの列に入れようとしています URLWITHQUERY
このように出力するには:
Action Pages Hits
foo.pl?action=foo 1234 1234
foo.pl?action=bar 1234 1234
bar.pl?action=foo 5678 5678
...
新しい問題は、クエリにはアクションよりも多くのパラメーターがあり、順序付けられていないことです。私はこれを試しました
ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"
しかし、Awstatsは最初のブラケットペアから値を取得し、残りを無視します。内部的には機能していると思います $1
Perl Regex 'Magic'によって提供されました。
何か案は?
解決 2
解決策を見つけました。
awstats.pl
指定された追加セクションのデータを取得します line 19664 - 19750
これが私の修正です:
# Line 19693 - 19701 in awstats.pl (AWStats version 7 Revision 1.971)
elsif ( $rowkeytype eq 'URLWITHQUERY' ) {
if ( "$urlwithnoquery$tokenquery$standalonequery" =~
/$rowkeytypeval/ )
{
$rowkeyval = "$1$2"; # I simply added a $2 for the second capture group
$rowkeyok = 1;
last;
}
}
これにより、ExtrasectionFirstColumnValuesX Regexで指定された最初と2番目のキャプチャグループが得られます。
例:
ExtraSectionFirstColumnValues1="URLWITHQUERY,([a-zA-Z0-9]+\.pl\?).*(action=[a-zA-Z0-9]+)"
言うまでもなく、aを追加する必要があります $3 $4 $5 ...
より多くのグループが必要な場合。
他のヒント
多分?
ExtraSectionFirstColumnTitle1="Script"
ExtraSectionFirstColumnValues1="URL,\/cgi\-bin\/(.+\.pl)`enter code here`"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionFirstColumnTitle2="Action"
ExtraSectionFirstColumnValues2="QUERY_STRING,action=([a-zA-Z0-9]+)"
ExtraSectionFirstColumnFormat2="%s"