Log Analytics 에이전트를 사용 하 여 Windows 및 Linux 성능 데이터 원본 수집Collect Windows and Linux performance data sources with Log Analytics agent

Windows와 Linux의 성능 카운터는 하드웨어 구성 요소, 운영 체제 및 애플리케이션의 성능에 대한 정보를 자세히 제공합니다.Performance counters in Windows and Linux provide insight into the performance of hardware components, operating systems, and applications. 장기적인 분석 및 보고를 위해 성능 데이터를 집계 하는 것 외에도, NRT (거의 실시간) 분석을 위해 Log Analytics 에이전트에서 성능 카운터를 자주 수집할 수 Azure Monitor.Azure Monitor can collect performance counters from Log Analytics agents at frequent intervals for Near Real Time (NRT) analysis in addition to aggregating performance data for longer term analysis and reporting.

중요

이 문서에서는 Azure Monitor에서 사용 하는 에이전트 중 하나인 Log Analytics 에이전트 를 사용 하 여 성능 데이터를 수집 하는 방법을 설명 합니다.This article covers collecting performance data with the Log Analytics agent which is one of the agents used by Azure Monitor. 다른 에이전트는 다른 데이터를 수집 하 고 다르게 구성 됩니다.Other agents collect different data and are configured differently. 사용 가능한 에이전트 목록 및 수집할 수 있는 데이터에 대 한 Azure Monitor 에이전트 개요 를 참조 하세요.See Overview of Azure Monitor agents for a list of the available agents and the data they can collect.

성능 카운터

성능 카운터 구성Configuring Performance counters

Log Analytics 작업 영역에 대 한 에이전트 구성 메뉴 에서 성능 카운터를 구성 합니다.Configure Performance counters from the Agents configuration menu for the Log Analytics workspace.

새 작업 영역에 대한 Windows 또는 Linux 성능 카운터를 처음으로 구성하는 경우, 몇 가지 공용 카운터를 신속하게 만드는 옵션이 제공됩니다.When you first configure Windows or Linux Performance counters for a new workspace, you are given the option to quickly create several common counters. 각 항목은 옆에 확인란과 함께 나열됩니다.They are listed with a checkbox next to each. 초기에 만들 카운터를 모두 선택한 후 Add the selected performance counters(선택한 성능 카운터 추가)를 클릭합니다.Ensure that any counters you want to initially create are checked and then click Add the selected performance counters.

Windows 성능 카운터의 경우, 각 성능 카운터에 대해 특정 인스턴스를 선택할 수 있습니다.For Windows performance counters, you can choose a specific instance for each performance counter. Linux 성능 카운터의 경우, 선택하는 각 카운터의 인스턴스는 부모 카운터의 모든 자식 카운터에 적용됩니다.For Linux performance counters, the instance of each counter that you choose applies to all child counters of the parent counter. 다음 테이블은 Linux와 Windows 성능 카운터 모두에서 사용할 수 있는 공통 인스턴스를 보여줍니다.The following table shows the common instances available to both Linux and Windows performance counters.

인스턴스 이름Instance name DescriptionDescription
_합계_Total 모든 인스턴스의 총계Total of all the instances
* 모든 인스턴스All instances
(/|/var)(/|/var) / 또는 /var로 명명된 인스턴트와 일치Matches instances named: / or /var

Windows 성능 카운터Windows performance counters

Windows 성능 카운터 구성Configure Windows Performance counters

