다음을 통해 공유


Azure Monitor에서 SQL Server Health Check 솔루션을 사용하여 SQL 환경 최적화

SQL Health Check 기호

SQL Health Check 솔루션을 사용하여 정기적으로 서버 환경의 위험과 상태를 평가할 수 있습니다. 이 문서는 잠재적인 문제에 대한 수정 작업을 수행할 수 있도록 솔루션을 설치하는 데 도움이 됩니다.

이 솔루션은 배포된 서버 인프라 관련 우선순위가 지정된 권장 사항 목록을 제공합니다. 권장 사항은 위험을 신속하게 이해하고 시정 조치를 취하는 데 도움이 되는 6가지 주요 영역으로 분류됩니다.

권장 사항은 수천 번의 고객 방문에서 Microsoft 엔지니어가 얻은 지식과 경험을 기반으로 합니다. 각 권장 사항은 문제가 중요할 수 있는 이유 및 제안된 변경 내용을 구현하는 방법에 대한 지침을 제공합니다.

조직에 가장 중요한 포커스 영역을 선택하고 위험 없는 정상 환경을 실행하기 위한 진행 상황을 추적할 수 있습니다.

솔루션을 추가하고 평가가 완료되면 환경의 인프라에 대한 SQL Health Check 대시보드에 포커스 영역에 대한 요약 정보가 표시됩니다. 다음 섹션에서는 SQL Health Check 대시보드에서 정보를 사용하는 방법을 설명합니다. 여기에서 SQL Server 인프라에 대한 권장 작업을 보고 수행할 수 있습니다.

SQL Health Check 타일 이미지

SQL Health Check 대시보드 이미지

필수 조건

  • SQL Health Check 솔루션에는 MMA(Microsoft Monitoring Agent)가 설치된 각 컴퓨터에 지원되는 버전의 .NET Framework 4.6.2가 설치되어 있어야 합니다. MMA 에이전트는 System Center 2016 - Operations Manager 및 Operations Manager 2012 R2 및 Azure Monitor에서 사용됩니다.

  • 이 솔루션은 SQL Server 버전 2012, 2014, 2016, 2017 및 2019를 지원합니다.

  • Azure Portal의 Azure Marketplace에서 SQL Health Check 솔루션을 추가하는 Log Analytics 작업 영역입니다. 솔루션을 설치하려면 Azure 구독의 관리자 또는 기여자여야 합니다.

    비고

    솔루션을 추가한 후 AdvisorAssessment.exe 파일이 에이전트가 있는 서버에 추가됩니다. 구성 데이터를 읽은 다음 처리를 위해 클라우드의 Azure Monitor로 전송됩니다. 논리는 수신된 데이터에 적용되고 클라우드 서비스는 데이터를 기록합니다.

SQL Server 서버에 대해 상태 검사를 수행하려면 다음 지원되는 방법 중 하나를 사용하여 에이전트와 Azure Monitor에 연결해야 합니다.

  1. System Center 2016 - Operations Manager 또는 Operations Manager 2012 R2에서 서버를 아직 모니터링하지 않은 경우 MMA(Microsoft Monitoring Agent) 를 설치합니다.
  2. System Center 2016 - Operations Manager 또는 Operations Manager 2012 R2로 모니터링되고 관리 그룹이 Azure Monitor와 통합되지 않은 경우 서버를 Log Analytics와 다중 홈으로 사용하여 데이터를 수집하고 서비스로 전달할 수 있으며 Operations Manager에서 계속 모니터링할 수 있습니다.
  3. 그렇지 않으면 Operations Manager 관리 그룹이 서비스와 통합된 경우, 작업 영역에서 솔루션을 활성화한 후 에이전트 관리 컴퓨터 추가 단계에 따라 서비스에서 데이터 수집용 도메인 컨트롤러를 추가해야 합니다.

Operations Manager 관리 그룹에 보고하고, 데이터를 수집하고, 할당된 관리 서버로 전달한 다음, 관리 서버에서 Azure Monitor로 직접 전송되는 SQL Server의 에이전트입니다. 데이터는 Operations Manager 데이터베이스에 기록되지 않습니다.

