Edge SWG(旧 ProxySG)では高度なトラブルシューティング用のログに以下の3つがあります。
Policy TraceはPolicyにより取得が可能です。しかし PCAPや HTTP/debugは手動で開始、停止をする必要がありタイミング問題、あるいはログ容量の問題でお客様によっては取得のハードルが高くなっていました。
7.2 以上から、これらはある程度自動化され、ストレスなく取得が可能となりました。
SGOS7.2以上
手順概要:
設定例: いくつかのサイトで度々503が返る。すべてのクライアントから発生。
この例では対象 URLのリストを作りその中の1つに合致し、かつ 503が返された場合ログを残します。
合致するすべてのTransactionが対象です
Policy Trace, PCAPも合わせてとります
最大 50 トランザクションを取得し一度停止しますが1秒後にまた始めます
20230830:2350(UTC)まで取り続けます
(CPL Layerを追加し書き込みます)
define condition my_traffic
condition=suspiciousURL http.response.code=503
end
define condition suspiciousURL
url.domain=brdcm.com
url.domain=aaaaa.com
url.domain=bbbbb.com
end
define probe TestCase
condition=my_traffic
scope=transaction
target=http:all,ssl:all
policy_trace=yes
limit=50
limit.session=50
limit.reset=1
;alert=syslog:both
delivery=hold
expiry=20230830:2350
end
もう1つ CPL Layerを作ります
<diagnostic>
condition=my_traffic diagnostic.stop(pcap)
my_trafficに合致したら PCAPをStopします。
このエラー(事象)がでる前に PCAPの STARTをしておく必要があります。
PCAPは最大で止まってしまわないように 循環を指定します。
How to get a circular packet capture (pcap) on a ProxySG?
https://IP_address:port/Diagnostics/Traces をタイプすると 生成されたログが見えます
また PCAPの statisticsである Show statisticsをみると Current state: Stopped になっていることがわかります。
設定例2 クライアントへエラーが返るが Webサーバから返しているのか、SGが返しているのかわからない。特定のクライアントで発生する。
この例では対象クライアントIPを絞り、かつ SGがExceptionをクライアントへ返した場合ログを残します。
合致するすべてのTransactionが対象です
Policy Trace, PCAPも合わせてとります
define probe の内容は変更しません。
define condition mainCond
client.address=x.x.x.x condition=error50x
end
define condition error50x ; SGから返されるエラーは exceptionとして定義されているため それを利用 以下のどれかに matchした場合 conditionが tureとなる
exception.id=tcp_error
exception.id=ssl_failed
exception.id=ssl_client_cert_expired
exception.id=ssl_client_cert_ocsp_check_failed
exception.id=ssl_client_cert_ocsp_status_unknown
exception.id=ssl_client_cert_untrusted_issuer
exception.id=ssl_client_cert_revoked
exception.id=configuration_error
exception.id=internal_error
exception.id=authentication_failed
exception.id=content_filter_denied
exception.id=gateway_error
exception.id=invalid_request
exception.id=invalid_response
exception.id=dns_unresolved_hostname
http.response.code=503 ; これは Webサーバから返されるレスポンスコード 値のために入れています
end
define probe TestCase
condition=mainCond
scope=session
target=http:all,ssl:all
policy_trace=yes
limit=50
limit.session=50
limit.reset=1
delivery=hold
expiry=20230830:2350
end
もう1つ CPL Layerを作ります
<diagnostic>
condition=mainCond diagnostic.stop(pcap)
mainCondに合致したら PCAPをStopします。
https://IP_address:port/Diagnostics/Traces をタイプすると 生成されたログの一覧が見えます