View a markdown version of this page

문제 해결 - AWS 변환

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

문제 해결

vCenter에 대한 검색 도구 연결 확인

VMware 모듈 구성 오류가 발생하면 다음 단계에 따라 연결을 확인합니다.

검색 도구 VM에 액세스
  • 검색 도구 VM에 로그인하고 vCenter에서 원격 콘솔을 엽니다.

    • 사용자 이름: discovery

    • 암호: 암호

vCenter 연결 테스트
  1. vCenter API 액세스 테스트:

    curl -v --insecure -u <username>:<password> https://<vcenter-ip-or-hostname>:443/mob
  2. 예상 성공 결과:

    [ec2-user@discoverytool ~]$ curl -v --insecure -u <user>:<password> https://vcsa/mob > tmp.txt % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 192.168.2.125:443... * Connected to vcsa (192.168.2.125) port 443 (#0) ... </xml> * Connection #0 to host vcsa left intact
SSL 인증서 테스트
  1. 다음 명령을 실행합니다.

    openssl s_client -showcerts -servername <hostname> -connect <hostname>:443
  2. 예상 성공 결과:

    • vSphere 인증서 세부 정보를 표시해야 합니다.

    • 포트 443에서 SSL/TLS 연결 확인

    [ec2-user@discoverytool ~]$ openssl s_client -showcerts -servername vcsa -connect vcsa:443 CONNECTED(00000003) depth=0 CN = vcsa.onpremsim.env, C = US verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = vcsa.onpremsim.env, C = US verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/CN=vcsa.onpremsim.env/C=US i:/CN=CA/DC=vsphere/DC=local/C=US/ST=California/O=vcsa.onpremsim.env/OU=VMware Engineering -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- --- Server certificate subject=/CN=vcsa.onpremsim.env/C=US issuer=/CN=CA/DC=vsphere/DC=local/C=US/ST=California/O=vcsa.onpremsim.env/OU=VMware Engineering ---

WinRM 문제 해결

WinRM에 연결 문제가 발생하는 경우 다음 단계에 따라 연결을 테스트합니다. 이 단계는 검색 도구가 WinRM을 사용하여 Hyper-V 호스트와 통신하기 때문에 Hyper-V 연결 문제에도 적용됩니다.

포트 5985(HTTP) 및 5986(HTTPS)을 사용하여 기본 WinRM 연결을 테스트합니다. 포트 5986(HTTPS)에서 연결이 작동하는지 확인해야 합니다.

# Check WinRM listener configuration winrm enumerate winrm/config/listener # Note: Replace <HOST> with the target computer's hostname or IP address. Adjust the username and password as needed. # Test WinRM connection on port 5985 (HTTP) $cred = Get-Credential Test-WSMan -Computer <HOST> -Authentication Negotiate -Credential $cred -Port 5985 # Test WinRM connection on port 5986 (HTTPS) Test-WSMan -Computer <HOST> -Authentication Negotiate -Credential $cred -Port 5986

위의 테스트가 실패하면 인증서 검증이 비활성화된 상태에서 PowerShell 세션을 설정해 보세요.

$cred = Get-Credential $so = New-PsSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck Enter-PSSession -ComputerName <HOST> -Credential $cred -Port 5985 -SessionOption $so

Kerberos 문제 해결

Windows 서버에서 데이터를 수집할 때 Kerberos 인증 실패가 발생하는 경우 다음 섹션을 사용하여 일반적인 문제를 진단하고 해결합니다.

네트워크 요구 사항 확인

Kerberos 인증 문제를 해결하기 전에 검색 도구가 필요한 네트워크 엔드포인트에 도달할 수 있는지 확인합니다.