Operations Manager에서 SQL Server를 모니터링하는 경우 Operations Manager 실행 계정을 구성해야 합니다. 자세한 내용은 아래 Azure Monitor의 Operations Manager 실행 계정을 참조하세요.

SQL Health Check 데이터 수집 세부 정보

SQL Health Check는 사용하도록 설정한 에이전트를 사용하여 다음 원본에서 데이터를 수집합니다.

  • Windows 관리 도구 (WMI)
  • 레지스트리
  • 성능 계수기
  • SQL Server 동적 관리 뷰 결과

데이터는 SQL Server에서 수집되고 7일마다 Log Analytics로 전달됩니다.

Log Analytics용 Operations Manager 실행 계정

Log Analytics는 Operations Manager 에이전트 및 관리 그룹을 사용하여 데이터를 수집하고 Log Analytics 서비스로 보냅니다. Log Analytics는 부가 가치 서비스를 제공하기 위해 워크로드용 관리 팩을 기반으로 합니다. 도메인 사용자 계정과 같은 다른 보안 컨텍스트에서 관리 팩을 실행하려면 각 작업에 워크로드 관련 권한이 필요합니다. Operations Manager 실행 계정을 구성하여 자격 증명 정보를 제공해야 합니다.

다음 정보를 사용하여 SQL 상태 검사에 대한 Operations Manager 실행 계정을 설정하세요.

SQL 상태 검사에 대한 실행 계정 설정

SQL Server 관리 팩을 이미 사용 중인 경우 해당 실행 구성을 사용해야 합니다.

운영 콘솔에서 SQL Run As 계정을 설정하려면

비고

기본적으로 관리 팩의 워크플로는 로컬 시스템 계정의 보안 컨텍스트에서 실행됩니다. Operations Manager 관리 그룹에 직접 보고하는 대신 서비스에 직접 연결된 Microsoft Monitoring Agent를 사용하는 경우 아래의 1-5단계를 건너뛰고 T-SQL 또는 PowerShell 샘플을 실행하여 NT AUTHORITY\SYSTEM을 사용자 이름으로 지정합니다.

  1. Operations Manager에서 운영 콘솔을 연 다음 관리를 클릭합니다.

  2. 실행 구성에서 프로필을 클릭하고 SQL 평가 실행 프로필을 엽니다.

  3. 실행 계정 페이지에서 추가를 클릭합니다.

  4. SQL Server에 필요한 자격 증명이 포함된 Windows 실행 계정을 선택하거나 새로 만들기를 클릭하여 만듭니다.

    비고

    실행 계정 유형은 Windows여야 합니다. 실행 계정은 SQL Server 인스턴스를 호스팅하는 모든 Windows Server에서 로컬 관리자 그룹의 일부여야 합니다.

  5. 저장을 클릭합니다.

  6. 각 SQL Server 인스턴스에서 다음 T-SQL 샘플을 수정하고 실행하여 실행 계정에서 상태 검사를 수행하는 데 필요한 최소 권한을 부여합니다. 그러나 실행 계정이 SQL Server 인스턴스의 sysadmin 서버 역할에 이미 속해 있는 경우에는 이 작업을 수행할 필요가 없습니다.

    ---
    -- Replace <UserName> with the actual user name being used as Run As Account.
    USE master

    -- Create login for the user, comment this line if login is already created.
    CREATE LOGIN [<UserName>] FROM WINDOWS

    -- Grant permissions to user.
    GRANT VIEW SERVER STATE TO [<UserName>]
    GRANT VIEW ANY DEFINITION TO [<UserName>]
    GRANT VIEW ANY DATABASE TO [<UserName>]

    -- Add database user for all the databases on SQL Server Instance, this is required for connecting to individual databases.
    -- NOTE: This command must be run anytime new databases are added to SQL Server instances.
    EXEC sp_msforeachdb N'USE [?]; CREATE USER [<UserName>] FOR LOGIN [<UserName>];'

