我有一些 squid 服务器,我使用 squidclient mgr:5min 命令来监控它们。我想使用以下命令来监控 http 服务时间;
squidclient mgr:5min | grep "client_http.all_median_svc_time"
但是当方法为CONNECT时时间非常高;
10.10.10.10 - - [26/Oct/2016:09:18:33 +0100] "CONNECT remote-domain.com:443 HTTP/1.1" 200 805 30564 "-" "-" TCP_MISS:DIRECT
(其中 30564 = %tr = 处理请求的时间,以毫秒为单位)
因此,很难监控,因为这些 CONNECT 请求有时会使 5 分钟平均值超过 30 秒。
有没有办法让 squidclient 命令忽略 CONNECT 方法请求......或者关于如何监控服务时间的任何其他建议。
我看过这个问题,使用 CONNECT 的 Squid HTTPS 隧道非常慢,但我不认为这是一个缓慢的问题,只是 CONNECT 方法保持连接的时间更长(我可能错了)提前致谢
答案1
仅供参考:我认为没有 CONNECT 方法就无法进行监控,因此我实施了一种变通方法。我跟踪日志文件的最后 100 行,如果 CONNECT 消息比其他消息多,我将 client_http.all_median_svc_time 设置为 0
RESULT=$(squidclient -h localhost mgr:5min)
CONNECT_RATIO=$(expr $(tail -n 50 access.log | grep -v CONNECT | wc -l) - $(tail -n 50 access.log | grep CONNECT | wc -l))
if [ $CONNECT_RATIO -lt 0 ]
then
ClientServiceTimeAVG=0
else
ClientServiceTimeAVG=$(echo "$RESULT" | grep "client_http.all_median_svc_time" | grep -Po '[0-9]+\.[0-9]+')
fi