Kerberos의 네트워크 요구 사항을 확인하려면
  1. 도메인 컨트롤러에 대한 DNS 확인을 확인합니다. 검색 도구 VM에서 다음 명령을 실행합니다.

    nslookup dc01.example.com

    또는 dig를 사용할 수 있습니다.

    dig dc01.example.com

    DNS 확인에 실패하면 Active Directory 도메인을 확인할 수 있는 DNS 서버를 사용하도록 검색 도구 VM이 구성되어 있는지 확인합니다. 네임서버 항목이 도메인 DNS 서버를 가리키는지 /etc/resolv.conf 확인하고 확인합니다.

  2. 포트 88에서 키 배포 센터(KDC)에 대한 연결을 확인합니다. 다음 명령을 실행합니다.

    nc -zv dc01.example.com 88

    예상 결과:

    Connection to dc01.example.com 88 port [tcp/kerberos] succeeded!

    연결이 실패하면 검색 도구 VM에서 포트 88의 도메인 컨트롤러로의 트래픽을 차단하는 방화벽 규칙이 없는지 확인합니다.

  3. WinRM 포트에서 대상 Windows 서버에 대한 연결을 확인합니다. 다음 명령을 실행합니다.

    nc -zv <windows-server> 5985 nc -zv <windows-server> 5986

    연결이 실패하면 대상 서버에서 WinRM이 활성화되어 있고 방화벽 규칙이 포트 5985 및 5986에서 인바운드 트래픽을 허용하는지 확인합니다.

일반적인 Kerberos 문제

다음은 일반적인 Kerberos 문제와 해결 방법입니다.

대/소문자 구분 오류

증상: 인증 중에 "Server not found in Kerberos database" 오류가 발생합니다.

이 오류는 일반적으로 Kerberos 영역 이름이 대문자가 아닌 경우에 발생합니다. Kerberos 영역은 krb5.conf 파일의 대문자로 지정해야 합니다. 예를 들어 example.com 대신 EXAMPLE.COM을 사용하세요.

계정 잠금 방지

검색 도구는 백오프 메커니즘을 사용하여 계정 잠금이 반복적으로 실패한 인증 시도를 방지합니다. 서비스 계정이 잠긴 경우의 검색 도구 웹 UI를 통해 컬렉션 모듈을 중지한 다음 시작하여 컬렉션 프로세스를 재설정할 수 있습니다https://<discovery-tool-vm-ip>:5000.

CLI에서 kinit 실패

다음 표에는 일반적인 kinit 오류와 해결 방법이 나와 있습니다.

오류 원인 솔루션
영역에 대한 KDC를 찾을 수 없음 KDC 호스트 이름 또는 IP 주소에 연결할 수 없거나 영역이에 구성되어 있지 않습니다krb5.conf. krb5.conf 파일에 올바른 KDC 호스트 이름과 영역이 포함되어 있는지 확인합니다. 포트 88에서 KDC에 대한 DNS 확인 및 네트워크 연결을 확인합니다.
사전 인증 실패 서비스 계정의 암호가 잘못되었습니다. 암호를 확인하고 다시 시도하세요. 계정이 잠긴 경우 다시 시도하기 전에 Active Directory에서 잠금을 해제합니다.
Kerberos 데이터베이스에서 클라이언트를 찾을 수 없음 보안 주체 이름이 Active Directory의 계정과 일치하지 않습니다. 보안 주체 이름이 대소문자를 포함하여 계정 이름과 정확히 일치하는지 확인합니다. 영역을 대문자username@REALM로 하여 형식을 사용합니다.
KDC의 네트워크 주소를 확인할 수 없음 DNS가 KDC 호스트 이름을 확인할 수 없습니다. 에서 DNS 구성을 확인합니다/etc/resolv.conf. DNS 서버가 KDC 호스트 이름을 확인할 수 있는지 확인합니다. nslookup 또는를 사용하여 테스트합니다dig.

성공적인 kinit에도 불구하고 수집 실패

kinit 성공했지만 데이터 수집이 여전히 실패하는 경우 다음을 확인합니다.

  1. 수집에 사용되는 보안 주체 이름이에서 사용되는 사례와 kinit 정확히 일치하는지 확인합니다.

  2. 서비스 계정에 대상 서버에 필요한 권한이 있는지 확인합니다.

  3. 대상 서버에서 WinRM이 활성화되어 있는지 확인합니다.

  4. 컬렉션에 사용되는 호스트 이름이 Active Directory에 등록된 호스트 이름과 일치하는지 확인합니다.

Kerberos는 일부 서버에서 작동하지만 다른 서버에서는 작동하지 않습니다.

일부 서버에서는 Kerberos 인증이 성공하지만 다른 서버에서는 실패하는 경우 다음 영역을 조사합니다.

서버가 여러 Active Directory 도메인에 걸쳐 있는 경우 각 도메인에 대해 별도의 Kerberos 자격 증명을 구성합니다. /etc/krb5.conf 파일에 모든 영역에 대한 항목이 포함되어 있는지 확인합니다. 각 도메인에는 올바른 username@REALM 보안 주체가 있는 자체 자격 증명이 필요합니다.