이 절차에 따라 수집할 새 Windows 성능 카운터를 추가합니다.Follow this procedure to add a new Windows performance counter to collect. V2 Windows 성능 카운터는 지원 되지 않습니다.Please note that V2 Windows Performance Counters are not supported.

  1. 성능 카운터 추가 를 클릭 합니다.Click Add performance counter.

  2. 텍스트 상자에 object(instance)\counter 형식으로 카운트 이름을 입력합니다.Type the name of the counter in the text box in the format object(instance)\counter. 입력을 시작하면 일치하는 공용 카운터 목록이 나타납니다.When you start typing, you are presented with a matching list of common counters. 목록에서 카운터를 선택하거나 원하는 항목을 입력할 수 있습니다.You can either select a counter from the list or type in one of your own. object\counter 를 지정하면 특정 카운터에 대한 모든 인스턴스를 반환할 수도 있습니다.You can also return all instances for a particular counter by specifying object\counter.

    명명된 인스턴스에서 SQL Server 성능 카운터를 수집할 때 모든 명명된 인스턴스 카운터는 MSSQL$ 로 시작하며 인스턴스 이름이 이어집니다.When collecting SQL Server performance counters from named instances, all named instance counters start with MSSQL$ and followed by the name of the instance. 예를 들어 명명된 SQL 인스턴스 INST2의 경우 데이터베이스 성능 개체에서 모든 데이터베이스에 대한 로그 캐시 적중률 카운터를 수집하려면 MSSQL$INST2:Databases(*)\Log Cache Hit Ratio를 지정합니다.For example, to collect the Log Cache Hit Ratio counter for all databases from the Database performance object for named SQL instance INST2, specify MSSQL$INST2:Databases(*)\Log Cache Hit Ratio.

  3. 카운터를 추가할 때에는 해당 샘플 간격 에 기본적으로 10초가 사용됩니다.When you add a counter, it uses the default of 10 seconds for its Sample Interval. 수집된 성능 데이터의 스토리지 요구 사항을 줄이려면 높은 값으로, 최대 1800초(30분)까지 값을 변경할 수 있습니다.You can change this to a higher value of up to 1800 seconds (30 minutes) if you want to reduce the storage requirements of the collected performance data.

  4. 카운터 추가가 완료 되 면 화면 맨 위에 있는 적용 단추를 클릭 하 여 구성을 저장 합니다.When you're done adding counters, click the Apply button at the top of the screen to save the configuration.

Linux 성능 카운터Linux performance counters

Linux 성능 카운터 구성Configure Linux Performance counters

이 절차에 따라 수집할 새 Linux 성능 카운터를 추가합니다.Follow this procedure to add a new Linux performance counter to collect.

  1. 성능 카운터 추가 를 클릭 합니다.Click Add performance counter.
  2. 텍스트 상자에 object(instance)\counter 형식으로 카운트 이름을 입력합니다.Type the name of the counter in the text box in the format object(instance)\counter. 입력을 시작하면 일치하는 공용 카운터 목록이 나타납니다.When you start typing, you are presented with a matching list of common counters. 목록에서 카운터를 선택하거나 원하는 항목을 입력할 수 있습니다.You can either select a counter from the list or type in one of your own.
  3. 개체에 대한 모든 카운터에는 동일한 샘플 간격 이 사용됩니다.All counters for an object use the same Sample Interval. 기본값은 10초입니다.The default is 10 seconds. 수집된 성능 데이터의 스토리지 요구 사항을 줄이려면 이 값을 최대 1800초(30분)까지 변경할 수 있습니다.You change this to a higher value of up to 1800 seconds (30 minutes) if you want to reduce the storage requirements of the collected performance data.
  4. 카운터 추가가 완료 되 면 화면 맨 위에 있는 적용 단추를 클릭 하 여 구성을 저장 합니다.When you're done adding counters, click the Apply button at the top of the screen to save the configuration.

구성 파일에서 Linux 성능 카운터 구성Configure Linux performance counters in configuration file

Azure Portal을 사용하여 Linux 성능 카운터를 구성하는 대신 Linux 에이전트의 구성 파일을 편집하는 옵션도 있습니다.Instead of configuring Linux performance counters using the Azure portal, you have the option of editing configuration files on the Linux agent. 수집할 성능 메트릭은 /etc/opt/microsoft/omsagent/workspace <workspace id> /srv\omsagentfilea 의 구성에 의해 제어 됩니다.Performance metrics to collect are controlled by the configuration in /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.conf.

수집할 성능 메트릭의 각 개체나 범주는 구성 파일 내에 단일 <source> 요소로 정의되어야 합니다.Each object, or category, of performance metrics to collect should be defined in the configuration file as a single <source> element. 구문은 아래와 같은 패턴을 따릅니다.The syntax follows the pattern below.

