커넥터 디버깅
문제를 빠르고 효율적으로 해결하려면 Satellite 커넥터 인스턴스를 IBM Cloud Logs 인스턴스에 연결할 것을 적극 권장합니다.
콘솔에서 Satellite 커넥터 인스턴스에 액세스하십시오. Satellite 커넥터를 생성한 지역의 계정에 IBM Cloud Logs 인스턴스가 없는 경우 링크 로깅 섹션에서 연결을 클릭합니다. IBM Cloud Logs 인스턴스를 만들 수 있는 카탈로그 페이지로 이동합니다. IBM Cloud Logs 인스턴스가 이미 있는 경우 링크 로깅 섹션에서 구성을 클릭합니다. 그런 다음 기존 로깅 인스턴스를 선택하십시오. IBM Cloud Logs 인스턴스를 Satellite 커넥터에 연결한 후 링크에 대한 로깅 섹션을 사용하여 로깅 인스턴스 대시보드를 열면 커넥터에 대한 출력이 필터링됩니다.
로깅 인스턴스에는 플랫폼 로그 수신 이 사용으로 설정되어 있어야 합니다. 이 옵션을 사용하려면 로깅 인스턴스 목록에서 옵션- > 플랫폼 편집 을 선택하십시오.
일반적으로 두 가지 유형의 오류가 있습니다.
- 터널을 설정할 수 없습니다. 에이전트가 콘솔의 활성 에이전트 탭에 표시되지 않습니다.
- 터널이 설정되고 활성 에이전트 목록에서 에이전트를 볼 수 있지만 엔드포인트를 사용하여 IBM Cloud 에서 온프레미스 애플리케이션에 액세스할 수 없습니다.
터널을 설정할 수 없음 - 에이전트가 활성 에이전트 목록에 표시되지 않음
터널이 설정되지 않고 " 활성 에이전트 탭 아래 UI의 목록에 Satellite 커넥터 에이전트가 표시되지 않습니다.
커넥터 에이전트가 시작되는 시점부터 목록에 표시되는 시점까지 약 2분정도 지연됩니다.
2분후에도 에이전트가 계속 표시되지 않으면 다음 디버깅 단계를 따르십시오.
-
커넥터 ID및 영역이 올바르게 지정되었는지 확인하십시오.
-
로깅 대시보드를 열고 커넥터 로그를 검토하십시오. 종종 IAM API키에 문제가 있으며 다음 예제와 유사한 메시지가 표시됩니다. 자세한 정보는 내 API키가 작동하지 않는 이유 를 참조하십시오.
Failed to get configuration from API /v1/connectors/U2F0ZWxsaXRlQ29ubmVjdG9yOiJjaTExMGxpdzFwazluMGdybXUyMCI, region us-east, code: 401. IAM Error: "status code: 400. Provided API key could not be found.", API Error: "null", hostname: "482bddf6c60b"
-
에이전트 컨테이너의 로그를 확인하십시오. IBM Cloud Logs 대시보드에 오류가 없으면 에이전트가 터널 서버와 통신하기 전에 문제가 발생하고 있다는 뜻입니다. 에이전트 컨테이너의 로그 파일을 보고 자세한 정보를 얻을 수 있습니다. 명령은 컨테이너 플랫폼에 따라 다릅니다. Docker를 사용하는 경우 다음 명령을 사용할 수 있습니다.
docker logs <container id>
-
로그 메시지에서 문제가 무엇인지 판별할 수 있어야 합니다. 오류가 발생하는 가장 일반적인 이유는 에이전트에 IBM 터널 서버와 통신할 수 있는 공용 아웃바운드 액세스 권한이 없기 때문입니다. 내 커넥터 에이전트가 IBM Cloud를 사용하여 터널을 설정할 수 없는 이유 를 참조하십시오.
-
올바른 컨테이너 하드웨어 플랫폼을 사용 중인지 확인하십시오. 예를 들어, arm64 플랫폼에서 에이전트 이미지를 실행하려고 합니다. 커넥터 에이전트는 linux/amd64 플랫폼 또는 amd64를 에뮬레이트할 수 있는 플랫폼에서만 실행됩니다. 이 경우 다음과 유사한 오류가 표시됩니다.
{"msg":"exec container process `/usr/local/bin/node`: Exec format error","level":"error","time":"2023-06-16T14:37:54.000567792Z"}
Apple Mac 실리콘 사용자를 위한 참고사항: ARM64 프로세서를 사용하는 Apple silicon 이 있는 Mac에서 커넥터를 시도하는 경우, Rosetta2 가 설치되어 있으면 컨테이너 에이전트가 실행됩니다. 이는 일반적으로 Docker와 함께 설치됩니다. 커넥터 에이전트를 실행할 때 다음 경고가 표시됩니다.
icr.io/ibm/satellite-connector/satellite-connector-agent:v1.0.3 WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 43064456c42434f056348a32773a732d02d4a68690fc6b2b36790be8daa49bb2
이 경우 이는 경고일 뿐이며 커넥터 에이전트가 실행 중입니다. 경고를 표시하지 않으려면
docker run
명령에--platform linux/amd64
옵션을 지정할 수 있습니다. -
컨테이너 플랫폼이 이미지를 가져올 수 있는지 확인하십시오. 이미지는 IBM Container Registry (
icr.io/ibm/satellite-connector/satellite-connector-agent:<version>
) 에 있습니다. 이미지를 올바르게 지정했는지 확인하십시오. 에이전트를 실행하는 시스템에는icr.io
에 대한 네트워크 액세스 권한이 있으며 사용자가 IBM Container Registry에 로그인했습니다. 자세한 정보는 에이전트 이미지 가져오기 를 참조하십시오.
Docker Swarm 사용자 참고사항: "해당 이미지가 없음" 에 대한 다음 오류가 표시되는 경우:
icr.io/ibm/satellite-connector/satellite-connector-agent:v1.0.4 swarm-worker1 Shutdown Rejected 5 minutes ago "No such image: icr.io/ibm/sat…"
이는 Docker Swarm에서 이미지를 가져올 수 없음을 의미합니다. IBM Container Registry 신임 정보가 올바르지 않기 때문일 수 있습니다. 이 문제를 해결하려면 다음과 같이 하십시오.
- 서비스를 제거하십시오.
- IBM Container Registry 에 로그인합니다.
- 스택을 다시 시작하십시오.
터널이 설정됨 - 에이전트 컨테이너가 콘솔의 활성 에이전트 탭에 나열됨
에이전트 컨테이너가 콘솔의 활성 에이전트 탭에 나열되어 있는 경우 다음 디버깅 단계를 수행하십시오.
-
커넥터 인스턴스로 이동하여 로깅 대시보드를 여십시오. 그러면 커넥터 ID에 대한 로깅 출력이 자동으로 필터링됩니다.
-
오류 메시지를 검토하십시오.
터널이 설정되면 모든 오류는 IBM Cloud Logs 인스턴스와 에이전트의 컨테이너 플랫폼 로그 모두에서 찾을 수 있습니다. 대부분의 오류는 이제 IBM Cloud 내에서 터널을 통해 온프레미스에서 실행 중인 애플리케이션으로 엔드포인트에 액세스하려고 시도하는 오류입니다. 엔드포인트에 액세스할 때 연결 시작 시
flowlog
항목이 로깅 인스턴스에 기록됩니다. 예를 들어, 다음과 같습니다.flowlog: start for client 10.249.96.47:1206 connect to postgres.apps.wdc6.toddjohn.net:5432, conn_type: location
연결이 닫히면 연결에 대한 일부 세부사항과 함께 다른
flowlog
항목이 작성됩니다. 예를 들어, 다음과 같습니다.flowlog: end for client 10.249.96.47:1206 connect to postgres.apps.wdc6.toddjohn.net:5432, conn_type: location, duration 387 ms, BytesToCloud 2444, BytesFromCloud 168
지속 기간은 요청의 라운드트립 시간이 아니라 연결이 열린 시간입니다.
엔드포인트에 연결하는 중에 오류가 발생하면 오류의 세부사항을 포함하는
flowlog
항목이 작성됩니다. 예를 들어, 다음과 같습니다.flowlog: error when client 10.249.96.47:1209 connecting to postgres.apps.wdc6.toddjohn.net:5433, conn_type: location, detail: connect ECONNREFUSED 192.168.3.84:5433
-
flowlog
항목이 표시되지 않으면 IBM Cloud 애플리케이션에 CSE 엔드포인트에 대한 액세스 권한이 있고 올바른 엔드포인트 주소 및 포트를 사용하고 있는지 확인하십시오. 예를 들어, VPC 인스턴스 또는 VPC Kubernetes 클러스터를 사용 중인 경우 보안 그룹이 액세스를 차단할 수 있습니다. 보안 그룹이 VPC에서 CSE 엔드포인트 IP및 포트로의 트래픽을 허용하는지 확인하십시오. -
엔드포인트가 올바르게 구성되어 있고 온프레미스 애플리케이션이 구성된 대상 FQDN 또는 IP및 대상 포트에서 청취 중인지 확인하십시오. 온프레미스 애플리케이션이 컨테이너를 사용 중인 경우 해당 IP 주소가 변경되었을 수 있습니다. 자세한 정보는 IBM Cloud에서 내 엔드포인트에 도달할 수 없는 이유 를 참조하십시오.
-
동일한 커넥터에 대해 여러 에이전트를 실행 중인 경우 모든 에이전트가 엔드포인트에 대한 네트워크 액세스 권한을 가지고 있는지 확인하십시오. 각 연결 요청은 무작위 에이전트로 라우트되므로 모든 에이전트에는 모든 온프레미스 엔드포인트에 대한 네트워크 연결이 있어야 합니다. 특정 커넥터의 개별 에이전트를 대상으로 하는 메커니즘은 없습니다.