작동 중인 서버의 WinRM 구성을 장애가 있는 서버와 비교합니다. 각 서버에서 다음 명령을 실행합니다.

winrm get winrm/config

원격 데스크톱과의 연결을 테스트하여 문제를 격리합니다. 검색 도구는 형식을 사용하는 username@DOMAIN반면 원격 데스크톱은 형식을 사용합니다DOMAIN\username.

서비스 계정이 장애가 발생한 서버의 로컬 관리자 그룹의 멤버인지 확인합니다. 대상 서버에서 다음 명령을 실행합니다.

net localgroup Administrators

WMI는 운영 체제 정보에 액세스하려면 로컬 관리자 권한이 필요합니다. SQL Server 컬렉션에서는 서비스 계정에 대상 서버에 대한 로컬 관리자 액세스 권한이 있어야 합니다.

Kerberos 구성 체크리스트

데이터 수집을 시작하기 전에 다음 체크리스트를 사용하여 Kerberos 구성을 확인합니다.

  • krb5.conf 파일은 검색 도구 VM에 있습니다.

  • 영역 이름은에서 대문자로 표시됩니다krb5.conf.

  • 서비스 계정으로 kinit를 실행하면 오류 없이 성공합니다.

  • 를 실행하면 유효하고 만료되지 않은 티켓이 klist 표시됩니다.

  • 보안 주체 이름은 Active Directory 계정 이름과 정확히 일치합니다.

  • DNS 확인은 KDC 호스트 이름에 대해 작동합니다.

  • 포트 88에서 KDC에 대한 네트워크 연결이 확인됩니다.

  • 포트 5985 및 5986의 대상 Windows 서버에 대한 네트워크 연결이 확인됩니다.

  • (다중 도메인) 각 Active Directory 도메인에는 검색 도구에 자체 자격 증명이 구성되어 있으며 모든 도메인에 대한 [realms][domain_realm] 항목이 krb5.conf 포함되어 있습니다.

Oracle Database 문제 해결

누락된 데이터 또는 오류와 같은 Oracle Database 수집 문제를 진단하려면 다음을 확인하세요.

연결 거부 또는 제한 시간

증상: Oracle 컬렉션 상태에 서버의 연결 오류가 표시됩니다.

이 문제를 해결하려면 다음을 확인 하세요.

  • Oracle 리스너가 대상 호스트에서 실행 중인지 확인합니다. lsnrctl status

  • 검색 도구에서 포트 1521(또는 사용자 지정 포트)의 Oracle 호스트로의 네트워크 연결을 확인합니다. nc -zv <oracle-host> 1521

  • 방화벽 규칙이 Oracle 리스너 포트에서 인바운드 연결을 허용하는지 확인합니다.

  • Oracle 호스트lsnrctl services에서를 실행하여 서비스 이름을 확인합니다. 서비스 이름이 올바르지 않으면 Oracle 리스너가 연결을 거부합니다.

인증 실패(ORA-01017)

증상: 잘못된 사용자 이름 또는 암호 오류로 인해 수집이 실패합니다.

이 문제를 해결하려면 다음을 확인 하세요.

  • Oracle 서비스 계정이 존재하고 잠겨 있지 않은지 확인합니다. SELECT account_status FROM dba_users WHERE username = 'DISCOVERY_USER';

  • 수동으로 연결하여 암호가 올바른지 확인합니다. sqlplus discovery_user/<password>@<host>:1521/<service_name>

  • 계정이 잠긴 경우 잠금을 해제합니다. ALTER USER discovery_user ACCOUNT UNLOCK;

권한 부족(ORA-01031)

증상: 연결이 성공했지만 컬렉션이 불완전한 데이터를 반환합니다.

이 문제를 해결하려면 다음을 확인 하세요.

  • SELECT_CATALOG_ROLE이 부여되었는지 확인합니다. SELECT * FROM dba_role_privs WHERE grantee = 'DISCOVERY_USER';

  • 누락된 경우 필요한 역할을 부여합니다. GRANT SELECT_CATALOG_ROLE TO discovery_user;

수동 자격 증명에 오류가 표시되지만 자동 연결이 작동합니다.

자격 증명을 서버에 수동으로 고정하면 연결이 실패해도 검색 도구가 폴백되지 않습니다. 자격 증명에 구성한 포트 및 서비스 이름이 해당 특정 서버의 Oracle 리스너와 일치하는지 확인합니다. 서버에 비표준 포트 또는 서비스 이름이 있는 경우 그에 따라 자격 증명 구성을 업데이트합니다.