<source>
    type oms_omi  
    object_name "Processor"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 30s
</source>

이 요소의 매개 변수를 다음 테이블에서 설명합니다.The parameters in this element are described in the following table.

매개 변수Parameters DescriptionDescription
object_nameobject_name 수집하는 개체의 이름입니다.Object name for the collection.
instance_regexinstance_regex 수집할 인스턴스를 정의하는 정규식 입니다.A regular expression defining which instances to collect. .* 값은 모든 인스턴스를 지정합니다.The value: .* specifies all instances. _Total 인스턴스에 대해서만 프로세서 메트릭을 수집하려면 _Total을 지정합니다.To collect processor metrics for only the _Total instance, you could specify _Total. crond 또는 sshd 인스턴스에 대해서만 프로세서 메트릭을 수집하려면 (crond\|sshd)를 지정합니다.To collect process metrics for only the crond or sshd instances, you could specify: (crond\|sshd).
counter_name_regexcounter_name_regex 수집할 (개체에 대한) 카운터를 정의하는 정규식 입니다.A regular expression defining which counters (for the object) to collect. 개체에 대한 모든 카운터를 수집하려면 .*를 지정합니다.To collect all counters for the object, specify: .*. 메모리 개체에 대한 스왑 공간 카운터만 수집하려면 예를 들어 다음을 지정할 수 있습니다. .+Swap.+To collect only swap space counters for the memory object, for example, you could specify: .+Swap.+
intervalinterval 개체의 카운터가 수집되는 빈도입니다.Frequency at which the object's counters are collected.

다음 테이블은 구성 파일에서 지정할 수 있는 개체 및 카운터를 나열합니다.The following table lists the objects and counters that you can specify in the configuration file. Azure Monitor에서 Linux 애플리케이션에 대한 성능 카운터 수집에서 설명된 대로 특정 애플리케이션에 사용할 수 있는 추가 카운터가 있습니다.There are additional counters available for certain applications as described in Collect performance counters for Linux applications in Azure Monitor.

개체 이름Object Name 카운터 이름Counter Name
논리 디스크Logical Disk % 사용 가능한 Inodes% Free Inodes
논리 디스크Logical Disk % 사용 가능한 공간% Free Space
논리 디스크Logical Disk % 사용된 Inodes% Used Inodes
논리 디스크Logical Disk % 사용된 공간% Used Space
논리 디스크Logical Disk 디스크 읽기 바이트/초Disk Read Bytes/sec
논리 디스크Logical Disk 디스크 읽기/초Disk Reads/sec
논리 디스크Logical Disk 디스크 전송/초Disk Transfers/sec
논리 디스크Logical Disk 디스크 쓰기 바이트/초Disk Write Bytes/sec
논리 디스크Logical Disk 디스크 쓰기/초Disk Writes/sec
논리 디스크Logical Disk 사용 가능한 메가바이트Free Megabytes
논리 디스크Logical Disk 논리 디스크 바이트/초Logical Disk Bytes/sec
메모리Memory % 사용 가능한 메모리% Available Memory
메모리Memory % 사용 가능한 스왑 공간% Available Swap Space
메모리Memory % 사용된 메모리% Used Memory
메모리Memory % 사용된 스왑 공간% Used Swap Space
메모리Memory 사용 가능한 MB 메모리Available MBytes Memory
메모리Memory 사용 가능한 MB 스왑Available MBytes Swap
메모리Memory 페이지 읽기/초Page Reads/sec
메모리Memory 페이지 쓰기/초Page Writes/sec
메모리Memory 페이지/초Pages/sec
메모리Memory 사용된 MB 스왑 공간Used MBytes Swap Space
메모리Memory 사용된 메모리 MBUsed Memory MBytes
네트워크Network 전송된 총 바이트Total Bytes Transmitted
네트워크Network 받은 총 바이트Total Bytes Received
네트워크Network 총 바이트Total Bytes
네트워크Network 전송된 총 패킷Total Packets Transmitted
네트워크Network 받은 총 패킷Total Packets Received
네트워크Network 총 Rx 오류Total Rx Errors
네트워크Network 총 Tx 오류Total Tx Errors
네트워크Network 총 충돌Total Collisions
물리적 디스크Physical Disk 평균 디스크 초/읽기Avg. Disk sec/Read
물리적 디스크Physical Disk 평균 디스크 초/전송Avg. Disk sec/Transfer
물리적 디스크Physical Disk 평균 디스크 초/쓰기Avg. Disk sec/Write
물리적 디스크Physical Disk 물리적 디스크 바이트/초Physical Disk Bytes/sec
ProcessProcess Pct 권한이 부여된 시간Pct Privileged Time
ProcessProcess Pct 사용자 시간Pct User Time
ProcessProcess 사용된 메모리 KBUsed Memory kBytes
ProcessProcess 가상 공유 메모리Virtual Shared Memory
프로세서Processor % DPC 시간% DPC Time
프로세서Processor % 유휴 시간% Idle Time
프로세서Processor % 인터럽트 시간% Interrupt Time
프로세서Processor % IO 대기 시간% IO Wait Time
프로세서Processor % Nice 시간% Nice Time
프로세서Processor % 권한이 부여된 시간% Privileged Time
프로세서Processor % Processor Time% Processor Time
프로세서Processor % 사용자 시간% User Time
SystemSystem 사용 가능한 실제 메모리Free Physical Memory
SystemSystem 페이징 파일에 사용 가능한 공간Free Space in Paging Files
SystemSystem 사용 가능한 가상 메모리Free Virtual Memory
SystemSystem 프로세스Processes
SystemSystem 페이징 파일에 저장된 크기Size Stored In Paging Files
SystemSystem 작동 시간Uptime
SystemSystem 사용자Users

