Ubuntu Server 11.10、Squid 2.7.STABLE9を実行するプロキシサーバーがあります。一般的なapt-getインストールを使用してレポートを生成するためにsarg(2010年9月18日現在のバージョン2.3.1)をインストールし、5分ごとに現在の日付のレポートを生成するcronジョブを追加しました(5分前レポートが上書きされます)。報告))):
*/5 * * * * /root/proxy_report.sh
その内容は/root/proxy_report.sh
次のとおりです。
#!/bin/bash
/usr/bin/sarg -nd `date +"%d/%m/%Y"` > /dev/null 2>&1
毎時32:00にレポート全体を生成するために別のクローンジョブを追加しました(5分ジョブと競合しないように)。
*/32 * * * * /root/proxy_report_full.sh
その内容は/root/proxy_report_full.sh
次のとおりです。
#!/bin/bash
/usr/bin/sarg -n > /dev/null 2>&1
/etc/rc.local
起動時に実行する昨日の完全なレポート(昨日終了したレポート全体は、今日の新しい完全なレポートで上書きされません)を削除する小さなスクリプトを追加しました。
/usr/bin/rm_yesterday.sh &>> /var/log/rm_yesterday
どこ/usr/bin/rm_yesterday.sh
:
#!/bin/bash
find /var/www/sarg/ | grep `date -d Apr1 +"%Y%b%d"`-* | grep -v `date +"%Y%b%d"` | xargs rm -rf
*4月1日は代理店開始日です...
/usr/bin
**起動時にできるだけ早くインストールするように配置しました...
この配列は約1ヶ月半続きましたが、ある時点でいくつかのエラーやレポートが生成されないことがわかり、それをオフセット(2番目のcronジョブの32分から2分)に修正しました。しかし、今後はレポートを生成しなくなりました。手動でビルドしようとすると、次のエラーが発生します。
root@proxy-server:~# sarg -n
SARG: getword_atoll loop detected after 3 bytes.
SARG: Line="154 192.168.10.40 TCP_MISS/200 39 CONNECT www.google.com"
SARG: Record="154 192.168.10.40 TCP_MISS/200 39 CONNECT www.google.com"
SARG: searching for 'x2f'
SARG: getword backtrace:
SARG: 1:sarg() [0x8050a4a]
SARG: 2:sarg() [0x8050c8b]
SARG: 3:sarg() [0x804fc2e]
SARG: 4:/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x129113]
SARG: 5:sarg() [0x80501c9]
SARG: Maybe you have a broken date in your /var/log/squid/access.log file
/var/log/squid/
フォルダを見て、いくつかのローテーションログが含まれていることがわかりました。
root@proxy-server:~# ls /var/log/squid/
access.log access.log.1 cache.log cache.log.1 store.log store.log.1
もしそうなら、sargはlogrotateをインストールしましたか?それとも標準のUbuntuに付属していますか?手動でインストールした記憶はありません。
問題は:何が間違っている可能性がありますか?これは対数回転に関連していますか?エラーを追跡してレポート生成を再開するにはどうすればよいですか?
答え1
まず、sargについてはわかりませんが、問題はログファイルが原因であるようです。これは次の 2 つが原因で発生する可能性があります。
- イカ構成のランダムな文字/バイナリデータ/変更されたログ形式
- sargローテーションログファイルに問題がある可能性があります。
logrotate
に基づいてhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=369693またhttps://bugs.launchpad.net/ubuntu/+source/squid/+bug/268816この問題はログロテートのために発生したようです。