OS 수준 대체가 Oracle을 감지하지 못함

데이터베이스 자격 증명이 구성되지 않았고 OS 수준 대체가 Oracle을 감지하지 못하는 경우:

  • SSH 또는 WinRM OS 자격 증명이 구성되어 있고 서버에서 작동하는지 확인합니다(OS 지표 수집 상태 확인).

  • Linux 호스트의 경우가 /etc/oratab 존재하거나 Oracle 프로세스 모니터(pmon) 프로세스가 실행 중인지 확인합니다.

  • Windows 호스트의 경우 Oracle 레지스트리 항목이 HKLM\SOFTWARE\Oracle 아래에 있거나 oracle.exe 프로세스가 실행 중인지 확인합니다.

SNMP 문제 해결

검색 도구 VM에 액세스
  • 검색 도구 VM에 로그인하고 vCenter에서 원격 콘솔을 엽니다.

    • 사용자 이름: discovery

    • 암호: 암호

SNMP 도구 설치(필요한 경우)
  • sudo yum install net-snmp-utils -y

Linux 서버에 대한 SNMP 연결 테스트
  1. snmptable -v 2c -c <COMMUNITY_STRING> <REMOTE_SERVER_IP> .1.3.6.1.2.1.6.13.1

  2. 예제:

    #SNMPv2c: snmptable -v 2c -c public 192.168.1.100 .1.3.6.1.2.1.6.13.1 #SNMPv3 (with authentication): snmptable -v 3 -u <username> -a MD5 -A <auth_password> 192.168.1.100 .1.3.6.1.2.1.6.13.1 #SNMPv3 (with privacy): snmptable -v 3 -u <username> -a MD5 -A <auth_password> -x DES -X <priv_password> 192.168.1.100 .1.3.6.1.2.1.6.13.1

네트워크 수집 오류

암호를 읽으려면 터미널이 필요합니다.

오류:

ss command failed on <host>: sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper sudo: a password is required

ss 명령이 사용자 암호를 묻는 메시지를 표시합니다. 구성된 ssh 사용자는 sudoers 그룹에 있어야 하며 ss/netstat 명령에 대한 암호 없는 sudo로 구성되어야 합니다. 암호 없는 sudo를 구성하려면:

  1. 새 sudoers 파일을 생성합니다.

    sudo vi -f /etc/sudoers.d/<username>
  2. 줄을 추가합니다.

    <username> ALL=(ALL) NOPASSWD: /usr/sbin/ss, /usr/bin/netstat
  3. 이 변경 후 암호를 입력하지 않고 sudo ss -tnap 및를 실행해야 sudo netstat -tnap 합니다.

sudo 없이 실행된 네트워크 컬렉션

검색된 인벤토리 페이지에 다음 경고가 표시되는 경우:

Network collection ran without sudo. Process-level connection data may be missing.

이 경고는 SSH 사용자 계정에 대상 서버에 대한 sudo 액세스 권한이 없음을 나타냅니다. sudo가 없으면 검색 도구는 여전히 네트워크 연결 데이터를 수집할 수 있지만 각 연결을 소유하는 프로세스를 결정할 수는 없습니다. 전체 프로세스 수준 연결 데이터를 수집하려면 SSH 사용자에게 대상 서버에 대한 sudo 액세스 권한이 있는지 확인합니다.

OS 지표 수집 오류

Linux 서버용 서버 UUID 누락

검색 도구가 Linux 서버의 서버 UUID(비어 있거나 누락된 것으로 표시됨)를 수집할 수 없는 경우 해당 서버에 대해 구성된 SSH 자격 증명에 sudo 권한이 있는지 확인합니다. 이 도구는 dmidecode를 사용하여 서버 UUID를 읽습니다. dmidecode가 설치되지 않은 경우 도구는 읽기로 되돌아가 /sys/class/dmi/id/product_uuidsudo 액세스도 필요합니다. sudo가 없으면 두 메서드 모두 UUID를 검색할 수 없습니다.

해결 방법: 검색 도구에 제공된 SSH 사용자 계정에 대상 Linux 서버에 대한 sudo 액세스 권한이 있는지 확인합니다.

검색된 인벤토리의 액세스 문제

