2

私はpiwikを初めて使用し、大量のログをインポートしようとしています。log-format-regexについてサポートが必要です。ログのサンプル行は次のとおりです。

"1.1.1.1" 2.2.2.2 --myuser [09 / Dec / 2012:04:03:29 -0500] "GET /signon.html HTTP / 1.1" 304 "http://www.example.com/example" " Mozilla / 5.0(Windows NT 6.1; WOW64; rv:9.0.1)Gecko / 20100101 Firefox / 9.0.1

私のログ形式の正規表現は次のようになります。

--log-format-regex='\\\\"(?P<ip>\\\\S+)\\\\" \\\\S+ \\\\S+ \\\\S+ \\\\[(?P<date>.*?) (?P<timezone>.*?)\\\\] \\\\"\\\\S+ (?P<path>.*?) \\\\S+\\\\" (?P<status>\\\\S+) (?P<length>\\\\S+) \\\\"(?P<referrer>.*?)\\\\" \\\\"(?P<user_agent>.*?)\\\\"'

私は一貫してすべての「リクエストが無視された」と「無効なログ行」を取得しています。例えば:

ログインポートの概要

0 requests imported successfully
0 requests were downloads
236252 requests ignored:
    236252 invalid log lines
    0 requests done by bots, search engines, ...
    0 HTTP errors
    0 HTTP redirects
    0 requests to static resources (css, js, ...)
    0 requests did not match any known site
    0 requests did not match any requested hostname

log-format-regexを修正するにはどうすればよいですか?

ティア、ダン

4

1 に答える 1

3

piwik(resp。matomo)ログをインポートしてインポートする場合、--debugオプションを2回発行すると、無効な行が表示されます。

これはそれを示すスクリプトの例です(しかしこれは私の好みのログ形式です)

python /opt/piwik.git/misc/log-analytics/import_logs.py \
    --debug --debug \
    --url=$piwik_site \
    --log-format-regex='(?P<host>\S+) (?P<ip>\S+) \S+ \[(?P<date>.*?) (?P<timezone>.*?)\] "\S+ (?P<path>.*?) \S+" (?P<status>\d+) (?P<length>\d+) "(?P<referrer>.*?)"$'
    --add-sites-new-hosts \
    --enable-http-errors \
    --enable-http-redirects \
    --enable-static \
    --strip-query-string \
    --show-progress \
    --show-progress-delay 2 \
    --recorders $cpu \
    "$1"

$ 1は、インポート元のファイルの名前です(私のApache、Nginx、およびLighttpdボックスはすべてこれと同じ形式を使用しています)。

出力には、次のような数行が含まれます。

2013-09-03 19:42:34,145: [DEBUG] Invalid line detected (line did not match): edoceo.com 10.0.0.1 - [03/Sep/2013:16:41:03 -0700] "GET / HTTP/1.1" 301 - "-" "Some Bad Robot v0.1"

そして、それらは何が無効であるかを示し、正規表現を調整/微調整する方法の手がかりを提供します。

セットアップの詳細はhttp://edoceo.com/howto/piwik#importにあります。

于 2013-09-04T00:47:08.407 に答える