프록시에 대한 디버그 로깅을 늘립니다.에지 암호화 규칙

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기8분
  • 로그를 해석하고 프록시의 문제를 디버깅하기 위한 로깅 수준을 높입니다.

    현재 프록시에서 디버그 로깅을 늘리기 위한 세 가지 옵션이 있습니다 에지 암호화 규칙 . 문제를 디버그하기 위한 로깅 수준을 높이고, 더 자세한 로그 문을 활용하여 기술 지원 부서에 문제를 조사하기 위한 정보를 제공합니다.

    디버깅 중인 문제에 따라 다음 세 가지 방법 중 하나로 디버그 로깅을 설정합니다.

    • SSL 연결 이외의 디버깅 문제
    • 프록시를 통한 요청에 대한 타이밍 메트릭 로깅
    • 에지 암호화 규칙 프록시와 인스턴스 간의 SSL 연결 문제 디버깅

    모든 디버그 케이스의 경우 로그를 직접 보고 해석하거나 인시던트를 열어 기술 지원에서 ServiceNow 해석을 받아 문제 설명과 재현 방법을 제공할 수 있습니다.

    SSL 연결 이외의 애플리케이션 문제 에지 암호화 규칙 디버깅

    이 방법을 사용하면 프록시를 에지 암호화 규칙 중지하고 다시 시작하지 않고 애플리케이션 문제를 디버그할 수 있습니다. 이러한 단계는 로깅 수준을 높이고 보다 자세한 로그 문을 통해 근본 원인 문제를 해결하는 데 도움이 됩니다.

    시작하기 전에

    필요한 역할: admin

    주:
    $proxy_installation_location/conf/log4j2.properties 파일에 대한 변경 사항은 변경 후 약 60초 이내에 프록시에 의해 채택됩니다. 프록시를 다시 시작할 필요가 없습니다.

    프로시저

    1. $proxy_installation_location/conf/log4j2.properties 파일에서 다음 행을 찾습니다.
      logger.edge.level=info
    2. 위의 줄을 다음과 같이 변경합니다.
      logger.edge.level=debug
    3. 변경 사항을 저장합니다.
      변경 내용을 적용하는 데 최대 60초가 걸릴 수 있지만 프록시를 다시 시작할 필요는 없습니다.
    4. 문제를 재현합니다.
    5. $proxy_installation_location/logs/edgeencryption.log 파일에서 애플리케이션과 관련된 디버그 로그 문을 확인합니다.

    결과

    속성을 변경한 후 $proxy_installation_location/logs/edgeencryption.log 파일에서 추가 세부 정보를 볼 수 있습니다. 디버깅을 마쳤으면 $proxy_installation_location/conf/log4j2.properties 파일에 대한 변경사항을 되돌리십시오.

    프록시를 통한 요청에 대한 타이밍 메트릭 로깅

    타이밍 메트릭 로깅을 활성화하여 프록시에서 에지 암호화 규칙 처리한 각 요청에 대한 메트릭 문을 추가합니다. 이러한 각 타이밍 메트릭 로그 문에는 처리 시간 및 사용된 암호화 규칙과 같은 요청에 대한 유용한 정보가 포함되어 있습니다.

    시작하기 전에

    필요한 역할: admin

    주:

    추가 로깅 설정이 $proxy_installation_location/conf/log4j2.properties 파일에 추가됩니다. 변경 사항은 파일 변경 후 약 1분 이내에 프록시에 의해 동적으로 적용되므로 프록시를 다시 시작할 필요가 없습니다.

    프로시저

    1. 파일 끝에 다음 행을 추가하여 $proxy_installation_location/conf/log4j2.properties 파일을 수정합니다
      appender.timinglog.type=RollingFile
      appender.timinglog.name=TimingLog
      appender.timinglog.fileName=../logs/edgenetwork.log
      appender.timinglog.filePattern=../logs/$${date:yyyy-MM}/edgenetwork-%d{yyyy-MM-dd-HH}-%i.log.gz
      appender.timinglog.layout.type=PatternLayout
      appender.timinglog.layout.pattern=%d [%t] %-5p %m%n
      appender.timinglog.policies.type=Policies
      appender.timinglog.policies.size.type=SizeBasedTriggeringPolicy
      appender.timinglog.policies.size.size=500MB
      appender.timinglog.strategy.type=DefaultRolloverStrategy
      appender.timinglog.strategy.max=4
      
      logger.timing.name=com.snc.edgeencryption.metrics.EdgeEncryptionTimingMetricCache
      logger.timing.level=debug
      logger.timing.additivity=false
      logger.timing.appenderRef.rolling.ref=TimingLog
    2. 파일을 저장합니다.

    결과

    log4j.properties 파일이 저장되면 네트워크 시간에 대한 $proxy_installation_location/logs/edgenetwork.log 로그 파일에 다음 유형의 메시지가 표시됩니다.

    2022-07-21 12:56:15,783 [qtp1971991758-7700] DEBUG com.snc.edgeencryption.metrics.EdgeEncryptionTimingMetricCache -  request_uri=/api/now/ui/presencesysparm_auto_request=true&cd=1658433375754 request_method=POST client_request_received="2022-07-21 12:56:15,015" proxy_request_processing_time=6 all_rules_processing_time=0 rule_executed="REST JSON" rule_execution_time=1 proxy_instance_round_trip=14 proxy_response_processing_time=1 total_time_from_proxy=21 reponse_code=201 glide_user=SCv3_1:BAz1ZK7ee9XoroG2nvMlixHpgTvsT4fY2bwQvnH2WdU=:y5HGsTTqo3Pjq6G0xk4LoazCwCiWRJk4/6SpbXuBzqg=:6816f79cc0a8016401c5a33be04be441 jsessionid_suffix=037A66
    

    로그 메시지의 값은 다음과 같습니다.

    request_uri: The URI being requested
    
    request_method: The HTTP method being used, for example, GET, POST, PUT, PATCH, DELETE
    
    client_request_received: The timestamp noting when the HTTP client request arrived at the Edge proxy
    
    proxy_request_processing_time: How long the Edge proxy took to process the request in milliseconds
    
    all_rules_processing_time: Total time it took to execute all of the Edge Encryption rules for the request in milliseconds
    
    rule_executed: The name of the encryption rule that was executed
    
    rule_execution_time: How long it took to execute listed rule_executed in milliseconds
    
    proxy_instance_round_trip: The time from when the Edge proxy sent the request to the instance until the instance sent the response and was received by the edge proxy in milliseconds
    
    proxy_response_processing_time: How long the Edge proxy took to process the response in milliseconds
    
    total_time_from_proxy: The total time from when the Edge proxy received the request from the client and returned the response to the client in milliseconds
    
    response_code: HTTP response code 
    
    glide_user: The glide_user cookie value
    
    jsessionid_suffix: The JSession cookie suffix associated with the request

    프록시와 인스턴스 간의 에지 암호화 규칙 SSL 연결 문제 디버깅

    이 방법을 사용하여 프록시와 인스턴스 간의 에지 암호화 규칙 SSL 연결 문제(예: 프록시를 통한 인스턴스 액세스 실패)를 디버깅할 수 있습니다. 이러한 단계는 로깅을 늘리고 자세한 로그 문을 찾는 데 도움이 됩니다.

    시작하기 전에

    필요한 역할: admin

    주:
    SSL 연결 디버깅은 TLS 연결 유형 문제를 해결할 때만 관련이 있습니다. 실제로 이것은 일반적이지 않으며 거의 필요하지 않습니다.

    프로시저

    1. 프록시 서버를 중지합니다.
    2. Java 시작 특성인 $proxy_installation_location/conf/wrapper.conf 파일에 다음 행을 추가하십시오.
      wrapper.java.additional.<next available number in sequence> = -Djavax.net.debug=all
      

      예:

      For example: wrapper.java.additional.4 = -Djavax.net.debug=all
    3. 변경 내용을 저장하고 프록시 서버를 다시 시작합니다.
    4. 연결 문제를 재현합니다.

    결과

    문제를 재현한 후 $proxy_installation_location/logs/wrapper_<current date>.log 파일에서 SSL 교환과 관련된 디버그 로그 문을 찾을 수 있습니다. 디버깅을 마쳤을 때. 이전 단계에서 만든 줄을 제거하거나 주석을 달아 추가 로깅을 원격으로 수행할 수 있습니다.