다음은 성능 메트릭에 대한 기본 구성입니다.Following is the default configuration for performance metrics.

<source>
    type oms_omi
    object_name "Physical Disk"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 5m
</source>

<source>
    type oms_omi
    object_name "Logical Disk"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 5m
</source>

<source>
    type oms_omi
    object_name "Processor"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 30s
</source>

<source>
    type oms_omi
    object_name "Memory"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 30s
</source>

데이터 수집Data collection

Azure Monitor는 카운터가 설치된 모든 에이전트에서 지정된 모든 성능 카운터를 지정된 샘플 간격으로 수집합니다.Azure Monitor collects all specified performance counters at their specified sample interval on all agents that have that counter installed. 데이터는 집계 되지 않으며, log analytics 작업 영역에 지정 된 기간 동안 모든 로그 쿼리 보기에서 원시 데이터를 사용할 수 있습니다.The data is not aggregated, and the raw data is available in all log query views for the duration specified by your log analytics workspace.

성능 레코드 속성Performance record properties

성능 레코드에는 Perf 라는 type과 다음 테이블의 속성이 포함됩니다.Performance records have a type of Perf and have the properties in the following table.

속성Property DescriptionDescription
ComputerComputer 이벤트가 수집된 컴퓨터입니다.Computer that the event was collected from.
CounterNameCounterName 성능 카운터의 이름입니다.Name of the performance counter
CounterPathCounterPath Form \ \ <Computer> \ 개체 (인스턴스) 카운터에 있는 카운터의 전체 경로 \ 입니다.Full path of the counter in the form \\<Computer>\object(instance)\counter.
CounterValueCounterValue 카운터의 숫자 값입니다.Numeric value of the counter.
InstanceNameInstanceName 이벤트 인스턴스의 이름입니다.Name of the event instance. 인스턴스가 없으면 비어 있게 됩니다.Empty if no instance.
ObjectNameObjectName 성능 개체의 이름입니다.Name of the performance object
SourceSystemSourceSystem 데이터가 수집된 에이전트의 유형입니다.Type of agent the data was collected from.

