서비스 맵은 Windows 및 Linux 시스템에서 애플리케이션 구성 요소를 자동으로 검색하고 서비스 간 통신을 매핑합니다. 서비스 맵을 사용하면 서버를 중요한 서비스를 제공하는 상호 연결된 시스템으로 볼 수 있습니다. 서비스 맵은 서버, 프로세스, 인바운드 및 아웃바운드 연결 대기 시간 및 TCP 연결 아키텍처의 포트 간 연결을 보여 줍니다. 에이전트를 설치하는 것 외에는 구성이 필요하지 않습니다.
중요합니다
서비스 맵은 2025년 9월 30일에 사용 중지됩니다. TCP 연결 아키텍처에서 서버, 프로세스, 인바운드 및 아웃바운드 연결 대기 시간 및 포트 간의 연결을 모니터링하려면 이 날짜 이전에 Azure Monitor VM 인사이트로 마이그레이션 해야 합니다.
이 문서에서는 서비스 맵을 배포하고 사용하는 방법을 설명합니다. 솔루션의 필수 구성 요소는 다음과 같습니다.
- 지원되는 지역의 Log Analytics 작업 영역입니다.
- 솔루션을 사용하도록 설정한 것과 동일한 작업 영역에 연결된 Windows 컴퓨터 또는 Linux 서버에 설치된 Log Analytics 에이전트 입니다.
- Windows 컴퓨터 또는 Linux 서버에 설치된 종속성 에이전트 입니다.
비고
서비스 맵을 이미 배포한 경우 이제 VM 상태 및 성능을 모니터링하는 추가 기능을 포함하는 VM 인사이트에서 맵을 볼 수도 있습니다. 자세한 내용은 VM 인사이트 개요를 참조하세요. 서비스 맵 솔루션과 VM 인사이트 맵 기능 간의 차이점에 대해 알아보려면 이 FAQ를 참조하세요.
Azure에 로그인
Azure Portal에 로그인합니다.
서비스 맵 사용
Azure Marketplace에서 서비스 맵 솔루션을 사용하도록 설정합니다. 또는 솔루션 갤러리에서 모니터링 솔루션 추가에 설명된 프로세스를 사용합니다.
Windows에 종속성 에이전트를 설치 하거나 데이터를 가져올 각 컴퓨터의 Linux에 종속성 에이전트를 설치 합니다. 종속성 에이전트는 인접 항목에 대한 연결을 모니터링할 수 있으므로 모든 컴퓨터에 에이전트가 필요하지 않을 수 있습니다.
Log Analytics 작업 영역에서 Azure Portal의 서비스 맵에 액세스합니다. 왼쪽 창에서 레거시 솔루션 옵션을 선택합니다.
.솔루션 목록에서 ServiceMap(workspaceName)을 선택합니다. 서비스 맵 솔루션 개요 페이지에서 서비스 맵 요약 타일을 선택합니다.
.
사용 사례: IT 프로세스 종속성 인식
발견
서비스 맵은 서버, 프로세스 및 타사 서비스에서 종속성의 공통 참조 맵을 자동으로 빌드합니다. 모든 TCP 종속성을 검색하고 매핑합니다. 이는 깜짝 연결, 사용자가 사용하는 원격 타사 시스템 및 Active Directory와 같은 네트워크의 기존 어두운 영역에 대한 종속성을 식별합니다. 서비스 맵은 관리 시스템이 만들려고 하는 실패한 네트워크 연결을 검색합니다. 이 정보는 잠재적인 서버 구성 오류, 서비스 중단 및 네트워크 문제를 식별하는 데 도움이 됩니다.
인시던트 관리
서비스 맵은 시스템이 연결되고 서로 영향을 주는 방법을 보여 줌으로써 문제 격리의 추측을 제거하는 데 도움이 됩니다. 실패한 연결을 식별하는 것과 함께 잘못 구성된 부하 분산 장치, 중요한 서비스에 대한 놀랍거나 과도한 부하, 프로덕션 시스템과 통신하는 개발자 컴퓨터와 같은 불량 클라이언트를 식별하는 데 도움이 됩니다. 변경 내용 추적과 통합 워크플로를 사용하면 백 엔드 머신 또는 서비스의 변경 이벤트가 인시던트 근본 원인을 설명하는지 확인할 수도 있습니다.
마이그레이션 보증
서비스 맵을 사용하면 Azure 마이그레이션을 효과적으로 계획, 가속화 및 유효성 검사하여 남아 있는 것이 없고 중단이 발생하지 않도록 할 수 있습니다. 다음을 할 수 있습니다:
- 함께 마이그레이션해야 하는 모든 상호 종속 시스템을 검색합니다.
- 시스템 구성 및 용량을 평가합니다.
- 실행 중인 시스템이 여전히 사용자에게 서비스를 제공하고 있는지 또는 마이그레이션 대신 서비스 해제 후보인지를 식별합니다.
이동이 완료되면 클라이언트 부하 및 ID를 확인하여 테스트 시스템과 고객이 연결되고 있는지 확인할 수 있습니다. 서브넷 계획 및 방화벽 정의에 문제가 있는 경우 서비스 맵의 맵에서 실패한 연결은 연결이 필요한 시스템을 가리킵니다.
비즈니스 연속성
Azure Site Recovery를 사용하고 있고 애플리케이션 환경에 대한 복구 순서를 정의하는 데 도움이 필요한 경우 서비스 맵은 시스템이 서로 어떻게 의존하는지 자동으로 표시할 수 있습니다. 이 정보는 복구 계획이 신뢰할 수 있도록 하는 데 도움이 됩니다.
중요한 서버 또는 그룹을 선택하고 해당 클라이언트를 확인하면 서버가 복원되고 사용 가능한 후 복구할 프런트 엔드 시스템을 식별할 수 있습니다. 반대로 중요한 서버의 백 엔드 종속성을 살펴보면 포커스 시스템을 복원하기 전에 복구할 시스템을 식별할 수 있습니다.
패치 관리
서비스 맵은 서비스에 의존하는 다른 팀 및 서버를 보여 줌으로써 시스템 업데이트 평가 사용을 향상시킵니다. 이렇게 하면 패치를 위해 시스템을 중단하기 전에 미리 알릴 수 있습니다. 또한 서비스 맵은 패치를 적용하고 다시 시작한 후 서비스를 사용할 수 있고 제대로 연결되었는지를 보여줌으로써 패치 관리를 향상시킵니다.
매핑 개요
서비스 맵 에이전트는 설치된 서버의 모든 TCP 연결 프로세스에 대한 정보를 수집합니다. 또한 각 프로세스에 대한 인바운드 및 아웃바운드 연결에 대한 세부 정보도 수집합니다.
왼쪽 창의 목록에서 서비스 맵 에이전트가 있는 컴퓨터 또는 그룹을 선택하여 지정된 시간 범위에 대한 종속성을 시각화할 수 있습니다. 컴퓨터 종속성 맵은 특정 컴퓨터에 초점을 맞춥니다. 직접 TCP 클라이언트 또는 해당 컴퓨터의 서버인 모든 컴퓨터를 표시합니다. 컴퓨터 그룹 맵은 서버 집합 및 해당 종속성을 보여 줍니다.
선택한 시간 범위 동안 활성 네트워크 연결을 사용하여 실행 중인 프로세스 그룹 및 프로세스를 표시하도록 맵에서 컴퓨터를 확장할 수 있습니다. 서비스 맵 에이전트가 있는 원격 컴퓨터가 확장되어 프로세스 세부 정보를 표시하면 포커스 컴퓨터와 통신하는 프로세스만 표시됩니다.
포커스 머신에 연결하는 에이전트 없는 프런트 엔드 머신의 수는 연결하는 프로세스의 왼쪽에 표시됩니다. 포커스 컴퓨터가 에이전트가 없는 백 엔드 머신에 연결하면 백 엔드 서버가 서버 포트 그룹에 포함됩니다. 이 그룹에는 동일한 포트 번호에 대한 다른 연결도 포함됩니다.
기본적으로 서비스 맵의 맵은 종속성 정보의 마지막 30분을 표시합니다. 왼쪽 위에 있는 시간 컨트롤을 사용하여 최대 1시간의 기록 시간 범위에 대한 맵을 쿼리하여 종속성이 과거에 어떻게 보였는지 확인할 수 있습니다. 예를 들어 인시던트 중 또는 변경이 발생하기 전에 어떻게 표시되는지 확인할 수 있습니다. 서비스 맵 데이터는 유료 작업 영역에서 30일 동안, 무료 작업 영역에서는 7일 동안 저장됩니다.
상태 배지 및 테두리 색 지정
맵의 각 서버 아래쪽에 서버에 대한 상태 정보를 전달하는 상태 배지 목록이 표시될 수 있습니다. 배지는 솔루션 통합 중 하나에서 서버에 대한 관련 정보가 있음을 나타냅니다.
배지를 선택하면 오른쪽 창의 상태 세부 정보로 바로 이동합니다. 현재 사용 가능한 상태 배지에는 경고, 서비스 데스크, 변경 내용, 보안 및 업데이트가 포함됩니다.
상태 배지의 심각도에 따라 컴퓨터 노드 테두리는 빨간색(위험), 노란색(경고) 또는 파란색(정보)으로 표시될 수 있습니다. 색은 상태 배지 중 가장 심각한 상태를 나타냅니다. 회색 테두리는 상태 표시기가 없는 노드를 나타냅니다.
프로세스 그룹
프로세스 그룹은 공통 제품 또는 서비스와 연결된 프로세스를 프로세스 그룹으로 결합합니다. 컴퓨터 노드가 확장되면 프로세스 그룹과 함께 독립 실행형 프로세스가 표시됩니다. 프로세스 그룹 내의 프로세스에 대한 인바운드 또는 아웃바운드 연결이 실패하면 전체 프로세스 그룹에 대해 연결이 실패한 것으로 표시됩니다.
컴퓨터 그룹
컴퓨터 그룹을 사용하면 하나의 서버가 아닌 서버 집합을 중심으로 지도를 볼 수 있습니다. 이러한 방식으로 다중 계층 애플리케이션 또는 서버 클러스터의 모든 멤버를 하나의 맵에서 볼 수 있습니다.
사용자는 그룹에 속한 서버를 함께 선택하고 그룹의 이름을 선택합니다. 그런 다음 모든 프로세스 및 연결이 있는 그룹을 보도록 선택할 수 있습니다. 그룹의 다른 멤버와 직접 관련된 프로세스 및 연결만 사용하여 볼 수도 있습니다.
머신 그룹 만들기
그룹 만들기:
컴퓨터 목록에서 원하는 컴퓨터 또는 컴퓨터를 선택하고 그룹에 추가를 선택합니다.
새로 만들기를 선택하고 그룹에 이름을 지정합니다.
비고
컴퓨터 그룹은 10개의 서버로 제한됩니다.
그룹 보기
일부 그룹을 만든 후에는 그룹을 볼 수 있습니다.
그룹 탭을 선택합니다.
해당 컴퓨터 그룹에 대한 맵을 보려면 그룹 이름을 선택합니다.
그룹에 속한 컴퓨터는 지도에서 흰색으로 표시됩니다.
그룹을 확장하여 컴퓨터 그룹을 구성하는 컴퓨터를 나열합니다.
프로세스별로 필터링
맵 보기를 전환하여 그룹의 모든 프로세스 및 연결 또는 컴퓨터 그룹과 직접 관련된 프로세스만 표시할 수 있습니다. 기본 보기에는 모든 프로세스가 표시됩니다.
지도 위의 필터 아이콘을 선택하여 보기를 변경합니다.
모든 프로세스를 선택하여 그룹의 각 컴퓨터에서 모든 프로세스 및 연결이 있는 맵을 확인합니다.
간소화된 보기를 만들려면 그룹 연결 프로세스만 표시하도록 보기를 변경합니다. 그런 다음 맵이 축소되어 그룹의 다른 컴퓨터에 직접 연결된 프로세스 및 연결만 표시합니다.
그룹에 컴퓨터 추가
기존 그룹에 컴퓨터를 추가하려면 원하는 컴퓨터 옆에 있는 확인란을 선택하고 그룹에 추가를 선택합니다. 그런 다음 컴퓨터를 추가할 그룹을 선택합니다.
그룹에서 컴퓨터 제거
그룹 목록에서 그룹 이름을 확장하여 컴퓨터 그룹의 컴퓨터를 나열합니다. 제거할 컴퓨터 옆에 있는 줄임표 메뉴를 선택하고 제거를 선택합니다.
그룹 제거 또는 이름 바꾸기
그룹 목록의 그룹 이름 옆에 있는 줄임표 메뉴를 선택합니다.
역할 아이콘
특정 프로세스는 웹 서버, 애플리케이션 서버 및 데이터베이스와 같은 컴퓨터에서 특정 역할을 수행합니다. 서비스 맵은 프로세스 및 컴퓨터 상자에 역할 아이콘을 추가하여 프로세스 또는 서버가 수행하는 역할을 한눈에 확인할 수 있도록 합니다.
| 역할 아이콘 | 설명 |
|---|---|
|
웹 서버 |
|
애플리케이션 서버 |
|
데이터베이스 서버 |
|
LDAP 서버 |
|
SMB 서버 |
실패한 연결
서비스 맵에서 실패한 연결은 프로세스 및 컴퓨터에 대한 맵에 표시됩니다. 빨간색 파선은 클라이언트 시스템이 프로세스 또는 포트에 도달하지 못했음을 나타냅니다.
실패한 연결은 해당 시스템이 실패한 연결을 시도하는 시스템인 경우 배포된 서비스 맵 에이전트가 있는 시스템에서 보고됩니다. 서비스 맵은 연결을 설정하지 못하는 TCP 소켓을 관찰하여 이 프로세스를 측정합니다. 이 오류는 방화벽, 클라이언트 또는 서버의 잘못된 구성 또는 원격 서비스를 사용할 수 없게 될 수 있습니다.
실패한 연결을 이해하면 문제 해결, 마이그레이션 유효성 검사, 보안 분석 및 전반적인 아키텍처 이해에 도움이 될 수 있습니다. 실패한 연결은 때때로 무해하지만 종종 문제를 직접 가리킵니다. 장애 조치(failover) 환경이 갑자기 연결할 수 없게 되거나 클라우드 마이그레이션 후에 두 애플리케이션 계층이 통신하지 못할 수 있습니다.
클라이언트 그룹
클라이언트 그룹은 종속성 에이전트가 없는 클라이언트 컴퓨터를 나타내는 맵의 상자입니다. 단일 클라이언트 그룹은 개별 프로세스 및 컴퓨터에 대한 클라이언트를 나타냅니다.
클라이언트 그룹에 있는 서버의 IP 주소를 보려면 그룹을 선택합니다. 그룹의 내용은 클라이언트 그룹 속성 창에 나열됩니다.
서버 포트 그룹
서버 포트 그룹은 종속성 에이전트가 없는 서버의 서버 포트를 나타내는 상자입니다. 상자에는 서버 포트와 해당 포트에 대한 연결이 있는 서버 수의 수가 포함됩니다. 상자를 확장하여 개별 서버 및 연결을 확인합니다. 상자에 서버가 하나만 있는 경우 이름 또는 IP 주소가 나열됩니다.
상황에 맞는 메뉴
서버의 오른쪽 위에 있는 줄임표(...)를 선택하여 해당 서버에 대한 상황에 맞는 메뉴를 표시합니다.
서버 맵 로드
서버 맵 로드를 선택하여 선택한 서버를 새 포커스 컴퓨터로 사용하여 새 맵으로 이동합니다.
자체 링크 표시
자체 링크 표시를 선택하여 서버 내 프로세스에서 시작 및 종료되는 TCP 연결인 자체 링크를 포함하여 서버 노드를 다시 그리는 방법을 선택합니다. 자체 링크가 표시되면 메뉴 명령이 자체 링크 숨기기 로 변경되어 해제할 수 있습니다.
컴퓨터 요약
컴퓨터 요약 창에는 서버의 운영 체제, 종속성 수 및 다른 솔루션의 데이터에 대한 개요가 포함되어 있습니다. 이러한 데이터에는 성능 메트릭, 서비스 데스크 티켓, 변경 내용 추적, 보안 및 업데이트가 포함됩니다.
컴퓨터 및 프로세스 속성
서비스 맵에서 맵을 탐색할 때 컴퓨터 및 프로세스를 선택하여 해당 속성에 대한 더 많은 컨텍스트를 얻을 수 있습니다. 컴퓨터는 DNS 이름, IPv4 주소, CPU 및 메모리 용량, VM 유형, 운영 체제 및 버전, 마지막 재부팅 시간 및 OMS 및 서비스 맵 에이전트의 ID에 대한 정보를 제공합니다.
실행 중인 프로세스에 대한 운영 체제 메타데이터에서 프로세스 세부 정보를 수집할 수 있습니다. 세부 정보에는 프로세스 이름, 프로세스 설명, 사용자 이름 및 도메인(Windows), 회사 이름, 제품 이름, 제품 버전, 작업 디렉터리, 명령줄 및 프로세스 시작 시간이 포함됩니다.
프로세스 요약 창에서는 바인딩된 포트, 인바운드 및 아웃바운드 연결 및 실패한 연결을 포함하여 프로세스의 연결에 대한 자세한 정보를 제공합니다.
경고 통합
서비스 맵은 Azure Alerts와 통합되어 선택한 시간 범위에서 선택한 서버에 대해 발생한 경고를 표시합니다. 현재 경고가 있는 경우 서버에 아이콘이 표시되고 컴퓨터 경고 창에 경고가 나열됩니다.
서비스 맵에서 관련 경고를 표시할 수 있도록 하려면 특정 컴퓨터에 대해 발생하는 경고 규칙을 만듭니다. 적절한 경고를 만들려면 다음을 수행합니다.
- 컴퓨터별로 그룹화할 절을 포함합니다. 예를 들어 컴퓨터 간격은 1분입니다.
- 메트릭 측정값에 따라 경고하도록 선택합니다.
로그 이벤트 통합
서비스 맵은 Log Search와 통합되어 선택한 시간 범위 동안 선택한 서버에 대해 사용 가능한 모든 로그 이벤트 수를 표시합니다. 이벤트 수 목록에서 행을 선택하여 로그 검색으로 이동하고 개별 로그 이벤트를 볼 수 있습니다.
Service Desk 통합
Log Analytics 작업 영역에서 두 솔루션을 모두 사용하도록 설정하고 구성하면 IT 서비스 관리 커넥터와의 서비스 맵 통합이 자동으로 수행됩니다. 서비스 맵의 통합에는 "Service Desk"라는 레이블이 지정됩니다. 자세한 내용은 IT 서비스 관리 커넥터를 사용하여 ITSM 작업 항목 중앙 관리를 참조하세요.
Machine Service Desk 창에는 선택한 시간 범위에서 선택한 서버에 대한 모든 IT 서비스 관리 이벤트가 나열됩니다. 현재 항목이 있고 Machine Service Desk 창에 아이콘이 나열되면 서버가 아이콘을 표시합니다.
연결된 ITSM 솔루션에서 항목을 열려면 작업 항목 보기를 선택합니다.
로그 검색에서 항목의 세부 정보를 보려면 로그 검색에서 표시를 선택합니다. 연결 메트릭은 Log Analytics의 두 개의 새 테이블에 기록됩니다.
변경 내용 추적 통합
Log Analytics 작업 영역에서 두 솔루션을 모두 사용하도록 설정하고 구성하면 변경 내용 추적과 서비스 맵 통합이 자동으로 수행됩니다.
컴퓨터 변경 내용 추적 창에는 모든 변경 내용이 나열되며, 가장 최근의 변경 내용과 자세한 내용은 로그 검색으로 드릴다운할 수 있는 링크가 있습니다.
다음 이미지는 Log Analytics에서 표시를 선택한 후 표시될 수 있는 ConfigurationChange 이벤트에 대한 자세한 보기입니다.
성능 통합
컴퓨터 성능 창에는 선택한 서버에 대한 표준 성능 메트릭이 표시됩니다. 메트릭에는 CPU 사용률, 메모리 사용률, 전송 및 수신된 네트워크 바이트, 보내고 받은 네트워크 바이트별 상위 프로세스 목록이 포함됩니다.
성능 데이터를 보려면 적절한 Log Analytics 성능 카운터를 사용하도록 설정해야 할 수 있습니다. 사용자가 활성화해야 할 카운터는 다음과 같습니다.
Windows:
- 프로세서(*)\% 프로세서 시간
- 메모리\% 사용 중 커밋된 바이트
- 네트워크 어댑터(*)\보낸 바이트/초
- 네트워크 어댑터(*) - 수신 바이트/초
Linux:
- 프로세서(*)\% 프로세서 시간
- Memory(*)\% 사용된 메모리
- 네트워크 어댑터(*)\보낸 바이트/초
- 네트워크 어댑터(*)\초당 수신 바이트
보안 통합
Log Analytics 작업 영역에서 두 솔루션을 사용하도록 설정하고 구성하면 보안 및 감사와 서비스 맵 통합이 자동으로 수행됩니다.
컴퓨터 보안 창에는 선택한 서버에 대한 보안 및 감사 솔루션의 데이터가 표시됩니다. 창에는 선택한 시간 범위 동안 서버에 대한 미해결 보안 문제에 대한 요약이 나열됩니다. 보안 문제를 선택하면 로그 검색으로 드릴다운되어 세부 정보를 확인할 수 있습니다.
통합 업데이트
Log Analytics 작업 영역에서 두 솔루션을 모두 사용하도록 설정하고 구성하면 업데이트 관리와 서비스 맵 통합이 자동으로 수행됩니다.
컴퓨터 업데이트 창에는 선택한 서버에 대한 업데이트 관리 솔루션의 데이터가 표시됩니다. 창에는 선택한 시간 범위 동안 서버에 대한 누락된 업데이트에 대한 요약이 나열됩니다.
로그 분석 기록
서비스 맵 컴퓨터 및 프로세스 인벤토리 데이터는 Log Analytics에서 검색 할 수 있습니다. 마이그레이션 계획, 용량 분석, 검색 및 주문형 성능 문제 해결을 포함하는 시나리오에 이 데이터를 적용할 수 있습니다.
프로세스 또는 컴퓨터가 시작되거나 서비스 맵에 등록될 때 생성되는 레코드 외에 각 고유 컴퓨터 및 프로세스에 대해 시간당 하나의 레코드가 생성됩니다. 이러한 레코드에는 다음 표의 속성이 있습니다.
ServiceMapComputer_CL 이벤트의 필드와 값은 ServiceMap Azure Resource Manager API의 Machine 리소스 필드에 매핑됩니다. ServiceMapProcess_CL 이벤트의 필드와 값은 ServiceMap Azure Resource Manager API의 프로세스 리소스 필드에 매핑됩니다. ResourceName_s 필드는 해당 Resource Manager 리소스의 이름 필드와 일치합니다.
비고
서비스 맵 기능이 증가함에 따라 이러한 필드는 변경될 수 있습니다.
내부적으로 생성된 속성을 사용하여 고유한 프로세스 및 컴퓨터를 식별할 수 있습니다.
- 컴퓨터: ResourceId 또는 ResourceName_s 사용하여 Log Analytics 작업 영역 내에서 컴퓨터를 고유하게 식별합니다.
- 프로세스: ResourceId 를 사용하여 Log Analytics 작업 영역 내의 프로세스를 고유하게 식별합니다. ResourceName_s프로세스가 MachineResourceName_s 실행 중인 컴퓨터의 컨텍스트 내에서 고유합니다.
지정된 시간 범위의 지정된 프로세스 및 컴퓨터에 대해 여러 레코드가 존재할 수 있으므로 쿼리는 동일한 컴퓨터 또는 프로세스에 대해 둘 이상의 레코드를 반환할 수 있습니다. 가장 최근 레코드만 포함하려면 쿼리에 추가 "| dedup ResourceId" 합니다.
관계망
연결 메트릭은 VMConnection이라는 Log Analytics의 새 테이블에 기록됩니다. 이 표에서는 컴퓨터의 인바운드 및 아웃바운드 연결에 대한 정보를 제공합니다. 또한 연결 메트릭은 기간 동안 특정 메트릭을 얻을 수 있는 수단을 제공하는 API와 함께 노출됩니다.
수신 대기 소켓에서 수락으로 인한 TCP 연결은 인바운드입니다. 지정된 IP 및 포트에 연결하여 만든 연결은 아웃바운드입니다. 연결 방향은 속성으로 Direction 표시되며 이 속성은 둘 중 하나 inbound 또는 outbound로 설정할 수 있습니다.
이러한 테이블의 레코드는 종속성 에이전트에서 보고한 데이터에서 생성됩니다. 모든 레코드는 1분 간격의 관찰을 나타냅니다. 이 속성은 TimeGenerated 시간 간격의 시작을 나타냅니다. 각 레코드에는 해당 엔터티, 즉 연결 또는 포트 및 해당 엔터티와 연결된 메트릭을 식별하는 정보가 포함됩니다. 현재 IPv4를 통해 TCP를 사용하여 발생하는 네트워크 작업만 보고됩니다.
비용과 복잡성을 관리하기 위해 연결 레코드는 개별 실제 네트워크 연결을 나타내지 않습니다. 여러 물리적 네트워크 연결이 논리 연결로 그룹화되고 각 테이블에 반영됩니다. 따라서 VMConnection 테이블의 레코드는 관찰되는 개별 물리적 연결이 아니라 논리적 그룹화입니다.
지정된 1분 간격 동안 다음 특성에 대해 동일한 값을 공유하는 실제 네트워크 연결은 VMConnection의 단일 논리 레코드로 집계됩니다.
| 재산 | 설명 |
|---|---|
Direction |
연결 방향 값은 인바운드 또는 아웃바운드입니다. |
Machine |
컴퓨터 FQDN입니다. |
Process |
연결을 시작하거나 수락하는 프로세스 또는 프로세스 그룹의 ID입니다. |
SourceIp |
원본의 IP 주소입니다. |
DestinationIp |
대상의 IP 주소입니다. |
DestinationPort |
대상의 포트 번호입니다. |
Protocol |
연결에 사용되는 프로토콜입니다. 값은 tcp입니다. |
그룹화의 영향을 고려하기 위해 그룹화된 실제 연결 수에 대한 정보는 레코드의 다음 속성에 제공됩니다.
| 재산 | 설명 |
|---|---|
LinksEstablished |
보고 기간 동안 설정된 실제 네트워크 연결 수입니다. |
LinksTerminated |
보고 기간 동안 종료된 실제 네트워크 연결 수입니다. |
LinksFailed |
보고 기간 동안 실패한 실제 네트워크 연결 수입니다. 이 정보는 현재 아웃바운드 연결에 대해서만 사용할 수 있습니다. |
LinksLive |
보고 기간의 끝에 열려 있는 실제 네트워크 연결 수입니다. |
지표
연결 수 메트릭 외에도 특정 논리 연결 또는 네트워크 포트에서 보내고 받은 데이터 볼륨에 대한 정보도 레코드의 다음 속성에 포함됩니다.
| 재산 | 설명 |
|---|---|
BytesSent |
보고 기간 동안 전송된 총 바이트 수. |
BytesReceived |
보고 기간 동안 수신된 총 바이트 수. |
Responses |
보고 기간 동안 관찰된 응답 수입니다. |
ResponseTimeMax |
보고 기간 동안 관찰된 가장 큰 응답 시간(밀리초)입니다. 값이 없으면 속성이 비어 있습니다. |
ResponseTimeMin |
보고 기간 동안 관찰된 가장 작은 응답 시간(밀리초)입니다. 값이 없으면 속성이 비어 있습니다. |
ResponseTimeSum |
보고 기간 동안 관찰된 모든 응답 시간(밀리초)의 합계입니다. 값이 없으면 속성이 비어 있습니다. |
보고되는 데이터의 세 번째 형식은 응답 시간입니다. 호출자가 연결을 통해 전송된 요청이 원격 엔드포인트에서 처리되고 응답되기를 기다리는 데 얼마나 걸리나요?
보고된 응답 시간은 기본 애플리케이션 프로토콜의 실제 응답 시간을 추정하는 것입니다. 물리적 네트워크 연결의 원본과 대상 끝 사이의 데이터 흐름 관찰을 기반으로 추론을 사용하여 계산됩니다.
개념적으로 응답 시간은 요청의 마지막 바이트가 보낸 사람에게 나가는 시간과 응답의 마지막 바이트가 다시 도착하는 시간의 차이입니다. 이러한 두 타임스탬프는 특정 물리적 연결에서 요청 및 응답 이벤트를 구분하는 데 사용됩니다. 둘 사이의 차이는 단일 요청의 응답 시간을 나타냅니다.
이 기능의 첫 번째 릴리스에서 알고리즘은 특정 네트워크 연결에 사용되는 실제 애플리케이션 프로토콜에 따라 다양한 수준의 성공으로 작동할 수 있는 근사치입니다. 예를 들어 현재 접근 방식은 HTTP/HTTPS와 같은 요청 응답 기반 프로토콜에 적합합니다. 그러나 이 방법은 단방향 또는 메시지 큐 기반 프로토콜에서는 작동하지 않습니다.
고려해야 할 몇 가지 중요한 사항은 다음과 같습니다.
- 프로세스에서 동일한 IP 주소와 여러 네트워크 인터페이스에 대한 연결을 허용하는 경우 각 인터페이스에 대한 별도의 레코드가 보고됩니다.
- 와일드카드 IP가 있는 레코드에는 활동이 포함되지 않습니다. 컴퓨터의 포트가 인바운드 트래픽에 열려 있다는 사실을 나타내기 위해 포함됩니다.
- 세부 정보 표시 및 데이터 볼륨을 줄이기 위해 특정 IP 주소와 일치하는 레코드(동일한 프로세스, 포트 및 프로토콜)가 있는 경우 와일드카드 IP가 있는 레코드는 생략됩니다. 와일드카드 IP 레코드를 생략
IsWildcardBind하면 특정 IP 주소가 있는 레코드 속성이 이 설정으로True.설정됩니다. 이 설정은 보고 컴퓨터의 모든 인터페이스에 포트가 노출됨을 나타냅니다. - 특정 인터페이스에만 바인딩된 포트는
IsWildcardBind이False로 설정됩니다.
명명 및 분류
편의를 위해 연결의 원격 끝 IP 주소가 속성에 RemoteIp 포함됩니다. 인바운드 연결의 경우, RemoteIp는 SourceIp와 동일합니다. 반면 아웃바운드 연결의 경우, RemoteIp는 DestinationIp와 동일합니다. 이 속성은 RemoteDnsCanonicalNames 컴퓨터 RemoteIp에서 보고한 DNS 정식 이름을 나타냅니다.
RemoteDnsQuestions 및 RemoteClassification 속성은 나중에 사용하도록 예약되어 있습니다.
지리적 위치
VMConnection 에는 레코드의 다음 속성에 있는 각 연결 레코드의 원격 끝에 대한 지리적 위치 정보도 포함됩니다.
| 재산 | 설명 |
|---|---|
RemoteCountry |
호스팅 RemoteIp하는 국가/지역의 이름입니다. 예를 들어 미국입니다. |
RemoteLatitude |
지리적 위치 위도입니다. 예를 들어 47.68이 있습니다. |
RemoteLongitude |
지리적 위치 경도입니다. 예를 들어 -122.12가 있습니다. |
악의적인 IP
VMConnection 테이블의 모든 RemoteIp 속성은 알려진 악의적인 활동이 있는 IP 집합에 대해 검사됩니다.
RemoteIp가 악성으로 식별되는 경우, 레코드의 다음 속성이 채워집니다. (IP가 악성으로 간주되지 않으면 이 속성들은 비어 있습니다).
| 재산 | 설명 |
|---|---|
MaliciousIp |
RemoteIp 주소입니다. |
IndicatorThreadType |
검색된 위협 지표는 Botnet, C2, CryptoMining, Darknet, DDos, MaliciousUrl, Malware, Phishing, Proxy, PUA 또는 Watchlist 값 중 하나입니다. |
Description |
관찰된 위협에 대한 설명입니다. |
TLPLevel |
TLP(신호등 프로토콜) 수준은 정의된 값 중 하나입니다. 흰색, 녹색, 황색, 빨간색. |
Confidence |
값은 0 ~ 100입니다. |
Severity |
값은 0 – 5입니다. 여기서 5 는 가장 심각하고 0 은 심각하지 않습니다. 기본값은 3입니다. |
FirstReportedDateTime |
공급자가 처음으로 지표를 보고한 것입니다. |
LastReportedDateTime |
표시기가 Interflow에 의해 마지막으로 관찰된 시점입니다. |
IsActive |
표시기가 True 또는 False 값으로 비활성화되었음을 나타냅니다. |
ReportReferenceLink |
지정된 관찰 가능한 보고서와 관련된 보고서에 대한 링크입니다. |
AdditionalInformation |
관찰된 위협에 대한 자세한 정보(해당하는 경우)를 제공합니다. |
ServiceMapComputer_CL 레코드
ServiceMapComputer_CL 형식의 레코드에는 서비스 맵 에이전트가 있는 서버에 대한 인벤토리 데이터가 있습니다. 이러한 레코드에는 다음 표의 속성이 있습니다.
| 재산 | 설명 |
|---|---|
Type |
ServiceMapComputer_CL |
SourceSystem |
#B0 OpsManager #C1 |
ResourceId |
작업 영역 내의 컴퓨터에 대한 고유 식별자입니다. |
ResourceName_s |
작업 영역 내의 컴퓨터에 대한 고유 식별자입니다. |
ComputerName_s |
컴퓨터 FQDN |
Ipv4Addresses_s |
서버의 IPv4 주소 목록 |
Ipv6Addresses_s |
서버의 IPv6 주소 목록 |
DnsNames_s |
DNS 이름 배열 |
OperatingSystemFamily_s |
Windows 또는 Linux |
OperatingSystemFullName_s |
운영 체제의 전체 이름 |
Bitness_s |
시스템의 비트 구조(32비트 또는 64비트) |
PhysicalMemory_d |
실제 메모리(MB) |
Cpus_d |
CPU 수 |
CpuSpeed_d |
CPU 속도(MHz) |
VirtualizationState_s |
알 수 없음, 물리적, 가상, 하이퍼바이저 |
VirtualMachineType_s |
hyperv, vmware 등 |
VirtualMachineNativeMachineId_g |
하이퍼바이저에서 할당한 VM ID |
VirtualMachineName_s |
VM 이름 |
BootTime_t |
부팅 시간 |
ServiceMapProcess_CL 형식 레코드
ServiceMapProcess_CL 형식의 레코드에는 서비스 맵 에이전트가 있는 서버의 TCP 연결 프로세스에 대한 인벤토리 데이터가 있습니다. 이러한 레코드에는 다음 표의 속성이 있습니다.
| 재산 | 설명 |
|---|---|
Type |
ServiceMapProcess_CL |
SourceSystem |
#B0 OpsManager #C1 |
ResourceId |
작업 영역 내의 프로세스에 대한 고유 식별자입니다. |
ResourceName_s |
실행 중인 컴퓨터 내의 프로세스에 대한 고유 식별자입니다. |
MachineResourceName_s |
컴퓨터의 리소스 이름 |
ExecutableName_s |
프로세스 실행 파일의 이름 |
StartTime_t |
프로세스 풀 시작 시간 |
FirstPid_d |
프로세스 풀의 첫 번째 PID |
Description_s |
프로세스 설명 |
CompanyName_s |
회사의 이름 |
InternalName_s |
내부 이름 |
ProductName_s |
제품 이름 |
ProductVersion_s |
제품 버전 |
FileVersion_s |
파일 버전 |
CommandLine_s |
명령줄 |
ExecutablePath _s |
실행 파일 경로 |
WorkingDirectory_s |
작업 디렉터리 |
UserName |
프로세스를 실행 중인 계정 |
UserDomain |
프로세스를 실행 중인 도메인 |
샘플 로그 검색
이 섹션에는 로그 검색 샘플이 나열됩니다.
알려진 모든 컴퓨터 나열
ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId
모든 관리 컴퓨터의 실제 메모리 용량 나열
ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId | project PhysicalMemory_d, ComputerName_s
컴퓨터 이름, DNS, IP 및 OS 나열
ServiceMapComputer_CL | summarize arg_max(TimeGenerated, *) by ResourceId | project ComputerName_s, OperatingSystemFullName_s, DnsNames_s, Ipv4Addresses_s
명령줄에서 "sql"을 사용하여 모든 프로세스 찾기
ServiceMapProcess_CL | where CommandLine_s contains_cs "sql" | summarize arg_max(TimeGenerated, *) by ResourceId
리소스 이름으로 컴퓨터(최신 레코드) 찾기
search in (ServiceMapComputer_CL) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by ResourceId
IP 주소로 컴퓨터(최신 레코드) 찾기
search in (ServiceMapComputer_CL) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by ResourceId
지정된 컴퓨터의 알려진 모든 프로세스 나열
ServiceMapProcess_CL | where MachineResourceName_s == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by ResourceId
SQL을 실행하는 모든 컴퓨터 나열
ServiceMapComputer_CL | where ResourceName_s in ((search in (ServiceMapProcess_CL) "\*sql\*" | distinct MachineResourceName_s)) | distinct ComputerName_s
내 데이터 센터에서 curl의 모든 고유한 제품 버전을 나열합니다.
ServiceMapProcess_CL | where ExecutableName_s == "curl" | distinct ProductVersion_s
CentOS를 실행하는 모든 컴퓨터의 컴퓨터 그룹 만들기
ServiceMapComputer_CL | where OperatingSystemFullName_s contains_cs "CentOS" | distinct ComputerName_s
기기 그룹의 아웃바운드 연결을 요약하세요
// the machines of interest
let machines = datatable(m: string) ["m-82412a7a-6a32-45a9-a8d6-538354224a25"];
// map of ip to monitored machine in the environment
let ips=materialize(ServiceMapComputer_CL
| summarize ips=makeset(todynamic(Ipv4Addresses_s)) by MonitoredMachine=ResourceName_s
| mvexpand ips to typeof(string));
// all connections to/from the machines of interest
let out=materialize(VMConnection
| where Machine in (machines)
| summarize arg_max(TimeGenerated, *) by ConnectionId);
// connections to localhost augmented with RemoteMachine
let local=out
| where RemoteIp startswith "127."
| project ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=Machine;
// connections not to localhost augmented with RemoteMachine
let remote=materialize(out
| where RemoteIp !startswith "127."
| join kind=leftouter (ips) on $left.RemoteIp == $right.ips
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=MonitoredMachine);
// the remote machines to/from which we have connections
let remoteMachines = remote | summarize by RemoteMachine;
// all augmented connections
(local)
| union (remote)
//Take all outbound records but only inbound records that come from either //unmonitored machines or monitored machines not in the set for which we are computing dependencies.
| where Direction == 'outbound' or (Direction == 'inbound' and RemoteMachine !in (machines))
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine
// identify the remote port
| extend RemotePort=iff(Direction == 'outbound', DestinationPort, 0)
// construct the join key we'll use to find a matching port
| extend JoinKey=strcat_delim(':', RemoteMachine, RemoteIp, RemotePort, Protocol)
// find a matching port
| join kind=leftouter (VMBoundPort
| where Machine in (remoteMachines)
| summarize arg_max(TimeGenerated, *) by PortId
| extend JoinKey=strcat_delim(':', Machine, Ip, Port, Protocol)) on JoinKey
// aggregate the remote information
| summarize Remote=makeset(iff(isempty(RemoteMachine), todynamic('{}'), pack('Machine', RemoteMachine, 'Process', Process1, 'ProcessName', ProcessName1))) by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol
REST API (REST 애플리케이션 프로그래밍 인터페이스)
서비스 맵의 모든 서버, 프로세스 및 종속성 데이터는 서비스 맵 REST API를 통해 사용할 수 있습니다.
진단 및 사용량 현황 데이터
Microsoft는 서비스 맵을 사용하여 사용량 및 성능 데이터를 자동으로 수집합니다. Microsoft는 이 데이터를 사용하여 서비스 맵의 품질, 보안 및 무결성을 제공하고 개선합니다.
정확하고 효율적인 문제 해결 기능을 제공하기 위해 데이터에는 소프트웨어 구성에 대한 정보가 포함됩니다. 이 정보는 운영 체제 및 버전, IP 주소, DNS 이름 및 워크스테이션 이름이 될 수 있습니다. 이름, 주소 또는 기타 연락처 정보는 수집하지 않습니다.
데이터 수집 및 사용에 대한 자세한 내용은 Microsoft Online Services 개인정보처리방침을 참조하세요.
다음 단계
서비스 맵에서 수집된 데이터를 검색하기 위한 Log Analytics의 로그 검색 에 대해 자세히 알아봅니다.
문제 해결
서비스 맵을 설치하거나 실행하는 데 문제가 있는 경우 이 섹션이 도움이 될 수 있습니다. 그래도 문제를 해결할 수 없는 경우 Microsoft 지원에 문의하세요.
종속성 에이전트 설치 문제
이 섹션에서는 종속성 에이전트 설치 문제를 해결합니다.
재부팅용 설치 프로그램 프롬프트
종속성 에이전트는 일반적으로 설치 또는 제거 시 다시 부팅할 필요가 없습니다. 드물게 Windows Server를 다시 부팅하여 설치를 계속해야 합니다. 이 문제는 종속성(일반적으로 Microsoft Visual C++ 재배포 가능 라이브러리)이 잠긴 파일로 인해 다시 부팅해야 하는 경우에 발생합니다.
"Dependency Agent를 설치할 수 없습니다. Visual Studio 런타임 라이브러리를 설치하지 못했습니다(코드 = [코드 번호])" 메시지가 표시됩니다.
Microsoft Dependency Agent는 Microsoft Visual Studio 런타임 라이브러리를 기반으로 합니다. 라이브러리를 설치하는 동안 문제가 발생하면 메시지가 표시됩니다.
런타임 라이브러리 설치 관리자는 %LOCALAPPDATA%\temp 폴더에 로그를 만듭니다. 이 파일은 dd_vcredist_arch_yyyymmddhhmmss.log이며, 여기서 arch는 x86 또는 amd64일 수 있으며 yyyymmddhhmmss는 로그가 생성된 날짜 및 시간(24시간 체계 기준)을 나타냅니다. 로그는 설치를 차단하는 문제에 대한 세부 정보를 제공합니다.
먼저 최신 런타임 라이브러리를 직접 설치하는 것이 유용할 수 있습니다.
다음 표에는 코드 번호와 제안된 해결 방법이 나와 있습니다.
| 코드 | 설명 | 해결 방법 |
|---|---|---|
| 0x17 | 라이브러리 설치 관리자에는 설치하지 않은 Windows 업데이트가 필요합니다. | 가장 최근의 라이브러리 설치 관리자 로그를 확인합니다. 참조 Windows8.1-KB2999226-x64.msu에 이어 Error 0x80240017: Failed to execute MSU package, 줄이 있는 경우, KB2999226를 설치하기 위한 사전 필수 구성 요소가 갖추어지지 않았습니다.
Windows 유니버설 C 런타임 문서의 필수 구성 요소 섹션에 있는 지침을 따릅니다. 필수 구성 요소를 설치하려면 Windows 업데이트를 실행하고 여러 번 다시 부팅해야 할 수 있습니다.Microsoft 종속성 에이전트 설치 관리자를 다시 실행합니다. |
설치 후 문제
이 섹션에서는 설치 후 문제를 해결합니다.
서버가 서비스 맵에 표시되지 않음
종속성 에이전트 설치에 성공했지만 서비스 맵 솔루션에 컴퓨터가 표시되지 않는 경우:
종속성 에이전트가 성공적으로 설치되었나요? 서비스가 설치되어 실행 중인지 확인합니다.
- Windows: Microsoft Dependency Agent라는 서비스를 찾습니다.
- Linux: 실행 중인 프로세스 microsoft-dependency-agent를 찾습니다.
Log Analytics 무료 계층에 있나요? 무료 계획에서는 고유한 서비스 맵 컴퓨터를 5개까지 허용합니다. 따라서 이전의 5개 서비스 맵 컴퓨터에서 데이터를 더 이상 보내지 않더라도 이후의 모든 컴퓨터는 서비스 맵에 표시되지 않습니다.
서버가 로그 및 성능 데이터를 Azure Monitor 로그에 보내고 있나요? Azure Monitor\Logs로 이동하여 컴퓨터에 다음 쿼리를 실행합니다.
Usage | where Computer == "admdemo-appsvr" | summarize sum(Quantity), any(QuantityUnit) by DataType
결과에서 다양한 이벤트가 나왔나요? 최근 데이터인가요? 그렇다면 Log Analytics 에이전트가 올바르게 작동하고 작업 영역과 통신하고 있습니다. 그렇지 않은 경우 기기에서 에이전트를 확인해 보세요. Windows용 Log Analytics 에이전트 문제 해결 또는 Linux 문제 해결을 위한 Log Analytics 에이전트를 참조하세요.
서버가 서비스 맵에 표시되지만 프로세스가 없습니다.
서비스 맵에 컴퓨터가 표시되지만 프로세스 또는 연결 데이터는 없습니다. 이 동작은 종속성 에이전트가 설치되고 실행 중이지만 커널 드라이버가 로드되지 않았음을 나타냅니다.
C:\Program Files\Microsoft Dependency Agent\logs\wrapper.log file Windows 또는 /var/opt/microsoft/dependency-agent/log/service.log file Linux를 확인하세요. 파일의 마지막 줄에 커널이 로드되지 않은 이유가 표시되어야 합니다. 예를 들어, 커널을 업데이트 한 경우 Linux에서 커널이 지원되지 않을 수 있습니다.
제안
서비스 맵 또는 이 설명서에 대한 피드백이 있나요? 기능을 제안하거나 기존 제안을 투표할 수 있는 사용자 의견 페이지를 참조하세요.