Squid ログ:407 の後に 200 が続く場合、それを失敗と数えるべきか
Squid がチャレンジの後に成功したトンネルを記録したとき、認証のやり取りとは別に完了した処理を数えます。
クライアントがプロキシ認証情報なしでひとつのリクエストを送り、チャレンジを受け取り、その後正常に再試行したとします。リクエストログには二件の記録が残ることがあります。しかし、アプリケーションを使う人にとって完了した処理は一件だけです。
だからこそ、TCP_DENIED/407 と TCP_TUNNEL/200 に均等に分かれたログは、ただちに五十パーセントの失敗率を意味するわけではありません。まず、それらの記録がチャレンジと再試行の組になっているかを判断してください。
本当に必要なものを数える
| 測定項目 | 件数 |
|---|---|
| 認証チャレンジ | 認証を要求するプロキシの応答 |
| プロキシの試行 | 中継サーバーが記録した個々のトランザクション |
| 完了したジョブ | 意図した結果に到達したアプリケーションの処理 |
タイムスタンプ、クライアントの状況、宛先、利用できるリクエスト識別子を突き合わせます。認証なしの試行にはユーザー名が記録されないことがありますが、成功した再試行には記録されます。同時並行の活動がある場合、隣り合う行だけでは二件の記録が同じ処理のものだという弱い根拠にしかなりません。
成功したトンネルと成功したウェブサイトの処理も分けて考えてください。CONNECT の受け入れはトンネルを確立するだけで、宛先は TLS の途中で失敗したり、後からアプリケーションエラーを返したりする可能性があります。
繰り返される最終的なチャレンジ、後から完了しないジョブ、やり取りの件数の急な変化を調べてください。それらは、設定どおりに最初にチャレンジを受ける安定したクライアントとは異なります。ダッシュボードを緑にするためだけに認証を抑え込むのは、測定を直すのではなくサービスを変えてしまうことになります。