OpsManager – Windows 에이전트, 직접 연결 또는 SCOMOpsManager – Windows agent, either direct connect or SCOM
Linux – 모든 Linux 에이전트Linux – All Linux agents
AzureStorage – Azure DiagnosticsAzureStorage – Azure Diagnostics
TimeGeneratedTimeGenerated 데이터가 샘플링된 날짜와 시간입니다.Date and time the data was sampled.

예상 크기 조정Sizing estimates

10초 간격으로 특정 카운터가 수집되는 양은 인스턴스당 일별 약 1MB입니다.A rough estimate for collection of a particular counter at 10-second intervals is about 1 MB per day per instance. 다음 수식을 사용하여 특정 카운터의 스토리지 요구 사항을 예측할 수 있습니다.You can estimate the storage requirements of a particular counter with the following formula.

1mb x (카운터 수) x (에이전트 수) x (인스턴스 수)1 MB x (number of counters) x (number of agents) x (number of instances)

성능 레코드를 통한 로그 쿼리Log queries with Performance records

다음 표에서는 성능 레코드를 검색하는 로그 쿼리의 다양한 예제를 제공합니다.The following table provides different examples of log queries that retrieve Performance records.

쿼리Query DescriptionDescription
PerfPerf 모든 성능 데이터All Performance data
Perf | where Computer == "MyComputer"Perf | where Computer == "MyComputer" 특정 컴퓨터의 모든 성능 데이터All Performance data from a particular computer
Perf | where CounterName == "Current Disk Queue Length"Perf | where CounterName == "Current Disk Queue Length" 특정 컴퓨터에 대한 모든 성능 데이터All Performance data for a particular counter
ObjectName = = "Processor" 및 CounterName = = "% Processor Time" 및 InstanceName = = "_Total" | 컴퓨터 별로 AVGCPU = avg (CounterValue)를 요약 하는 성능 |Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AVGCPU = avg(CounterValue) by Computer 모든 컴퓨터의 평균 CPU 사용률Average CPU Utilization across all computers
CounterName = = "% Processor Time" | 컴퓨터 별로 AggregatedValue = max (CounterValue)를 요약 하는 성능 |Perf | where CounterName == "% Processor Time" | summarize AggregatedValue = max(CounterValue) by Computer 모든 컴퓨터의 최대 CPU 사용률Maximum CPU Utilization across all computers
ObjectName = = "논리 디스크" 및 CounterName = = "Current Disk Queue Length" 및 Computer = = "MyComputerName" | 요약 AggregatedValue = avg (CounterValue) by InstanceName |Perf | where ObjectName == "LogicalDisk" and CounterName == "Current Disk Queue Length" and Computer == "MyComputerName" | summarize AggregatedValue = avg(CounterValue) by InstanceName 지정된 컴퓨터의 모든 인스턴스의 평균 현재 디스크 큐 길이Average Current Disk Queue length across all the instances of a given computer
성능 | 여기서 CounterName = = "Disk transfer/sec" | AggregatedValue = 백분위 수 (CounterValue, 95)를 컴퓨터별로 요약 합니다.Perf | where CounterName == "Disk Transfers/sec" | summarize AggregatedValue = percentile(CounterValue, 95) by Computer 모든 컴퓨터에 대한 디스크 전송/초의 95 백분위수95th Percentile of Disk Transfers/Sec across all computers
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), ComputerPerf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer 모든 컴퓨터에서 시간별 평균 CPU 사용량Hourly average of CPU usage across all computers
Perf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterNamePerf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterName 특정 컴퓨터에 대한 % 백분율 카운터당 시간별 70백분위수Hourly 70 percentile of every % percent counter for a particular computer
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), ComputerPerf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), Computer 특정 컴퓨터의 시간별 평균, 최소, 최대, 75백분위수 CPU 사용량Hourly average, minimum, maximum, and 75-percentile CPU usage for a specific computer
Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master"Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master" 명명된 SQL Server 인스턴스 INST2에서 마스터 데이터베이스에 대한 데이터베이스 성능 개체의 모든 성능 데이터.All Performance data from the Database performance object for the master database from the named SQL Server instance INST2.

다음 단계Next steps