
ほぼほぼすべてが得られましたが、これを見るのに時間がかかりすぎて欲しいものを達成する方法を失うのではないかと心配です。
私がやろうとしていること:
私のサーバーからアクセスログを取得し、出力を解析してフィードに提供します。matomoログ輸入業者したがって、「ライブ」ログを取得しています。本質的に、web server -> log -> parse -> matomo log importer
私がしたこと:
tailを使用してaccess.logの出力を解析できます。ジャックこのように:
tail -f /var/log/access.log | jq --compact-output '{ip: (.request.remote_addr | .[:-6]), host: .request.host, path: .request.uri, status: "\(.status)", referrer: "", user_agent: .request.headers."User-Agent"[], length: .size, generation_time_milli: .duration, date: (.ts | strftime("%Y-%m-%dT%H:%M:%S%z"))}'
これは私にJSON
matomoログインポーターの形式を提供します明らか。その後、ログを読み取る必要があるスクリプトがあります。
#!/bin/sh
echo "${@}" | python3 ./import_logs3.py \
--url=https://location --token-auth={TOKEN} \
--enable-http-errors --enable-http-redirects --enable-static --enable-bots \
--idsite=1 --recorders=4 --log-format-name=nginx_json {FILE}
スクリプトがファイルを処理し、解析後に完了する必要があるため、ここでブロックされます。ログを「ライブ」にインポートできるように、スクリプトを無期限に実行したいと思います。この例では、次のようなものを使用します。システムログこのスクリプトは、ログファイルが更新されるたびに実行されます。
似たようなことをするにはどうすればいいですか?使用tee
?tee
ファイルにアクセスする場合、ファイルが更新されるたびにそのファイルを指すスクリプトをどのように実行しますか?
助けてくれてありがとう!