자격 증명 누락 또는 액세스 거부와 같은 메시지가 서버 컬렉션 상태에 표시되는 경우:

  1. 검색된 서버 테이블에서 서버를 선택합니다.

  2. 액세스 자격 증명 관리를 선택합니다. 다음을 선택할 수 있습니다.

    1. 자격 증명 선택 드롭다운에서 대체 자격 증명을 선택합니다.

    2. 새 자격 증명 사용을 선택하고 새 자격 증명을 제공합니다.

  3. 저장을 클릭합니다.

변경 사항을 저장한 후 검색 도구가 연결을 다시 시도합니다.

SSH 키 인증 문제 해결

검색 도구에서 SSH 키 연결 테스트

SSH 키 인증이 실패하면 검색 도구에서 대상 서버로의 연결을 확인합니다.

  1. 검색 도구에 로그인합니다(vSphere 콘솔 또는 SSH를 통해 Linux 호스트로).

  2. 프라이빗 키를 사용하여 SSH 연결을 테스트합니다.

    ssh -i /path/to/private_key -o StrictHostKeyChecking=no <username>@<target_ip>
  3. 연결이 성공하면 키가 검색 도구에 업로드된 방식과 관련된 문제가 발생합니다. 키를 다시 업로드하고 사용자 이름이 일치하는지 확인합니다.

  4. 연결이 실패하면 다음 표의 오류 메시지를 확인합니다.

오류 메시지 원인 해결 방법
Permission denied (publickey) 퍼블릭 키가 대상 서버의 authorized_keys 파일에 없거나 사용자 이름이 잘못되었습니다. 올바른 사용자의 대상 서버의 ~/.ssh/authorized_keys에 퍼블릭 키를 추가합니다. 파일 권한 확인: chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.
Connection timed out after 20s 검색 도구에서 포트 22에 연결할 수 없습니다. 검색 도구와 대상 서버 간에 포트 22가 열려 있는지 확인합니다. 방화벽 및 보안 그룹을 확인합니다.
Connection refused SSH 서비스가 대상 서버에서 실행되고 있지 않습니다. SSH 서비스 시작: sudo systemctl start sshd.
Invalid SSH key for credential 'name' 키 형식이 지원되지 않거나, 키 데이터가 손상되었거나, 암호가 누락되었거나 잘못되었습니다. 키 형식이 PEM, OpenSSH 또는 PKCS#8 형식의 RSA, ECDSA 또는 Ed25519인지 확인합니다. 키가 암호화된 경우 암호가 올바른지 확인합니다.

Linux 설치 관리자 문제 해결

포트 5000이 이미 사용 중입니다.

증상: 설치 후 검색 도구 서비스가 시작되지 않습니다.

해결 방법: 포트 5000을 사용하여 프로세스를 식별하고 중지합니다.

sudo ss -tlnp | grep :5000

충돌하는 프로세스를 중지한 다음 검색 도구를 다시 시작합니다.

sudo ./AWS-Transform-discovery-tool.sh start

일반적인 오류 메시지

이 표에서는 일반적인 오류 메시지와 해당 설명을 설명합니다.

메시지 Location 설명
암호가 이미 생성되었습니다. 암호 생성 페이지 두 사용자가 동시에 암호를 생성하는 레이스 조건, 새로 고침
내보내기 실패 인벤토리 페이지 로그 재시도 또는 전송
온디맨드 컬렉션이 이미 진행 중입니다. 인벤토리 페이지 두 사용자가 동시에 수동 수집을 시작하는 레이스 조건입니다. 현재 수동 수집이 완료된 후 다시 시도하세요.
Command timed out after 60s 서버 컬렉션 상태 대상 서버의 명령이 60초 이내에 완료되지 않았습니다. 이는 로드가 많은 서버에서 발생할 수 있습니다. 컬렉션을 다시 시도하거나 대상 서버의 로드를 조사합니다.
하나 이상의 자격 증명에 알 수 없는 UUIDs OS 액세스 페이지 두 사용자가 OS 자격 증명을 동시에 편집하는 레이스 조건입니다. 다시 시도하세요.
잘못된 암호 로그인 페이지 로그인 암호가 잘못되었습니다. 관리자에게 문의하거나 문의하세요.
세션이 만료되었습니다. 다시 로그인하세요. 로그인 페이지 세션 시간이 초과되었습니다. 다시 로그인해야 합니다.
내부 오류가 발생했습니다. 다양한 페이지 로그 재시도 또는 전송