Windows PowerShell을 사용하여 SQL 실행 계정을 구성하려면

PowerShell 창을 열고 정보로 업데이트한 후 다음 스크립트를 실행합니다.

    import-module OperationsManager
    New-SCOMManagementGroupConnection "<your management group name>"

    $profile = Get-SCOMRunAsProfile -DisplayName "SQL Assessment Run As Profile"
    $account = Get-SCOMrunAsAccount | Where-Object {$_.Name -eq "<your run as account name>"}
    Set-SCOMRunAsProfile -Action "Add" -Profile $Profile -Account $Account

권장 사항의 우선 순위를 지정하는 방법 이해

권장 사항마다 권장 사항의 상대적 중요도를 식별하는 가중치 값이 제공됩니다. 가장 중요한 10개의 권장 사항만 표시됩니다.

가중치 계산 방법

가중치는 3개의 주요 요인을 기반으로 하는 집계 값입니다.

  • 식별된 문제로 인해 문제가 발생될 수 있는 확률 입니다. 확률이 높을수록 권장 사항에 대한 전체 점수가 커집니다.
  • 문제가 발생할 경우 조직에 미치는 영향 입니다. 영향이 높을수록 권장 사항에 대한 전체 점수가 커집니다.
  • 권장 사항을 구현하는 데 필요한 작업 입니다. 노력이 높을수록 권장 사항에 대한 전체 점수가 작아집니다.

각 권장 사항에 대한 가중치는 각 주요 영역에 사용할 수 있는 총 점수에 대한 백분율로 표현됩니다. 예를 들어 보안 및 규정 준수 포커스 영역의 권장 사항에%점수가 5인 경우 해당 권장 사항을 구현하면 전체 보안 및 규정 준수 점수가 5%증가합니다.

포커스 영역

보안 및 규정 준수 - 이 주요 영역은 잠재적인 보안 위협 및 위반, 회사 정책 및 기술, 법률 및 규정 준수 요구 사항에 대한 권장 사항을 보여줍니다.

가용성 및 비즈니스 연속성 - 이 주요 영역은 서비스 가용성, 인프라 복원성 및 비즈니스 보호에 대한 권장 사항을 보여 줍니다.

성능 및 확장성 - 이 주요 영역은 조직의 IT 인프라를 확장하고, IT 환경이 현재 성능 요구 사항을 충족하며, 변화하는 인프라 요구 사항에 대응할 수 있도록 하는 데 도움이 되는 권장 사항을 보여 줍니다.

업그레이드, 마이그레이션 및 배포 - 이 포커스 영역에는 SQL Server를 기존 인프라로 업그레이드, 마이그레이션 및 배포하는 데 도움이 되는 권장 사항이 표시됩니다.

운영 및 모니터링 - IT 운영을 간소화하며, 예방 유지 관리를 구현하고, 성능을 최대화하는 데 도움이 되는 권장 사항을 보여 주는 주요 영역입니다.

변경 및 구성 관리 - 이 포커스 영역에는 일상적인 작업을 보호하고, 변경 내용이 인프라에 부정적인 영향을 주지 않도록 하고, 변경 제어 절차를 설정하고, 시스템 구성을 추적하고 감사하는 데 도움이 되는 권장 사항이 표시됩니다.

모든 주요 분야에서 100%의 점수를 목표로 해야 하나요?

반드시 그런 것은 아닙니다. 권장 사항은 수천 번의 고객 방문에서 Microsoft 엔지니어가 얻은 지식과 경험을 기반으로 합니다. 그러나 어떤 서버 인프라도 서로 동일하지 않으며 특정 권장 사항은 여러분에게 더 적합할 수도 있고 덜 적합할 수도 있습니다. 예를 들어, 가상 머신이 인터넷에 노출되지 않는 경우 일부 보안 권장 사항의 관련성은 떨어질 수 있습니다. 일부 가용성 권장 사항은 우선순위가 낮은 임시 데이터 수집 및 보고를 제공하는 서비스와는 관련성이 떨어질 수 있습니다. 성숙한 비즈니스에 중요한 문제는 신생 기업에 덜 중요 할 수 있습니다. 우선 순위인 포커스 영역을 식별한 다음 시간이 지남에 따라 점수가 어떻게 변하는지 살펴볼 수 있습니다.

