물리적 서버 검색 및 평가를 위한 지원 매트릭스
이 문서에서는 Azure Migrate: 검색 및 평가 도구를 사용하여 Azure로 마이그레이션용 물리적 서버를 평가할 때 전제 조건과 지원 요구 사항을 요약합니다. 물리적 서버를 Azure로 마이그레이션하려면 마이그레이션 지원 매트릭스를 참조하세요.
물리적 서버를 평가하려면 프로젝트를 만들고 프로젝트에 Azure Migrate: 검색 및 평가 도구를 추가합니다. 도구를 추가한 후 Azure Migrate 어플라이언스를 배포합니다. 이 어플라이언스는 지속적으로 온-프레미스 서버를 검색하고 서버 메타데이터 및 성능 데이터를 Azure에 보냅니다. 검색이 완료되면 발견된 서버를 그룹으로 모으고 그룹에 대한 평가를 실행합니다.
제한 사항
지원 | 세부 정보 |
---|---|
평가 제한 | 단일 프로젝트에서 최대 35,000개의 물리 서버를 검색하고 평가할 수 있습니다. |
프로젝트 제한 | Azure 구독에서 여러 프로젝트를 만들 수 있습니다. 물리 서버 외에도 프로젝트는 VMware 및 Hyper-V의 서버를 각각 평가 한도에 도달할 때까지 포함할 수 있습니다. |
검색 | Azure Migrate 어플라이언스는 최대 1,000대의 물리적 서버를 검색할 수 있습니다. |
평가 | 단일 그룹에 최대 35,000대의 서버를 추가할 수 있습니다. 단일 평가에서 최대 35,000대의 서버를 평가할 수 있습니다. |
평가에 대해 자세히 알아보세요.
물리적 서버 요구 사항
물리 서버 배포: 물리 서버는 독립 실행형이거나 클러스터에서 배포할 수 있습니다.
서버 형식: 운영 체제 미설치 서버, 온-프레미스에서 실행되는 가상화 서버 또는 AWS(Amazon Web Services), GCP(Google Cloud Platform) 및 Xen과 같은 기타 클라우드.
참고 항목
현재 Azure Migrate는 반가상화된 서버 검색을 지원하지 않습니다.
운영 체제: 마이그레이션을 위해 모든 Windows 및 Linux 운영 체제를 평가할 수 있습니다.
Windows 서버에 대한 권한
- Windows 서버의 경우 도메인 조인된 서버에는 도메인 계정을 사용하고, 도메인 조인이 아닌 서버에는 로컬 계정을 사용합니다.
- 실제 검색의 경우 하위 수준 형식(도메인\사용자 이름)으로 사용자 이름을 지정하며 UPN 형식(username@domain.com)은 지원되지 않습니다.
다음 두 가지 방법 중 하나로 사용자 계정을 만들 수 있습니다.
옵션 1
서버에 대한 관리자 권한이 있는 계정을 만듭니다. 이 계정을 사용하여 다음을 수행합니다.
- CIM(Common Information Model) 연결을 통해 구성 및 성능 데이터를 끌어옵니다.
- 소프트웨어 인벤토리를 수행합니다(설치된 애플리케이션 검색).
- PowerShell 원격을 사용하여 에이전트 없는 종속성 분석을 사용하도록 설정합니다.
참고 항목
소프트웨어 인벤토리(설치된 애플리케이션 검색)를 수행하고 Windows 서버에서 에이전트 없는 종속성 분석을 사용하도록 설정하려면 옵션 1을 사용하는 것이 좋습니다.
옵션 2
- 원격 관리 사용자, 성능 모니터 사용자 및 성능 로그 사용자 그룹에 사용자 계정을 추가합니다.
- 원격 관리 사용자 그룹이 없는 경우 다음 사용자 계정을 WinRMRemoteWMIUsers_ 그룹에 추가합니다.
- 어플라이언스가 서버와의 CIM 연결을 만들고 여기에 나열된 WMI(Windows Management Instrumentation) 클래스에서 필수 구성 및 성능 메타데이터를 끌어오려면 계정에 이러한 권한이 필요합니다.
- 경우에 따라 이러한 그룹에 계정을 추가해도 WMI 클래스에서 필요한 데이터가 반환되지 않을 수 있습니다. 계정은 UAC(사용자 계정 컨트롤)에 의해 필터링될 수 있습니다. UAC 필터링을 극복하려면 사용자 계정에 대상 서버의 CIMV2 네임스페이스 및 하위 네임스페이스에 대해 필요한 권한이 있어야 합니다. 필요한 권한을 사용하도록 설정하려면 Azure Migrate 어플라이언스 문제 해결을 참조하세요.
참고 항목
Windows Server 2008 및 2008 R2의 경우 Windows Management Framework 3.0이 서버에 설치되어 있는지 확인합니다.
Windows Server에서 SQL Server 데이터베이스를 검색할 수 있도록 Windows 및 SQL Server 인증이 모두 지원됩니다. 어플라이언스 구성 관리자에서 두 인증 유형의 자격 증명을 제공할 수 있습니다. Azure Migrate에는 sysadmin 서버 역할의 멤버인 Windows 사용자 계정이 필요합니다.
Linux 서버에 대한 권한
Linux 서버의 경우 수행하려는 기능에 따라 다음 두 가지 방법 중 하나로 사용자 계정을 만들 수 있습니다.
옵션 1
검색하려는 서버의 sudo 사용자 계정이 필요합니다. 이 계정을 사용하여 다음을 수행합니다.
- 구성 및 성능 메타데이터를 끌어옵니다.
- 소프트웨어 인벤토리를 수행합니다(설치된 애플리케이션 검색).
- SSH(Secure Shell) 연결을 사용하여 에이전트 없는 종속성 분석을 사용하도록 설정합니다.
Linux 서버 메타데이터에 나열된 명령을 실행하려면 /usr/bin/bash에서 sudo 액세스를 사용하도록 설정해야 합니다. 이러한 명령 외에도 에이전트 없는 종속성 분석을 수행하기 위해 ls 및 netstat 명령을 실행할 수 있는 권한이 사용자 계정에 있어야 합니다.
sudo 명령이 호출될 때마다 암호를 묻지 않고 필요한 명령을 실행하려면 계정에 대해 NOPASSWD를 사용하도록 설정해야 합니다.
Azure Migrate 및 Modernize는 sudo 액세스 권한이 있는 계정을 사용하여 검색을 위해 다음 Linux OS 배포를 지원합니다.
운영 체제 버전 Red Hat Enterprise Linux 5.1, 5.3, 5.11, 6.x, 7.x, 8.x, 9.x Ubuntu 12.04, 14.04, 16.04, 18.04, 20.04, 22.04 Oracle Linux 6.1, 6.7, 6.8, 6.9, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.3, 8.5 SUSE Linux 10, 11 SP4, 12 SP1, 12 SP2, 12 SP3, 12 SP4, 15 SP2, 15 SP3 Debian 7, 8, 9, 10, 11 Amazon Linux 2.0.2021 CoreOS Container 2345.3.0
참고 항목
소프트웨어 인벤토리(설치된 애플리케이션 검색)를 수행하고 Linux 서버에서 에이전트 없는 종속성 분석을 사용하도록 설정하려면 옵션 1을 사용하는 것이 좋습니다.
옵션 2
sudo 액세스 권한이 있는 루트 계정 또는 사용자 계정을 제공할 수 없는 경우 어플라이언스 서버의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureAppliance 레지스트리에서
isSudo
레지스트리 키를 값0
으로 설정할 수 있습니다. 다음 명령을 사용하여 루트가 아닌 계정에 필요한 기능을 제공합니다.명령 목적 setcap CAP_DAC_READ_SEARCH+eip /usr/sbin/fdisk
setcap CAP_DAC_READ_SEARCH+eip /sbin/fdisk(/usr/sbin/fdis가 없는 경우)디스크 구성 데이터를 수집합니다. setcap "cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_setuid,
cap_setpcap,cap_net_bind_service,cap_net_admin,cap_sys_chroot,cap_sys_admin,
cap_sys_resource,cap_audit_control,cap_setfcap=+eip" /sbin/lvm디스크 성능 데이터를 수집합니다. setcap CAP_DAC_READ_SEARCH+eip /usr/sbin/dmidecode BIOS 일련 번호를 수집합니다. chmod a+r /sys/class/dmi/id/product_uuid BIOS GUID를 수집합니다. 서버에서 에이전트 없는 종속성 분석을 수행하려면 다음 명령을 사용하여 /bin/netstat 및 /bin/ls 파일에 필요한 권한도 설정해야 합니다.
sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep /bin/ls
sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep /bin/netstat
Azure Migrate 어플라이언스 요구 사항
Azure Migrate는 검색 및 평가를 위해 Azure Migrate 어플라이언스를 사용합니다. 물리적 서버용 어플라이언스는 VM(가상 머신) 또는 물리적 서버에서 실행될 수 있습니다.
- 물리 서버의 어플라이언스 요구 사항에 대해 알아봅니다.
- 어플라이언스가 퍼블릭 클라우드 및 정부 클라우드에서 액세스해야 하는 URL에 대해 알아봅니다.
- 어플라이언스를 설정하려면 Azure Portal에서 다운로드한 PowerShell 스크립트를 사용합니다.
- Azure Government에 어플라이언스를 배포하려면 이 스크립트를 사용합니다.
포트 액세스
다음 표에는 평가를 위한 포트 요구 사항이 요약되어 있습니다.
디바이스 | 연결 |
---|---|
어플라이언스 | 어플라이언스에 대한 원격 데스크톱 연결을 허용하기 위한 TCP 포트 3389에서 인바운드 연결 URL https://<appliance-ip-or-name>:44368 을 사용하여 어플라이언스 관리 앱에 원격으로 액세스하기 위한 포트 44368의 인바운드 연결검색 및 성능 메타데이터를 Azure Migrate 및 현대화로 보내기 위한 포트 443(HTTPS)의 아웃바운드 연결입니다. |
물리적 서버 | Windows: Windows 서버에서 구성 및 성능 메타데이터를 끌어오기 위한 WinRM 포트 5985(HTTP)의 인바운드 연결 Linux: Linux 서버에서 구성 및 성능 메타데이터를 끌어오기 위한 포트 22(TCP)의 인바운드 연결 |
소프트웨어 인벤토리 요구 사항
서버를 검색하는 것 외에도 Azure Migrate: 검색 및 평가는 서버에서 소프트웨어 인벤토리를 수행할 수 있습니다. 소프트웨어 인벤토리는 Azure Migrate 및 현대화를 사용하여 발견된 Windows 및 Linux 서버에서 실행되는 애플리케이션, 역할 및 기능 목록을 제공합니다. 이를 통해 온-프레미스 워크로드에 맞게 조정된 마이그레이션 경로를 쉽게 파악하고 계획할 수 있습니다.
지원 | 세부 정보 |
---|---|
지원되는 서버 | 각 Azure Migrate 어플라이언스에서 검색된 최대 1,000대의 서버에서 소프트웨어 인벤토리를 수행할 수 있습니다. |
운영 체제 | 서버 요구 사항을 충족하고 필요한 액세스 권한이 있는 모든 Windows 및 Linux 버전을 실행하는 서버가 지원됩니다. |
서버 요구 사항 | Windows 서버에는 PowerShell 원격을 사용하도록 설정되어 있고 PowerShell 버전 2.0 이상이 설치되어 있어야 합니다. 서버에 설치된 역할과 기능에 대한 세부 정보를 수집하려면 Windows 서버에서 WMI가 사용되도록 설정하고 사용할 수 있어야 합니다. Linux 서버에는 SSH 연결을 사용하도록 설정되어 있고 Linux 서버에서 다음 명령을 실행하여 애플리케이션 데이터(list, tail, awk, grep, locate, head, sed, ps, print, sort, uniq)를 끌어올 수 있는지 확인해야 합니다. 사용된 OS 형식 및 패키지 관리자 형식에 따라 rpm/snap/dpkg, yum/apt-cache, mssql-server와 같은 추가 명령이 있습니다. |
Windows 서버 액세스 | Windows 서버용 게스트 사용자 계정 |
Linux 서버 액세스 | 모든 Linux 서버에 대한 표준 사용자 계정(Sudo 이외의 액세스). |
포트 액세스 | Windows 서버는 포트 5985(HTTP)에 액세스해야 합니다. Linux 서버는 포트 22(TCP)에 액세스해야 합니다. |
검색 | 소프트웨어 인벤토리는 어플라이언스에서 추가된 서버 자격 증명을 사용하여 서버에 직접 연결하여 수행됩니다. 어플라이언스는 PowerShell 원격을 사용하여 Windows 서버에서, SSH 연결을 사용하여 Linux 서버에서 소프트웨어 인벤토리에 대한 정보를 수집합니다. 소프트웨어 인벤토리는 에이전트가 없습니다. 에이전트는 서버에 설치되지 않습니다. |
SQL Server 인스턴스 및 데이터베이스 검색 요구 사항
소프트웨어 인벤토리는 SQL Server 인스턴스를 식별합니다. 어플라이언스는 해당 정보를 사용하여 어플라이언스 구성 관리자에서 제공되는 Windows 인증 또는 SQL Server 인증 자격 증명을 통해 각 SQL Server 인스턴스에 연결을 시도합니다. 어플라이언스는 네트워크 가시성이 있는 SQL Server 인스턴스에만 연결할 수 있습니다. 소프트웨어 인벤토리 자체에는 네트워크 가시성이 필요하지 않을 수 있습니다.
어플라이언스는 연결된 후 SQL Server 인스턴스와 데이터베이스의 구성 및 성능 데이터를 수집합니다. 어플라이언스는 SQL Server 구성 데이터를 24시간마다 업데이트하고 성능 데이터는 30초마다 캡처합니다.
지원 | 세부 정보 |
---|---|
지원되는 서버 | VMware, Microsoft Hyper-V, 실제/운영 체제 미설치 환경에서 SQL Server를 실행하는 서버와 AWS 및 GCP와 같은 기타 퍼블릭 클라우드의 IaaS(서비스 제공 인프라) 서버에 대해서만 지원됩니다. 단일 어플라이언스에서 최대 750개의 SQL Server 인스턴스 또는 15,000개의 SQL 데이터베이스 중 더 적은 수를 검색할 수 있습니다. 스케일링 문제를 방지하려면 SQL을 실행하는 서버를 600개 미만으로 검색하도록 어플라이언스 범위를 지정하는 것이 좋습니다. |
Windows 서버 | Windows Server 2008 이상이 지원됩니다. |
Linux 서버 | 현재 지원되지 않습니다. |
인증 메커니즘 | Windows 및 SQL Server 인증이 모두 지원됩니다. 어플라이언스 구성 관리자에서 두 인증 유형의 자격 증명을 제공할 수 있습니다. |
SQL Server 액세스 | SQL Server 인스턴스 및 데이터베이스를 검색하려면 Windows 또는 SQL Server 계정이 sysadmin 서버 역할의 멤버이거나 각 SQL Server 인스턴스에 대해 이러한 권한을 가지고 있어야 합니다. |
SQL Server 버전 | SQL Server 2008 이상이 지원됩니다. |
SQL Server 버전 | Enterprise, Standard, Developer, Express 버전이 지원됩니다. |
지원되는 SQL 구성 | 독립 실행형, 고가용성, 재해 보호 SQL 배포 검색이 지원됩니다. Always On 장애 조치(failover) 클러스터 인스턴스 및 Always On 가용성 그룹을 기반으로 하는 고가용성 및 재해 복구 SQL 배포 검색도 지원됩니다. |
지원되는 SQL 서비스 | SQL Server 데이터베이스 엔진만 지원됩니다. SQL Server Reporting Services, SQL Server Integration Services 및 SQL Server Analysis Services 검색은 지원되지 않습니다. |
참고 항목
기본적으로 Azure Migrate는 SQL 인스턴스에 연결하는 가장 안전한 방법을 사용합니다. 즉, Azure Migrate 및 현대화는 TrustServerCertificate
속성을 true
로 설정하여 Azure Migrate 어플라이언스와 원본 SQL Server 인스턴스 간의 통신을 암호화합니다. 또한 전송 계층은 SSL(Secure Socket Layer)을 사용하여 채널을 암호화하고 인증서 체인을 무시하여 신뢰의 유효성을 검사합니다. 이러한 이유로 어플라이언스 서버는 인증서의 루트 인증 기관을 신뢰하도록 설정되어야 합니다.
그러나 어플라이언스에서 SQL Server 연결 속성 편집을 선택하여 연결 설정을 편집할 수 있습니다. 무엇을 선택해야 하는지 이해하려면 자세히 알아봅니다.
SQL Server 검색을 위한 사용자 지정 로그인 구성
다음 샘플 스크립트를 사용하여 로그인을 만들고 필요한 권한을 프로비전합니다.
Windows 인증
-- Create a login to run the assessment
use master;
DECLARE @SID NVARCHAR(MAX) = N'';
CREATE LOGIN [MYDOMAIN\MYACCOUNT] FROM WINDOWS;
SELECT @SID = N'0x'+CONVERT(NVARCHAR, sid, 2) FROM sys.syslogins where name = 'MYDOMAIN\MYACCOUNT'
IF (ISNULL(@SID,'') != '')
PRINT N'Created login [MYDOMAIN\MYACCOUNT] with SID = ' + @SID
ELSE
PRINT N'Login creation failed'
GO
-- Create user in every database other than tempdb, model, and secondary AG databases (with connection_type = ALL) and provide minimal read-only permissions.
USE master;
EXECUTE sp_MSforeachdb '
USE [?];
IF (''?'' NOT IN (''tempdb'',''model''))
BEGIN
DECLARE @is_secondary_replica BIT = 0;
IF CAST(PARSENAME(CAST(SERVERPROPERTY(''ProductVersion'') AS VARCHAR), 4) AS INT) >= 11
BEGIN
DECLARE @innersql NVARCHAR(MAX);
SET @innersql = N''
SELECT @is_secondary_replica = IIF(
EXISTS (
SELECT 1
FROM sys.availability_replicas a
INNER JOIN sys.dm_hadr_database_replica_states b
ON a.replica_id = b.replica_id
WHERE b.is_local = 1
AND b.is_primary_replica = 0
AND a.secondary_role_allow_connections = 2
AND b.database_id = DB_ID()
), 1, 0
);
'';
EXEC sp_executesql @innersql, N''@is_secondary_replica BIT OUTPUT'', @is_secondary_replica OUTPUT;
END
IF (@is_secondary_replica = 0)
BEGIN
CREATE USER [MYDOMAIN\MYACCOUNT] FOR LOGIN [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON sys.sql_expression_dependencies TO [MYDOMAIN\MYACCOUNT];
GRANT VIEW DATABASE STATE TO [MYDOMAIN\MYACCOUNT];
END
END'
GO
-- Provide server level read-only permissions
use master;
GRANT SELECT ON sys.sql_expression_dependencies TO [MYDOMAIN\MYACCOUNT];
GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [MYDOMAIN\MYACCOUNT];
GRANT EXECUTE ON OBJECT::sys.xp_instance_regread TO [MYDOMAIN\MYACCOUNT];
GRANT VIEW DATABASE STATE TO [MYDOMAIN\MYACCOUNT];
GRANT VIEW SERVER STATE TO [MYDOMAIN\MYACCOUNT];
GRANT VIEW ANY DEFINITION TO [MYDOMAIN\MYACCOUNT];
GO
-- Provide msdb specific permissions
use msdb;
GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[syscategories] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [MYDOMAIN\MYACCOUNT];
GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [MYDOMAIN\MYACCOUNT];
GO
-- Clean up
--use master;
-- EXECUTE sp_MSforeachdb 'USE [?]; DROP USER [MYDOMAIN\MYACCOUNT]'
-- DROP LOGIN [MYDOMAIN\MYACCOUNT];
--GO
SQL Server 인증
--- Create a login to run the assessment
use master;
-- NOTE: SQL instances that host replicas of Always On availability groups must use the same SID for the SQL login.
-- After the account is created in one of the members, copy the SID output from the script and include this value
-- when executing against the remaining replicas.
-- When the SID needs to be specified, add the value to the @SID variable definition below.
DECLARE @SID NVARCHAR(MAX) = N'';
IF (@SID = N'')
BEGIN
CREATE LOGIN [evaluator]
WITH PASSWORD = '<provide a strong password>'
END
ELSE
BEGIN
DECLARE @SQLString NVARCHAR(500) = 'CREATE LOGIN [evaluator]
WITH PASSWORD = ''<provide a strong password>''
, SID = ' + @SID
EXEC SP_EXECUTESQL @SQLString
END
SELECT @SID = N'0x'+CONVERT(NVARCHAR(100), sid, 2) FROM sys.syslogins where name = 'evaluator'
IF (ISNULL(@SID,'') != '')
PRINT N'Created login [evaluator] with SID = '''+ @SID +'''. If this instance hosts any Always On Availability Group replica, use this SID value when executing the script against the instances hosting the other replicas'
ELSE
PRINT N'Login creation failed'
GO
-- Create user in every database other than tempdb, model, and secondary AG databases (with connection_type = ALL) and provide minimal read-only permissions.
USE master;
EXECUTE sp_MSforeachdb '
USE [?];
IF (''?'' NOT IN (''tempdb'',''model''))
BEGIN
DECLARE @is_secondary_replica BIT = 0;
IF CAST(PARSENAME(CAST(SERVERPROPERTY(''ProductVersion'') AS VARCHAR), 4) AS INT) >= 11
BEGIN
DECLARE @innersql NVARCHAR(MAX);
SET @innersql = N''
SELECT @is_secondary_replica = IIF(
EXISTS (
SELECT 1
FROM sys.availability_replicas a
INNER JOIN sys.dm_hadr_database_replica_states b
ON a.replica_id = b.replica_id
WHERE b.is_local = 1
AND b.is_primary_replica = 0
AND a.secondary_role_allow_connections = 2
AND b.database_id = DB_ID()
), 1, 0
);
'';
EXEC sp_executesql @innersql, N''@is_secondary_replica BIT OUTPUT'', @is_secondary_replica OUTPUT;
END
IF (@is_secondary_replica = 0)
BEGIN
CREATE USER [evaluator] FOR LOGIN [evaluator];
GRANT SELECT ON sys.sql_expression_dependencies TO [evaluator];
GRANT VIEW DATABASE STATE TO [evaluator];
END
END'
GO
-- Provide server level read-only permissions
USE master;
GRANT SELECT ON sys.sql_expression_dependencies TO [evaluator];
GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [evaluator];
GRANT EXECUTE ON OBJECT::sys.xp_instance_regread TO [evaluator];
GRANT VIEW DATABASE STATE TO [evaluator];
GRANT VIEW SERVER STATE TO [evaluator];
GRANT VIEW ANY DEFINITION TO [evaluator];
GO
-- Provide msdb specific permissions
USE msdb;
GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[syscategories] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [evaluator];
GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [evaluator];
GO
-- Clean up
--use master;
-- EXECUTE sp_MSforeachdb 'USE [?]; BEGIN TRY DROP USER [evaluator] END TRY BEGIN CATCH PRINT ERROR_MESSAGE() END CATCH;'
-- BEGIN TRY DROP LOGIN [evaluator] END TRY BEGIN CATCH PRINT ERROR_MESSAGE() END CATCH;
--GO
웹앱 검색 요구 사항
소프트웨어 인벤토리는 검색된 서버에 있는 웹 서버 역할을 식별합니다. 서버에 웹 서버가 설치되어 있는 경우 Azure Migrate 및 현대화는 서버에서 웹앱을 검색합니다.
어플라이언스에 도메인 및 비도메인 자격 증명을 모두 추가할 수 있습니다. 사용된 계정에 원본 서버에 대한 로컬 관리자 권한이 있는지 확인합니다. Azure Migrate 및 현대화는 자격 증명을 각 서버에 자동으로 매핑하므로 수동으로 매핑할 필요가 없습니다. 가장 중요한 점은 해당 자격 증명이 Microsoft로 전송되지 않고 원본 환경에서 실행되는 어플라이언스에 남아 있다는 것입니다.
어플라이언스가 연결되면 ASP.NET 웹앱(IIS 웹 서버) 및 Java 웹앱(Tomcat 서버)에 대한 구성 데이터를 수집합니다. 웹앱 구성 데이터는 24시간마다 한 번 업데이트됩니다.
지원 | ASP.NET 웹 앱 | Java 웹앱 |
---|---|---|
Stack | VMware, Hyper-V, 물리적 서버. | VMware, Hyper-V, 물리적 서버. |
Windows 서버 | Windows Server 2008 R2 이상이 지원됩니다. | 지원되지 않습니다. |
Linux 서버 | 지원되지 않습니다. | Ubuntu Linux 16.04/18.04/20.04, Debian 7/8 및 Red Hat Enterprise Linux 5/6/7. |
웹 서버 버전 | IIS 7.5 이상 | Tomcat 8 이상 |
필요한 권한 | 로컬 관리자. | root 또는 sudo 사용자. |
참고 항목
데이터는 미사용 및 전송 중에 상시 암호화됩니다.
종속성 분석 요구 사항(에이전트 없음)
종속성 분석은 발견된 서버 간의 종속성을 분석하는 데 도움이 됩니다. Azure Migrate 프로젝트의 맵 보기를 사용하여 종속성을 쉽게 시각화할 수 있습니다. Azure로 마이그레이션하기 위해 종속성을 사용하여 관련 서버를 그룹화할 수 있습니다. 다음 표에는 에이전트 없는 종속성 분석을 설정하기 위한 요구 사항이 요약되어 있습니다.
지원 | 세부 정보 |
---|---|
지원되는 서버 | 어플라이언스당 검색되는 최대 1,000개의 서버에서 에이전트 없는 종속성 분석을 사용하도록 설정할 수 있습니다. |
운영 체제 | 서버 요구 사항을 충족하고 필요한 액세스 권한이 있는 모든 Windows 및 Linux 버전을 실행하는 서버가 지원됩니다. |
서버 요구 사항 | Windows 서버에는 PowerShell 원격을 사용하도록 설정되어 있고 PowerShell 버전 2.0 이상이 설치되어 있어야 합니다. Linux 서버에는 SSH 연결을 사용하도록 설정되어 있고 Linux 서버에서 touch, chmod, cat, ps, grep, echo, sha256sum, awk, netstat, ls, sudo, dpkg, rpm, sed, getcap 같은 명령을 실행할 수 있는지 확인해야 합니다. |
Windows 서버 액세스 | 게스트 사용자 계정 |
Linux 서버 액세스 | ls 및 netstat 명령을 실행할 수 있는 권한이 있는 sudo 사용자 계정입니다. sudo 사용자 계정을 제공하는 경우 sudo 명령이 호출될 때마다 암호를 묻는 메시지를 표시하지 않고 필수 명령을 실행할 수 있도록 계정에 대해 NOPASSWD를 사용하도록 설정했는지 확인합니다. 또는 다음 명령을 사용하여 설정한 /bin/netstat 및 /bin/ls 파일에 대한 CAP_DAC_READ_SEARCH 및 CAP_SYS_PTRACE 권한이 있는 사용자 계정을 만들 수 있습니다. sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep usr/bin/ls sudo setcap CAP_DAC_READ_SEARCH,CAP_SYS_PTRACE=ep usr/bin/netstat |
포트 액세스 | Windows 서버는 포트 5985(HTTP)에 액세스해야 합니다. Linux 서버는 포트 22(TCP)에 액세스해야 합니다. |
검색 방법 | 에이전트 없는 종속성 분석은 어플라이언스에서 추가된 서버 자격 증명을 사용하여 서버에 직접 연결하여 수행됩니다. 어플라이언스는 PowerShell 원격을 사용하여 Windows 서버에서, SSH 연결을 사용하여 Linux 서버에서 종속성 정보를 수집합니다. 종속성 데이터를 끌어오기 위해 서버에 에이전트가 설치되어 있지 않습니다. |
에이전트 기반 종속성 분석 요구 사항
종속성 분석을 사용하면 평가하고 Azure로 마이그레이션하려는 온-프레미스 서버 간의 종속성을 파악할 수 있습니다. 다음 표에는 에이전트 기반 종속성 분석을 설정하기 위한 요구 사항이 요약되어 있습니다. 현재 에이전트 기반 종속성 분석만 물리적 서버를 지원합니다.
요구 사항 | 세부 정보 |
---|---|
배포 전 | Azure Migrate: 검색 및 평가 도구를 프로젝트에 추가하여 준비합니다. 온-프레미스 서버를 검색하도록 Azure Migrate 어플라이언스를 설정한 후 종속성 시각화를 배포합니다. 처음으로 프로젝트를 만드는 방법을 알아봅니다. 기존 프로젝트에 평가 도구를 추가하는 방법을 알아봅니다. Hyper-V, VMware 또는 물리적 서버의 평가를 위해 Azure Migrate 어플라이언스를 설정하는 방법을 알아봅니다. |
Azure Government | Azure Government에서는 종속성 시각화를 사용할 수 없습니다. |
Log Analytics | Azure Migrate 및 현대화는 종속성 시각화를 위해 Azure Monitor 로그의 서비스 맵 솔루션을 사용합니다. 신규 또는 기존 Log Analytics 작업 영역을 프로젝트와 연결합니다. 작업 영역을 추가한 후에는 프로젝트의 작업 영역을 수정할 수 없습니다. 작업 영역은 프로젝트와 동일한 구독에 있어야 합니다. 작업 영역은 미국 동부, 동남 아시아 또는 서유럽 지역에 있어야 합니다. 다른 지역의 작업 영역은 프로젝트에 연결할 수 없습니다. 작업 영역은 서비스 맵 지원되는 지역에 있어야 합니다. 모든 지역에서 Azure VM을 모니터링할 수 있습니다. VM 자체는 Log Analytics 작업 영역에서 지원하는 지역으로 제한되지 않습니다. Log Analytics에서 Azure Migrate 및 현대화와 연결된 작업 영역에는 마이그레이션 프로젝트 키와 프로젝트 이름이 태그로 지정됩니다. |
필요한 에이전트 | 분석하려는 각 서버에서 다음 에이전트를 설치합니다. - MMA(Microsoft Monitoring Agent) - 종속성 에이전트 온-프레미스 서버가 인터넷에 연결되어 있지 않은 경우 Log Analytics 게이트웨이를 다운로드하여 설치해야 합니다. 종속성 에이전트 및 MMA를 설치하는 방법에 대한 자세한 내용을 알아보세요. |
Log Analytics 작업 영역 | 작업 영역은 프로젝트와 동일한 구독에 있어야 합니다. Azure Migrate 및 현대화는 현재 미국 동부, 동남 아시아 및 서유럽 지역에 있는 작업 영역을 지원합니다. 작업 영역은 서비스 맵 지원되는 지역에 있어야 합니다. 모든 지역에서 Azure VM을 모니터링할 수 있습니다. VM 자체는 Log Analytics 작업 영역에서 지원하는 지역으로 제한되지 않습니다. 작업 영역을 추가한 후에는 프로젝트의 작업 영역을 수정할 수 없습니다. |
비용 | 서비스 맵 솔루션에는 처음 180일 동안 요금이 부과되지 않습니다. 계산은 Log Analytics 작업 영역을 프로젝트와 연결하는 날부터 시작됩니다. 180일이 지나면 표준 Log Analytics 요금이 적용됩니다. 연결된 Log Analytics 작업 영역 내에서 서비스 맵 이외의 다른 솔루션을 사용하면 Log Analytics에 대한 표준 요금이 발생합니다. 프로젝트가 삭제될 때 작업 영역은 자동으로 삭제되지 않습니다. 프로젝트를 삭제한 후에는 서비스 맵 사용이 무료가 아닙니다. 각 노드는 Log Analytics 작업 영역의 유료 계층에 따라 요금이 부과됩니다. Azure Migrate 일반 공급(2018년 2월 28일 GA) 마이그레이션에 만든 프로젝트가 있는 경우 다른 서비스 맵 요금이 발생할 수 있습니다. 180일 후에만 요금이 부과되도록 새 프로젝트를 만드는 것이 좋습니다. GA 이전에 만든 작업 영역은 계속 요금이 부과됩니다. |
관리 | 작업 영역에 에이전트를 등록할 때 프로젝트에서 제공하는 ID 및 키를 사용합니다. Azure Migrate 및 현대화 외부에서 Log Analytics 작업 영역을 사용할 수 있습니다. 연결된 프로젝트를 삭제하면 작업 영역이 자동으로 삭제되지 않습니다. 수동으로 삭제합니다. 프로젝트를 삭제하지 않는 한 Azure Migrate 및 현대화에서 만든 작업 영역을 삭제하지 마세요. 작업 영역을 삭제하면 종속성 시각화 기능이 정상적으로 작동하지 않습니다. |
인터넷 연결 | 서버가 인터넷에 연결되어 있지 않으면 Log Analytics 게이트웨이를 서버에 설치해야 합니다. |
Azure Government | 에이전트 기반 종속성 분석은 지원되지 않습니다. |
다음 단계
물리적 서버 검색을 준비합니다.