모든 권장 사항에는 중요한 이유에 대한 지침이 포함됩니다. IT 서비스의 특성과 조직의 비즈니스 요구 사항을 고려할 때 이 지침을 사용하여 권장 사항을 구현하는 것이 적절한지 평가해야 합니다.

상태 검사 포커스 영역 권장 사항 사용

Azure Monitor에서 평가 솔루션을 사용하려면 먼저 솔루션이 설치되어 있어야 합니다. 설치한 후에는 Azure Portal의 Azure Monitor 개요 페이지에서 SQL Health Check 타일을 사용하여 권장 사항의 요약을 볼 수 있습니다.

인프라에 대한 요약된 규정 준수 평가를 확인한 후 권장 사항을 자세히 살펴보세요.

주요 영역에 대한 권장 사항을 보고 수정 작업을 수행하려면

  1. https://portal.azure.com에서 Azure Portal에 로그인합니다.
  2. Azure Portal의 왼쪽 아래 모서리에 있는 추가 서비스를 클릭합니다. 리소스 목록에서 Monitor를 입력합니다. 입력을 시작하면 입력에 따라 목록이 필터링됩니다. 모니터를 선택합니다.
  3. 메뉴의 인사이트 섹션에서 자세히를 선택합니다.
  4. 개요 페이지에서 SQL Health Check 타일을 클릭합니다.
  5. 상태 검사 페이지에서 포커스 영역 섹션 중 하나에서 요약 정보를 검토한 다음 하나를 클릭하여 해당 포커스 영역에 대한 권장 사항을 봅니다.
  6. 주요 영역 페이지에서 사용자 환경에 대해 우선순위가 지정된 권장 사항을 볼 수 있습니다. 영향을 받는 개체 아래의 권장 사항을 클릭하여 권장 사항이 만들어진 이유에 대한 세부 정보를 확인합니다.

    SQL Health Check 권장 사항 이미지
  7. 권장 조치에 제안된 올바른 조치를 수행할 수 있습니다. 항목이 처리되면 이후 평가는 권장 조치가 이행되었음을 기록하고, 이에 따라 귀하의 규정 준수 점수가 증가하게 됩니다. 수정된 항목은 전달된 개체로 나타납니다.

권장 사항 무시

무시하려는 권장 사항이 있는 경우 Azure Monitor에서 권장 사항이 평가 결과에 표시되지 않도록 방지하는 데 사용할 텍스트 파일을 만들 수 있습니다.

무시할 권장 사항을 식별하려면

  1. Azure Monitor 메뉴에서 로그를 클릭합니다.

  2. 다음 쿼리를 사용하여 귀하의 환경에 있는 컴퓨터에서 실패한 권장 사항을 목록화합니다.

    SQLAssessmentRecommendation | where RecommendationResult == "Failed" | sort by Computer asc | project Computer, RecommendationId, Recommendation
    

    로그 쿼리를 보여 주는 스크린샷은 다음과 같습니다.

    실패한 권장 사항

  3. 무시할 권장 사항을 선택합니다. 다음 절차에서 RecommendationId에 대한 값을 사용합니다.

IgnoreRecommendations.txt 텍스트 파일을 만들고 사용하려면

  1. 이름이 IgnoreRecommendations.txt인 파일을 만듭니다.
  2. Azure Monitor에서 무시하려는 각 권장 사항에 대해 각 RecommendationId를 별도의 줄에 붙여넣거나 입력한 다음 파일을 저장하고 닫습니다.
  3. Azure Monitor에서 권장 사항을 무시하도록 각 컴퓨터의 다음 폴더에 파일을 배치합니다.
    • Microsoft Monitoring Agent가 있는 컴퓨터(직접 또는 Operations Manager를 통해 연결됨) - SystemDrive:\Program Files\Microsoft Monitoring Agent\Agent
    • Operations Manager 관리 서버 - SystemDrive:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server
    • Operations Manager 2016 관리 서버 - SystemDrive:\Program Files\Microsoft System Center 2016\Operations Manager\Server

권장 사항이 무시되는지 확인하려면

  1. 다음 예약된 평가가 실행된 후 기본적으로 7일마다 지정된 권장 사항은 무시됨으로 표시되며 평가 대시보드에 표시되지 않습니다.

  2. 다음 로그 검색 쿼리를 사용하여 무시된 모든 권장 사항을 나열할 수 있습니다.

    SQLAssessmentRecommendation | where RecommendationResult == "Ignored" | sort by Computer asc | project Computer, RecommendationId, Recommendation
    
  3. 나중에 무시된 권장 사항을 확인하려는 경우 IgnoreRecommendations.txt 파일을 제거하거나 해당 파일에서 RecommendationID를 제거할 수 있습니다.

자주 묻는 질문

SQL 평가 솔루션에서 수행하는 검사는 무엇인가요?

  • 다음 쿼리는 현재 수행된 모든 검사에 대한 설명을 보여줍니다.
SQLAssessmentRecommendation
| distinct RecommendationId, FocusArea, ActionArea, Recommendation, Description
| sort by FocusArea,ActionArea, Recommendation

그런 다음 추가 검토를 위해 결과를 Excel로 내보낼 수 있습니다.

상태 검사는 얼마나 자주 실행됩니까?

  • 검사는 7일마다 실행됩니다.

검사가 실행되는 빈도를 구성하는 방법이 있나요?

  • 이때는 그렇지 않습니다.

SQL Health Check 솔루션을 추가한 후 다른 서버가 검색되면 확인되나요?

  • 예, 일단 발견되면 그때부터 7일마다 점검됩니다.

서버가 서비스 해제된 경우 상태 검사에서 언제 제거되나요?

  • 서버가 3주 동안 데이터를 제출하지 않으면 제거됩니다.

데이터 수집을 수행하는 프로세스의 이름은 무엇인가요?

  • AdvisorAssessment.exe

데이터를 수집하는 데 얼마나 걸리나요?

  • 서버의 실제 데이터 수집에는 약 1시간이 걸립니다. 많은 수의 SQL 인스턴스 또는 데이터베이스가 있는 서버에서 더 오래 걸릴 수 있습니다.

수집되는 데이터 형식은 무엇인가요?

  • 수집되는 데이터 형식은 다음과 같습니다.
    • WMI
    • 레지스트리
    • 성능 계수기
    • SQL DMV(동적 관리 뷰).

데이터가 수집되는 시기를 구성하는 방법이 있나요?

  • 이때는 그렇지 않습니다.

실행 계정을 구성해야 하는 이유는 무엇인가요?

  • SQL Server의 경우 소수의 SQL 쿼리가 실행됩니다. 실행하려면 SQL에 대한 VIEW SERVER STATE 권한이 있는 실행 계정을 사용해야 합니다. 또한 WMI를 쿼리하려면 로컬 관리자 자격 증명이 필요합니다.

상위 10개 권장 사항만 표시하는 이유는 무엇인가요?

  • 전체적인 작업 목록을 제공하는 대신 우선 순위가 지정된 권장 사항을 해결하는 데 중점을 두는 것이 좋습니다. 이 문제를 해결하면 추가 권장 사항을 사용할 수 있습니다. 자세한 목록을 보려면 Log Analytics 로그 검색을 사용하여 모든 권장 사항을 볼 수 있습니다.

권장 사항을 무시하는 방법이 있나요?

다음 단계

  • 자세한 SQL Health Check 데이터 및 권장 사항을 분석하는 방법을 알아보려면 쿼리를 기록합니다.