Log Analytics でログ検索を使用してデータを探すFind data using log searches in Log Analytics

注意

この記事では、従来のクエリ言語を使用した Log Analytics のログ検索について説明します。This article describes log searches using the legacy query language in Log Analytics. ワークスペースが新しい Log Analytics クエリ言語にアップグレードされている場合は、Log Analytics でのログ検索について (新) に関するページをご覧ください。If your workspace has been upgraded to the new Log Analytics query language, then you should refer to Understanding log searches in Log Analytics (new).

Log Analytics の中心にあるのは、環境内のさまざまなソースから収集したコンピューター データを組み合わせて相互の関係を比較できるログ検索機能です。At the core of Log Analytics is the log search feature which allows you to combine and correlate any machine data from multiple sources within your environment. 各種のソリューションも、特定の問題領域に関するj測定基準を得るためのログ検索機能を備えています。Solutions are also powered by log search to bring you metrics pivoted around a particular problem area.

検索クエリは [検索] ページで作成できます。検索結果は、ファセット コントロールを使用してフィルタリングすることができます。On the Search page, you can create a query, and then when you search, you can filter the results by using facet controls. 検索結果に対して変換やフィルター処理、レポート作成などを実行する高度なクエリを作成することもできます。You can also create advanced queries to transform, filter, and report on your results.

ほとんどのソリューション ページに、一般的な検索クエリが表示されます。Common log search queries appear on most solution pages. OMS コンソールで、タイルをクリックするか他の項目にドリルインし、ログ検索を使用して項目の詳細を表示できます。Throughout the OMS console, you can click tiles or drill in to other items to view details about the item by using log search.

このチュートリアルでは、ログ検索を使用するときの基礎について、そのすべてを例を通じて説明します。In this tutorial, we'll walk through examples to cover all the basics when you use log search.

単純で実用的な例から始めて、実際的な使用事例をあげながら、データから洞察を引き出すために構文をどのように使用するかを理解できるように説明を進めていきます。We'll start with simple, practical examples and then build on them so that you can get an understanding of practical use cases about how to use the syntax to extract the insights you want from the data.

検索テクニックが十分身に付いたら、「 Log Analytics log search reference (Log Analytics のログ検索リファレンス)」を参照してください。After you've familiar with search techniques, you can review the Log Analytics log search reference.

基本的なフィルターを使用するUse basic filters

最初に知るべきことは検索クエリの先頭部分、つまり "|" 縦棒パイプ文字の前は常に フィルター であることです。The first thing to know is that the first part of a search query, before any "|" vertical pipe character, is always a filter. それは TSQL での WHERE 句と考えることができ、OMS データ ストアから引き出すデータのサブセットは 何か を決定します。You can think of it as a WHERE clause in TSQL--it determines what subset of data to pull out of the OMS data store. データ ストアでの検索は、ほとんどが抽出するデータの特性を指定することに関係するため、クエリが WHERE 句から始まるのは自然なことです。Searching in the data store is largely about specifying the characteristics of the data that you want to extract, so it is natural that a query would start with the WHERE clause.

使用できる最も基本的なフィルターは、'error'、'timeout'、コンピューター名などの キーワード です。The most basic filters you can use are keywords, such as ‘error’ or ‘timeout’, or a computer name. 通常、この種の単純なクエリでは、同じ結果セットの中にさまざまな形のデータが返ります。These types of simple queries generally return diverse shapes of data within the same result set. Log Analytics がシステム内に異なる 種類 のデータを持っているのはこのためです。This is because Log Analytics has different types of data in the system.

  1. OMS ポータルで [Log Search](ログの検索) をクリックします。In the OMS portal, click Log Search.
    検索タイルsearch tile
  2. クエリ フィールドに 「 error 」と入力し、 [検索]をクリックします。In the query field, type error and then click Search.
    error の検索search error
    たとえば、次の図に示す error のクエリでは、100,000 件の Event レコード (Log Management が収集)、18 件の ConfigurationAlert レコード (Configuration Assessment が生成)、12 件の ConfigurationChange レコード (Change Tracking がキャプチャ) が返っています。For example, the query for error in the following image returned 100,000 Event records (collected by Log Management), 18 ConfigurationAlert records (generated by Configuration Assessment) and 12 ConfigurationChange records (captured by the Change Tracking).
    検索結果search results

これらのフィルターは実際はオブジェクト型でもクラスでもありません。These filters are not really object types/classes. Type は、データに付けられた、単なるタグ、プロパティ、または文字列/名前/カテゴリです。Type is just a tag, or a property, or a string/name/category, that is attached to a piece of data. システム内のドキュメントには、Type:ConfigurationAlert とタグ付けされたものや Type:PerfType:Event などとタグ付けされたものがあります。Some documents in the system are tagged as Type:ConfigurationAlert and some are tagged as Type:Perf, or Type:Event, and so on. それぞれの検索結果、ドキュメント、レコード、またはエントリには、各データの生のプロパティとその値がすべて表示されます。特定のフィールドに特定の値があるレコードのみを取得する場合は、フィルター内にフィールド名を指定できます。Each search result, document, record, or entry displays all the raw properties and their values for each of those pieces of data, and you can use those field names to specify in the filter when you want to retrieve only the records where the field has that given value.

Type は、実際はすべてのレコードが持っているフィールドであり、他のフィールドと異なっている点はありません。Type is really just a field that all records have, it is not different from any other field. これは Type フィールドの値に基づいて設定されました。This was established based on the value of the Type field. そのレコードは、さまざまな形になるでしょう。That record will have a different shape or form. ちなみに、Type=PerfType=Event も、パフォーマンス データやイベントをクエリするために学習する必要がある構文です。Incidentally, Type=Perf, or Type=Event is also the syntax that you need to learn to query for performance data or events.

フィールド名の後と値の前に、コロン (:) または等号 (=) のいずれかを使用できます。You can use either a colon (:) or an equal sign (=) after the field name and before the value. Type:EventType=Event は意味が同じであり、好みのスタイルを選択できます。Type:Event and Type=Event are equivalent in meaning, you can choose the style you prefer.

したがって、Type=Perf レコードに 'CounterName' というフィールドがある場合は、 Type=Perf CounterName="% Processor Time"のようなクエリを記述できます。So, if the Type=Perf records have a field called 'CounterName', then you can write a query resembling Type=Perf CounterName="% Processor Time".

このクエリでは、パフォーマンス カウンターの名前が "% Processor Time" であるパフォーマンス データだけが返ります。This will give you only the performance data where the performance counter name is "% Processor Time".

プロセッサ時間のパフォーマンス データを検索するにはTo search for processor time performance data

  • 検索クエリ フィールドに、「 Type=Perf CounterName="% Processor Time"In the search query field, type Type=Perf CounterName="% Processor Time"

もっと詳しく指定することもできます。クエリで InstanceName=_'Total' を使用します。これは Windows パフォーマンス カウンターです。You can also be more specific and use InstanceName=_'Total' in the query, which is a Windows performance counter. ファセットや別の field:value を選択することもできます。You can also select a facet and another field:value. フィルターは、クエリ バー内のフィルターに自動的に追加されます。The filter is automatically added to your filter in the query bar. これを次の図で確認できます。You can see this in the following image. 図は、何も入力せずに InstanceName:’_Total’ をクエリに追加するためにクリックする場所を示しています。It shows you where to click to add InstanceName:’_Total’ to the query without typing anything.

ファセットの検索

これで、クエリは Type=Perf CounterName="% Processor Time" InstanceName="_Total"Your query now becomes Type=Perf CounterName="% Processor Time" InstanceName="_Total"

この例では、結果を取得するために Type=Perf を指定する必要はありません。In this example, you don't have to specify Type=Perf to get to this result. CounterName フィールドと InstanceName フィールドは Type=Perf のレコードにのみ存在するため、このクエリの結果は先ほどと同じになります。Because the fields CounterName and InstanceName only exist for records of Type=Perf, the query is specific enough to return the same results as the longer, previous one:

CounterName="% Processor Time" InstanceName="_Total"

これは、クエリ内のすべてのフィルターは AND として評価されるためです。This is because all the filters in the query are evaluated as being in AND with each other. 条件にフィールドを追加すればするほど、結果は少なくなり、より詳しく、より洗練されていきます。Effectively, the more fields you add to the criteria, you get less, more specific and refined results.

たとえば、Type=Event EventLog="Windows PowerShell" というクエリは Type=Event AND EventLog="Windows PowerShell" と同じです。For example, the query Type=Event EventLog="Windows PowerShell" is identical to Type=Event AND EventLog="Windows PowerShell". それは、Windows PowerShell イベント ログに記録され、収集されたすべてのイベントを返します。It returns all events that were logged in and collected from the Windows PowerShell event log. 同じファセットを繰り返し選択することで 1 つのフィルターを複数回追加しても、問題は見た目の問題だけです。検索バーが読み取りにくくなりますが、暗黙的な AND 演算子は常に存在するため、同じ結果が返ります。If you add a filter multiple times by repeatedly selecting the same facet, then the issue is purely cosmetic--it might clutter the Search bar, but it still returns the same results because the implicit AND operator is always there.

暗黙的な AND 演算子は NOT 演算子を明示的に使用することで簡単に逆転させることができます。You can easily reverse the implicit AND operator by using a NOT operator explicitly. 次に例を示します。For example:

Type:Event NOT(EventLog:"Windows PowerShell") またはそれと同等である Type=Event EventLog!="Windows PowerShell" は、Windows PowerShell ログではない (NOT) 他のすべてのログからすべてのイベントを返します。Type:Event NOT(EventLog:"Windows PowerShell") or its equivalent Type=Event EventLog!="Windows PowerShell" return all events from all other logs that are NOT the Windows PowerShell log.

または、'OR' などの他のブール演算子を使用できます。Or, you can use other Boolean operator such as ‘OR’. 次のクエリは、EventLog が Application または (OR) System であるレコードを返します。The following query returns records for which the EventLog is either Application OR System.

EventLog=Application OR EventLog=System

上のクエリを使用すると、同じ結果セットの中に両方のログのエントリが取得されます。Using the above query, you’ll get entries for both logs in the same result set.

ただし、暗黙的な AND を残したまま OR を削除した場合、両方のログに属すイベント ログは存在しないため、次のクエリでは何の結果も返りません。However, if you remove the OR by leaving the implicit AND in place, then the following query will not produce any results because there isn’t an event log entry that belongs to BOTH logs. イベント ログのエントリは、2 つのログのどちらかのみに書き込まれていました。Each event log entry was written to only one of the two logs.

EventLog=Application EventLog=System

追加フィルターを使用するUse additional filters

次のクエリは、データを送信しているすべてのコンピューターの 2 つのイベント ログのエントリを返します。The following query returns entries for 2 event logs for all the computers that have sent data.

EventLog=Application OR EventLog=System

検索結果

フィールドまたはフィルターのいずれかを選択するとクエリが特定のコンピューターに絞り込まれ、その他のすべてのコンピューターが除外されます。Selecting one of the fields or filters will narrow the query to a specific computer, excluding all other ones. クエリは次のようになります。The resulting query would resemble the following.

EventLog=Application OR EventLog=System Computer=SERVER1.contoso.com

これは暗黙的な ANDのため、次と同じです。Which is equivalent to the following, because of the implicit AND.

EventLog=Application OR EventLog=System AND Computer=SERVER1.contoso.com

各クエリは、次の明示的な順序で評価されます。Each query is evaluated in the following explicit order. かっこに注意してください。Note the parenthesis.

(EventLog=Application OR EventLog=System) AND Computer=SERVER1.contoso.com

イベント ログのフィールドと同じように、OR を追加することで、特定のコンピューターのデータだけを取得できます。Just like the event log field, you can retrieve data only for a set of specific computers by adding OR. 次に例を示します。For example:

(EventLog=Application OR EventLog=System) AND (Computer=SERVER1.contoso.com OR Computer=SERVER2.contoso.com OR Computer=SERVER3.contoso.com)

同様に、次のクエリは、選択した 2 台のコンピューターの CPU 時間の割合 を返します。Similarly, this the following query return % CPU Time for the selected two computers only.

CounterName="% Processor Time"  AND InstanceName="_Total" AND (Computer=SERVER1.contoso.com OR Computer=SERVER2.contoso.com)

フィールドの型Field types

フィルターを作成するときは、ログ検索から返される各種フィールドの扱い方の違いを理解する必要があります。When creating filters, you should understand the differences in working with different types of fields returned by log searches.

検索可能フィールドは、検索結果に青色で表示されます。Searchable fields show in blue in search results. 検索可能フィールドは、そのフィールドに固有の検索条件に使用できます。その例を次に示します。You can use searchable fields in search conditions specific to the field such as the following:

Type: Event EventLevelName: "Error"
Type: SecurityEvent Computer:Contains("contoso.com")
Type: Event EventLevelName IN {"Error","Warning"}

フリーテキスト検索可能フィールドは、検索結果に灰色で表示されます。Free text searchable fields are shown in grey in search results. 検索可能フィールドのようにフィールド固有の検索条件で使用することはできません。They cannot be used with search conditions specific to the field like searchable fields. 検索できるのは、全フィールドを対象にクエリを実行するときだけです。その例を次に示します。They are only searched when performing a query across all fields such as the following.

"Error"
Type: Event "Exception"

ブール演算子Boolean operators

日時フィールドと数値フィールドでは、"より大きい"、"未満"、および "以上" を使用して値を検索できます。With datetime and numeric fields, you can search for values using greater than, lesser than, and lesser than or equal. クエリ検索バーで、>、<、>=、<=、!= などの単純な演算子を使用できます。You can use simple operators such as >, < , >=, <= , != in the query search bar.

特定の期間の特定のイベント ログをクエリできます。You can query a specific event log for a specific period of time. たとえば、過去 24 時間は、次のニーモニック式で表されます。For example, the last 24 hours is expressed with the following mnemonic expression.

EventLog=System TimeGenerated>NOW-24HOURS

ブール演算子を使用して検索するにはTo search using a boolean operator

  • 検索クエリ フィールドに、「 EventLog=System TimeGenerated>NOW-24HOURSIn the search query field, type EventLog=System TimeGenerated>NOW-24HOURS
    ブール演算子を使用した検索search with boolean

期間は視覚的に制御でき、ほとんどの場合そうしたいと思いますが、時間フィルターを直接クエリに含めることには利点があります。Although you can control the time interval graphically, and most times you might want to do that, there are advantages to including a time filter directly into the query. たとえば、これはダッシュボードで非常に役立ちます。ダッシュボードでは、ダッシュボード ページの "グローバル" なタイム セレクターに関係なく、各タイルの時間をオーバーライドできます。For example, this works great with dashboards where you can override the time for each tile, regardless of the global time selector on the dashboard page. 詳細については、ダッシュボードでの時間の問題に関するページを参照してください。For more information, see Time Matters in Dashboard.

時間でフィルター処理するときは、2 つの期間 (OMS ポータルで指定した期間 (S1) とクエリに指定した期間 (S2)) の 共通部分 が結果として取得されることに注意してください。When filtering by time, keep in mind that you get results for the intersection of the two time periods: the one specified in the OMS portal (S1) and the one specified in the query (S2).

intersection

つまり、期間に共通部分がない場合 (たとえば OMS ポータルで [今週] を選択し、クエリに [先週] を定義した場合)、共通部分がないため、何の結果も取得されません。This means, if the time periods don’t intersect, for example in the OMS portal where you choose This week and in the query where you define last week, then there is no intersection and you won't receive any results.

TimeGenerated フィールドで使用される比較演算子は、他の状況でも役立ちます。Comparison operators used for the TimeGenerated field are also useful in other situations. たとえば、数値フィールドでも使用できます。For example, with numeric fields.

例として、Configuration Assessment のアラートに以下の重大度の値があるとします。For example, given that Configuration Assessment’s alerts have the following severity values:

  • 0 = 情報0 = Information
  • 1 = 警告1 = Warning
  • 2 = 重大2 = Critical

次のクエリを使用して、警告アラートと重大アラートの両方をクエリすると同時に、情報アラートを除外できます。You can query for both warning and critical alerts and also exclude informational ones with the following query:

Type=ConfigurationAlert  Severity>=1

範囲クエリを使用することもできます。You can also use range queries. これは、連続する値の先頭と末尾の範囲を指定できることを意味します。This means that you can provide the beginning and end range of values in a sequence. たとえば、Operations Manager イベント ログから、イベント ID が 2100 以上で 2199 未満のイベントを取得する場合は、次のクエリを使用すると、それらが戻ります。For example, if you want events from the Operations Manager event log where the EventID is greater than or equal to 2100 but not greater than 2199, then the following query would return them.

Type=Event EventLog="Operations Manager" EventID:[2100..2199]

注意

使用する必要がある範囲構文は、コロン (:) 区切り記号であり (field:value)、等号 (=) は使用 "しません"。The range syntax you must use is the colon (:) field:value separator and not the equal sign (=). 範囲の下限と上限を 2 つのピリオド(..) で区切り、全体を角かっこで囲みます。Enclose the lower and upper end of the range in square brackets and separate them with two periods (..).

検索結果を操作するManipulate search results

データを検索しているときに、検索クエリを調整して結果を適切なレベルに制御できます。When you're searching for data, you'll want to refine your search query and have a good level of control over the results. 結果が取得されたら、コマンドを適用して結果を変換できます。When results are retrieved, you can apply commands to transform them.

Log Analytics 検索のコマンドは、縦棒パイプ文字 (|) の後ろに指定する 必要がありますCommands in Log Analytics searches must follow after the vertical pipe character (|). クエリ文字列の最初の部分は、常にフィルターにする必要があります。A filter must always be the first part of a query string. それは、操作するデータ セットを定義した後、結果をコマンドに "パイプ" します。It defines the data set you're working with and then "pipes" those results into a command. このパイプを使用して、その他のコマンドを追加できます。You can then use the pipe to add additional commands. これは、大まかに言って Windows PowerShell パイプラインに似ています。This is loosely similar to the Windows PowerShell pipeline.

全体として、Log Analytics の検索言語は、IT プロフェッショナルが慣れている PowerShell のスタイルとガイドラインに従うことで、容易に学習できるようになっています。In general, the Log Analytics search language tries to follow PowerShell style and guidelines to make it similar to the IT pros, and to ease the learning curve.

コマンドには動詞の名前が付いているため、そのコマンドが何をするかを簡単に識別できます。Commands have names of verbs so you can easily tell what they do.

並べ替えSort

Sort コマンドは、1 つまたは複数のフィールドによって並べ替え順序を定義できるようにします。The sort command allows you to define the sorting order by one or multiple fields. このコマンドを使用しない場合でも、時間による降順が既定によって適用されます。Even if you don’t use it, by default, a time descending order is enforced. 最新の結果が常に検索結果の最上位に表示されます。The most recent results are always at the top of search results. つまり、Type=Event EventID=1234 を使用して検索を実行すると、実際には次のクエリが実行されます。This means that when you run a search, with Type=Event EventID=1234 what really is executed for you is:

Type=Event EventID=1234 **| Sort TimeGenerated desc**

これは、ログでよく見られる種類の動作であり、That's because it is the type of experience you are familiar with in logs. たとえば Windows イベント ビューアーが該当します。For example, in the Windows Event Viewer.

Sort を使用して、結果が返される方法を変更できます。You can use Sort to change the way results are returned. この操作の例を以下に示します。The following examples show how this works.

Type=Event EventID=1234 | Sort TimeGenerated asc
Type=Event EventID=1234 | Sort Computer asc
Type=Event EventID=1234 | Sort Computer asc,TimeGenerated desc

上記の単純な例は、コマンドの動作方法を示しています。これらのコマンドはフィルターが返した結果の形を変更します。The simple examples above show you how commands work--they change the shape of the results that the filter returned.

Limit と TopLimit and top

あまり知られていないコマンドとして Limit があります。Another less known command is LIMIT. Limit は PowerShellに似た動詞です。Limit is a PowerShell-like verb. Limit の機能は Top コマンドと同じです。Limit is functionally identical to the TOP command. 以下のクエリは同じ結果を返します。The following queries return the same results.

Type=Event EventID=600 | Limit 1
Type=Event EventID=600 | Top 1

Top を使用して検索するにはTo search using top

  • 検索クエリ フィールドに、「Type=Event EventID=600 | Top 1 」と入力しますIn the search query field, type Type=Event EventID=600 | Top 1
    Top を使用した検索search top

上記の図では、EventID が 600 であるレコードが 358,000 個あります。In the image above, there are 358 thousand records with EventID=600. 左側のフィールド、ファセット、およびフィルターには、クエリのパイプ文字の前の部分である "フィルター部分によって" 返された結果についての情報が常に表示されます。The fields, facets, and filters on the left always show information about the results returned by the filter portion of the query, which is the part before any pipe character. [結果] パネルには最新の結果が 1 つだけ返されます。これは、コマンドによって結果が成形され、変換されたためです。The Results pane only returns the most recent 1 result, because the example command shaped and transformed the results.

SelectSelect

Select コマンドは、PowerShell の Select-Object のように動作します。The SELECT command behaves like Select-Object in PowerShell. それはフィルター処理された結果を返し、結果に元のプロパティがすべて含まれることはありません。It returns filtered results that do not have all of their original properties. 代わりに、指定したプロパティのみが選択されます。Instead, it selects only the properties that you specify.

Select コマンドを使用して検索を実行するにはTo run a search using the select command

  1. [検索] で「 Type=Event 」と入力し、 [検索]をクリックします。In Search, type Type=Event and then click Search.
  2. 結果が持っているすべてのプロパティを表示するには、結果のいずれかで [+ 詳細] をクリックします。Click + show more in one of the results to view all the properties that the results have.
  3. その中の一部を明示的に選択します。クエリが Type=Event | Select Computer,EventID,RenderedDescription に変わります。Select some of those explicitly, and the query changes to Type=Event | Select Computer,EventID,RenderedDescription.
    Select を使用した検索search select

これは、検索の出力を管理し、探索に本当に関係するデータ部分を選択する場合に特に役立つコマンドです。多くの場合、レコード全体が探索に関係することはありません。This command is particularly useful when you want to control search output and choose only the portions of data that really matter for your exploration, which often isn’t the full record. このコマンドは、異なる種類のレコードの中に共通するプロパティが "いくつか" あるが、"すべての" プロパティが共通しているわけではない場合にも便利です。This is also useful when records of different types have some common properties, but not all of their properties are common. その後、テーブルなどのもっと自然な形での出力や、CSV ファイルにエクスポートして Excel で表示すると理解しやすい出力を生成できます。The, you can generate output that looks more naturally like a table, or work well when exported to a CSV file and then massaged in Excel.

Measure コマンドを使用するUse the measure command

Measure は、Log Analytics 検索で最も用途の広いコマンドの 1 つです。MEASURE is one of the most versatile commands in Log Analytics searches. データに統計 関数 を適用し、結果を指定したフィールドでグループ化して集計できます。It allows you to apply statistical functions to your data and aggregate results grouped by a given field. Measure がサポートする統計関数は複数あります。There are multiple statistical functions that Measure supports.

Measure count()Measure count()

操作する最初の統計関数であり、最も簡単な関数の 1 つは count() 関数です。The first statistical function to work with, and one of the simplest to understand is the count() function.

Type=Eventなどの検索クエリの結果では、検索結果の左側にフィルター (ファセットとも呼ばれます) が表示されます。Results from any search query such as Type=Event, show filters also called facets on the left side of search results. これらのフィルターは、実行された検索の結果を、特定のフィールドによる値の分布で示します。The filters show a distribution of values by a given field for the results in the search executed.

Measure count() を使用した検索

たとえば、上の図では、Computer フィールドがあり、およそ 73 万 9 千件のイベントが結果に含まれ、これらのレコード内の Computer フィールドに一意の値が 68 個含まれていることを示しています。For example, in the image above you'll see the Computer field and it shows that within the almost 739 thousand events in the results, there are 68 unique and distinct values for the Computer field in those records. タイルには、上位 5 つの値のみが表示されています。これらは、Computer フィールドに書き込まれた最も共通している 5 つの値であり、そのフィールドに特定の値を含むドキュメントの数によって並べ替えられています。The tile only shows the top 5, which are the most common 5 values that are written in the Computer fields), sorted by the number of documents that contain that specific value in that field. この図から、およそ 369,000 件のイベントのうち、90,000 件が OpsInsights04.contoso.com コンピューター、83,000 件が DB03.contoso.com コンピューターのものであることなどがわかります。In the image you can see that – among those almost 369 thousand events – 90 thousand come from the OpsInsights04.contoso.com computer, 83 thousand from the DB03.contoso.com computer, and so on.

タイルには上位 5 件のみが表示されていますが、すべての値を確認するにはどうすればよいでしょうか?What if you want to see all values, since the tile only shows only the top 5?

それが Measure コマンドの count() 関数を使用して実行できることです。That’s what the measure command can do with the count() function. この関数はパラメーターを使用しません。This function doesn't use any parameters. グループ化するフィールドを指定するだけです。ここでは Computer フィールドを指定します。You just specify the field by which you want to group by – the Computer field in this case:

Type=Event | Measure count() by Computer

Measure count() を使用した検索

ただし、Computer は単に各データの "中で" 使用されるフィールドであり、関連するリレーショナル データベースはなく、独立した Computer オブジェクトも存在しません。However, Computer is just a field used in each piece of data – there are no relational databases involved and there is no separate Computer object anywhere. データの "中の" 値だけが、値を生成したエンティティと、データの他の特性と側面を記述できます。"ファセット" という用語が使用されるのはこのためです。Just the values in the data can describe which entity generated them, and a number of other characteristics and aspects of the data – hence the term facet. ただし、その他のフィールドでも同じようにグループ化できます。However, you can just as well group by other fields. Measure コマンドにパイプされるおよそ 739,000 件のイベントという元の結果には、EventID という名前のフィールドも含まれているため、同じテクニックを適用してそのフィールドでグループ化することで、EventID 別のイベント数を取得できます。Because the original results of almost 739 thousand events that are piped into the measure command also have a field called EventID, you can apply the same technique to group by that field and get a count of events by EventID:

Type=Event | Measure count() by EventID

特定の値を含む実際のレコードの数に関心はなく、値そのものの一覧が欲しい場合は、 Select コマンドをクエリの末尾に追加し、最初の列を選択できます。If you're not interested in the actual record count that contain a specific value, but instead if you only want a list of the values themselves, you can add a Select command at the end of it and just select the first column:

Type=Event | Measure count() by EventID | Select EventID

次に、複雑なクエリの結果を事前に並べ替えて取得できます。並べ替えはグリッド内の列をクリックすることでも実現できます。Then you can get more intricate and pre-sort the results in the query, or you can just click the columns in the grid, too.

Type=Event | Measure count() by EventID | Select EventID | Sort EventID asc

Measure count() を使用して検索するにはTo search using measure count

  • 検索クエリ フィールドに、「 Type=Event | Measure count() by EventIDIn the search query field, type Type=Event | Measure count() by EventID
  • | Select EventID をクエリの末尾に追加します。Append | Select EventID to the end of the query.
  • 最後に、 | Sort EventID asc をクエリの末尾に追加します。Finally, append | Sort EventID asc to the end of the query.

注意する必要がある重要なポイントがいくつかあります。There are a couple important points to notice and emphasize:

1 つ目のポイントは、表示される結果は、元の生の結果ではなくなっていることです。First, the results you see are not the original raw results anymore. それらは集計された結果であり、本質的に結果のグループです。Instead, they are aggregated results – essentially groups of results. これは問題ではありませんが、集計/統計関数の適用によって生成された元の生のデータの形とは非常に異なっていることを理解しておく必要があります。This isn't a problem, but you should understand that you're interacting with a very different shape of data that differs from the original raw shape that gets created on the fly as a result of the aggregation/statistical function.

2 つ目のポイントは、 Measure count は、現時点では上位 100 件の独自の結果のみを返すことです。Second, Measure count currently returns only the top 100 distinct results. この制限は、その他の統計関数には適用されません。This limit does not apply to the other statistical functions. このため、Measure count() は、通常は詳細なフィルターを使用して特定の項目を検索した後で適用する必要があります。So, you'll usually need to use a more precise filter first to search for specific items before you apply measure count().

Measure コマンドで Max 関数と Min 関数を使用するUse the max and min functions with the measure command

Measure Max()Measure Min() は、さまざまな状況で役に立ちます。There are various scenarios where Measure Max() and Measure Min() are useful. ただし、これらの関数は逆の動作をするため、ここでは Max() について説明します。Min() については自分で試すことができます。However, since each function is opposite of each other, we'll illustrate Max() and you can experiment with Min() on your own.

セキュリティ イベントのクエリを行う場合、イベントには値が異なる可能性がある Level プロパティがあります。If you query for security events, they have a Level property that can vary. 次に例を示します。For example:

Type=SecurityEvent

Measure count() を使用した検索の開始

コンピューターのすべてのセキュリティ イベントの最大値を確認する場合は、次のクエリを使用してフィールド別にグループ化できます。If you want to view the highest value for all of the security events given a common Computer, the group by field, you can use

Type=ConfigurationAlert | Measure Max(Level) by Computer

Measure Max を使用したコンピューターの検索

Level レコードを持つコンピューターが表示されます。そのほとんどが少なくともレベル 8 であり、多くはレベル 16 を持っています。It will display that for the computers that had Level records, most of them have at least level 8, many had a level of 16.

Type=ConfigurationAlert | Measure Max(Severity) by Computer

Measure Max(TimeGenerated) を使用したコンピューターの検索

この関数は数値に適していますが、DateTime フィールドでも動作します。This function works well with numbers, but it also works with DateTime fields. 各コンピューターでインデックス作成されたデータの最後または最近のタイムスタンプをチェックするために役立ちます。It is useful to check for the last or most recent time stamp for any piece of data indexed for each computer. たとえば、各コンピューターでレポートされた最新のセキュリティ イベントはいつのものかを調べます。For example: When was the most recent security event reported for each machine?

Type=ConfigurationChange | Measure Max(TimeGenerated) by Computer

Measure コマンドで Avg 関数を使用するUse the avg function with the measure command

Measure で使用される Avg() 統計関数では、あるフィールドの平均値を計算でき、結果を同じフィールドまたは別のフィールド別にグループ化できます。The Avg() statistical function used with measure allows you to calculate the average value for some field, and group results by the same or other field. これは、パフォーマンス データなどのさまざまなケースで役立ちます。This is useful in a variety of cases, such as performance data.

パフォーマンス データから始めます。We'll start with performance data. 現在 OMS では、Windows マシンと Linux マシンの両方のパフォーマンス カウンターが収集されます。Note that OMS currently collects performance counters for both Windows and Linux machines.

すべての パフォーマンス データを検索するための最も基本的なクエリは次のとおりです。To search for all performance data, the most basic query is:

Type=Perf

Avg を使用した検索の開始

最初に気が付くのは、Log Analytics によって 3 つの観点が示されるということです。1 つ目はリストで、グラフの基になる実際のレコードが示されます。2 つ目はテーブルで、パフォーマンス カウンターのデータが表形式のビューで示されます。3 つ目はメトリックで、パフォーマンス カウンターのグラフが示されます。The first thing you'll notice is that Log Analytics shows you three perspectives: List, which shows you which shows the actual records behind the charts; Table, which shows a tabular view of performance counter data; and Metrics, which shows charts for the performance counters.

上記の図には、以下を示す 2 つのフィールド セットがマークされています。In the image above, there are two sets of fields marked that indicate the following:

  • 最初のセットは、クエリ フィルター内の Windows パフォーマンス カウンターの名前、オブジェクト名、およびインスタンス名を識別します。The first set identifies Windows Performance Counter Name, Object Name, and Instance Name in the query filter. これらは、ファセット/フィルターとして最もよく使用される可能性があるフィールドです。These are the fields you probably will most commonly use as facets/filters
  • CounterValue は、カウンターの実際の値です。CounterValue is the actual value of the counter. この例では、値は 75 です。In this example, the value is 75.
  • TimeGenerated は 12 時 51 分であり、これは 24 時間制の時刻です。TimeGenerated is 12:51, in 24-hour time format.

以下に、メトリックのグラフを示します。Here's a view of the metrics in a graph.

Avg を使用した検索の開始

Perf レコードの形と他の検索テクニックに関する情報を読み取った後、Measure Avg() を使用して、この種の数値データを集計できます。After reading about the Perf record shape, and having read about other search techniques, you can use measure Avg() to aggregate this type of numerical data.

単純な例を次に示します。Here's a simple example:

Type=Perf  ObjectName:Processor  InstanceName:_Total  CounterName:"% Processor Time" | Measure Avg(CounterValue) by Computer

Avg(SampleValue) を使用した検索

この例では、CPU の合計時間に関するパフォーマンス カウンターを選択し、コンピューター別に平均を計算します。In this example, you select the CPU Total Time performance counter and average by Computer. 検索結果を直近 6 時間に絞り込むには、時間フィルター コントロールを使用するか、またはクエリの中で次のように指定します。If you want to narrow down your results to only the last 6 hours, you can either use the time filter control or specify in your query as follows:

Type=Perf  ObjectName:Processor  InstanceName:_Total  CounterName:"% Processor Time" TimeGenerated>NOW-6HOURS | Measure Avg(CounterValue) by Computer

Measure コマンドで Avg 関数を使用して検索するにはTo search using the avg function with the measure command

  • 検索クエリ ボックスに、「 Type=Perf ObjectName:Processor InstanceName:_Total CounterName:"% Processor Time" TimeGenerated>NOW-6HOURS | Measure Avg(CounterValue) by Computer」と入力します。In the Search query box, type Type=Perf ObjectName:Processor InstanceName:_Total CounterName:"% Processor Time" TimeGenerated>NOW-6HOURS | Measure Avg(CounterValue) by Computer.

複数の コンピューターのデータを集計して相関させることができます。You can aggregate and correlate data across computers. たとえば、ある種のファームの中にホストのセットがあり、各ノードは他のノードと同等であり、同じ種類の作業を実行し、負荷はほぼ均等であるとします。For example, imagine that you have a set of hosts in some sort of farm where each node is equal to any other one and they just do all the same type of work and load should be roughly balanced. 次のクエリを実行することで、すべてのカウンターを一気に取得し、ファーム全体の平均値を取得できます。You could get their counters all in one go with the following query and get averages for the entire farm. 次の例のように、コンピューターを選択することから始めます。You can start by choosing the computers with the following example:

Type=Perf AND (Computer="AzureMktg01" OR Computer="AzureMktg02" OR Computer="AzureMktg03")

コンピューターを選択したので、次に 2 つの主要業績評価指標 (KPI) である CPU 使用率と空きディスク領域の割合のみを選択します。Now that you have the computers, you also only want to select two key performance indicators (KPIs): % CPU Usage and % Free Disk Space. したがって、クエリのその部分は次のようになります。So, that part of the query becomes:

Type=Perf InstanceName:_Total  ((ObjectName:Processor AND CounterName:"% Processor Time") OR (ObjectName="LogicalDisk" AND CounterName="% Free Space")) AND TimeGenerated>NOW-4HOURS

これで、次の例のように、コンピューターとカウンターを追加できます。Now you can add computers and counters with the following example:

Type=Perf InstanceName:_Total  ((ObjectName:Processor AND CounterName:"% Processor Time") OR (ObjectName="LogicalDisk" AND CounterName="% Free Space")) AND TimeGenerated>NOW-4HOURS AND (Computer="AzureMktg01" OR Computer="AzureMktg02" OR Computer="AzureMktg03")

非常に具体的な選択を行っているため、 Measure Avg() コマンドは、コンピューター別ではなく、ファーム全体の平均を、CounterName でグループ化して返すことができます。Because you have a very specific selection, the measure Avg() command can return the average not by computer, but across the farm, simply by grouping by CounterName. 次に例を示します。For example:

Type=Perf  InstanceName:_Total  ((ObjectName:Processor AND CounterName:"% Processor Time") OR (ObjectName="LogicalDisk" AND CounterName="% Free Space")) AND TimeGenerated>NOW-4HOURS AND (Computer="AzureMktg01" OR Computer="AzureMktg02" OR Computer="AzureMktg03") | Measure Avg(CounterValue) by CounterName

これにより、環境のいくつかの KPI に関するコンパクトで有用なビューを取得できます。This gives you a useful compact view of a couple of your environment's KPIs.

Avg を使用した検索のグループ化

検索クエリは、ダッシュボードで簡単に使用できます。You can easily use the search query in a dashboard. たとえば、検索クエリを保存して、それを基にして Web Farm KPIs という名前のダッシュボードを作成できます。For example, you could save the search query and create a dashboard from it named Web Farm KPIs. ダッシュボードの使用の詳細については、「 Create a custom dashboard in Log Analytics (Log Analytics でのカスタム ダッシュボードの作成)」を参照してください。To learn more about using dashboards, see Create a custom dashboard in Log Analytics.

Avg を使用した検索結果を示すダッシュボード

Measure コマンドで Sum 関数を使用するUse the sum function with the measure command

Sum 関数は、Measure コマンドの他の関数に似ています。The sum function is similar to other functions of the measure command. Sum 関数の使用方法の例については、「 Microsoft Azure Operational Insights での W3C IIS ログ検索」で確認できます。You can see an example about how to use the sum function at W3C IIS Logs Search in Microsoft Azure Operational Insights.

Max() と Min() は、数値、日時、テキスト文字列で使用できます。You can use Max() and Min() with numbers, date times and text strings. テキスト文字列はアルファベット順に並べ替えられ、最初と最後の文字列が取得されます。With text strings, they are sorted alphabetically and you get first and last.

ただし、Sum() は、数値フィールド以外では使用できません。However, you cannot use Sum() with anything other than numerical fields. これは Avg() にも当てはまります。This also applies to Avg().

Measure コマンドで百分位関数を使用するUse the percentile function with the measure command

百分位関数は、数値フィールドに使用が限られるという点で Avg() や Sum() と似ています。The percentile function is similar to Avg() and Sum() in that you can only use it for numerical fields. 数値フィールドに対し、1 ~ 99 の範囲の任意の百分位数を使用できます。You can use any percentile between 1 to 99 on a numeric field. percentile コマンドと pct コマンドを使用することもできます。You can also use both percentile and pct commands. 次に例をいくつか示します。Here are few examples:

Type:Perf CounterName:"DiskTransers/sec" |measure percentile95(CurrentValue) by Computer
Type:Perf ObjectName=LogicalDisk CounterName="Current Disk Queue Length" Computer="MyComputerName" | measure pct65(CurrentValue) by InstanceName

Where コマンドを使用するUse the where command

Where コマンドはフィルターのように機能しますが、パイプライン内で適用して、クエリの先頭でフィルター処理される生データではなく、Measure コマンドによって生成された集計結果をさらにフィルター処理できます。The where command works like a filter, but it can be applied in the pipeline to further filter aggregated results that have been produced by a Measure command – as opposed to raw results that are filtered at the beginning of a query.

次に例を示します。For example:

Type=Perf  CounterName="% Processor Time"  InstanceName="_Total" | Measure Avg(CounterValue) as AVGCPU by Computer

次の例に示すように、別のパイプ文字 "|" と Where コマンドを追加することで、平均 CPU 使用率が 80% を超えるコンピューターのみを取得できます。You can add another pipe "|" character and the Where command to only get computers whose average CPU is above 80%, with the following example:

Type=Perf  CounterName="% Processor Time"  InstanceName="_Total" | Measure Avg(CounterValue) as AVGCPU by Computer | Where AVGCPU>80

Microsoft System Center の Operations Manager に慣れている場合、Where コマンドは管理パック用語と考えることができます。If you're familiar with Microsoft System Center - Operations Manager, you can think of the where command in management pack terms. 上記の例をルールであるとみなすと、クエリの最初の部分はデータ ソースになり、Where コマンドは条件の検出にあたります。If the example were a rule, the first part of the query would be the data source and the where command would be the condition detection.

クエリは、 [マイ ダッシュボード]のタイルとして、コンピューターの CPU が過剰に使用されたときに確認するためのある種のモニターとして使用できます。You can use the query as a tile in My Dashboard, as a monitor of sorts, to see when computer CPUs are over-utilized. ダッシュボードの詳細については、「 Create a custom dashboard in Log Analytics (Log Analytics でのカスタム ダッシュボードの作成)」を参照してください。To learn more about dashboards, see Create a custom dashboard in Log Analytics. ダッシュボードは、モバイル アプリで作成して使用することもできます。You can also create and use dashboards using the mobile app. 詳細については、OMS モバイル アプリのページを参照してください。For more information, see OMS Mobile App . 次の図の下部にある 2 つのタイルに、モニターが一覧と数値で表示されていることがわかります。In the bottom two tiles of the following image, you can see the monitor displayed a list and as a number. 基本的には、数値はゼロであり、一覧は空であることが望まれます。Essentially, you always want the number to be zero and the list to be empty. そうでない場合は、アラート状態であることを示しています。Otherwise, it indicates an alert condition. 必要に応じて、どのコンピューターに負荷がかかっているかを調べることができます。If needed, you can use it to take a look at which machines are under pressure.

モバイル ダッシュボード

IN 演算子の使用Use the in operator

IN 演算子と NOT IN 演算子ではサブ検索を使用できます。つまり、引数として別の検索を追加することができます。The IN operator, along with NOT IN allows you to use subsearches, which are searches that include another search as an argument. サブ検索は、別の "プライマリ" ("外側の") 検索の内側に、中かっこ {} で囲んで指定します。They are contained in braces {} within another primary or outer search. サブ検索からは通常、重複しない値のリストが返され、その結果が、プライマリ検索の引数として使用されます。The result of a subsearch, often a list of distinct results, is then used as an argument in its primary search.

サブ検索を使用すると、データのサブセット (検索式の中で直接記述することはできないものの、検索結果として生成することはできるデータの集合) に対して検索を実行することができます。You can use subsearches to match subsets of your data that you cannot describe directly in a search expression, but which can be generated from a search. たとえば、"セキュリティ更新プログラムが適用されていないコンピューター" から生成されたすべてのイベントを 1 回の検索で探すには、まず "セキュリティ更新プログラムが適用されていないコンピューター" を特定したうえで、それらのホストに属しているイベントを探すようにサブ検索を設計する必要があります。For example, if you’re interested in using one search to find all events from computers missing security updates, then you need to design a subsearch that first identifies that computers missing security updates before it finds events belonging to those hosts.

たとえば、 現時点で必要なセキュリティ更新プログラムが適用されていないコンピューター は、次のクエリで表現することができます。So, you could express computers currently missing required security updates with the following query:

Type:Update UpdateState=Needed Optional=false Classification="Security Updates" TimeGenerated>NOW-24HOURS | measure count() by Computer

IN search example

必要な一連の検索結果が得られたら、その検索を内側で使用し、外側の (プライマリ) 検索に一連のコンピューターを渡すことで、それらのコンピューターを対象にイベントを検索することができます。Once you have the list, you can use the search as an inner search to feed the list of computers into an outer (primary) search that will look for events for those computers. そのためには内側の検索を中かっこで囲み、外側の検索のフィルターまたはフィールドの候補値としてその結果を IN 演算子で渡します。You do this by enclosing the inner search in braces and feeding its results as possible values for a filter/field in the outer search using the IN operator. このクエリは、次のように記述します。The query would resemble:

Type=Event Computer IN {Type:Update UpdateState=Needed Optional=false Classification="Security Updates" TimeGenerated>NOW-24HOURS | measure count() by Computer}

IN search example

内側の検索に使用されている時間フィルターにも注目してください。これは、24 時間おきにすべてのコンピューターのスナップショットが System Update Assessment によって作成されるためです。Also notice the time filter used in the inner search because the System Update Assessment takes a snapshot of all computers every 24 hours. 内側のクエリは、特定の曜日を検索対象にすれば、もっと簡潔化し、きりの良い結果を得ることができます。You can make the inner query more lightweight and precise by only searching for a day. ここでは、外側の検索でユーザー インターフェイスによる時間選択を利用し、直近 7 日間のイベントを取得しています。The outer search instead uses the time selection in the user interface, retrieving events from the last 7 days. 時間演算子の詳細については、「ブール演算子」を参照してください。See Boolean operators for more information about time operators.

内側の検索の結果は、実際には外側の検索のフィルター値として使用しているだけなので、外側の検索でさらにコマンドを適用することができます。Because you really only use the results of the inner search as a filter value for the outer one, you can still apply commands in the outer search. たとえば、上記のイベントを別の Measure コマンドでグループ化することも可能です。For example, you can still group the above events with another measure command:

Type=Event Computer IN {Type:Update UpdateState=Needed Optional=false Classification="Security Updates" TimeGenerated>NOW-24HOURS | measure count() by Computer} | measure count() by Source

IN search example

Log Analytics はサービス側のタイムアウトが決まっているため、一般に内側のクエリはすばやく実行されること、また、返される結果の件数が少ないことが理想です。Generally, you want your inner query to execute quickly because Log Analytics has service-side timeouts for it and also to return a small amount of results. 内側のクエリから大量の結果が返されると、検索結果のリストが切り詰められ、外側の検索から間違った結果が返される原因となります。If the inner query returns more results, the result list gets truncated, which could potentially cause the outer search to return incorrect results.

現時点では、もう 1 つルールがあって、内側の検索から返される結果は、"集計済み" であることが必要です。Another rule is that the inner search currently needs to provide aggregated results. つまり、Measure コマンドを含んでいる必要があります。現時点では、未加工の結果を外側の検索にそのまま渡すことはできません。In other words, it must contain a measure command; you cannot currently feed raw results into an outer search.

また、使用できる IN 演算子は 1 つだけで、クエリの最後のフィルターとして使用されている必要があります。Also, there can be only one IN operator and it must be the last filter in the query. 複数の IN 演算子を OR で連結することはできません。したがって、複数のサブ検索を実行することはできません。サブ (内側の) 検索は、外側の検索ごとに 1 回しか使用できないので注意してください。Multiple IN operators cannot be OR’d – this essentially prevents running multiple subsearches: the important point is that only one sub/inner search is possible for each outer search.

こうした制限事項はあるものの、IN 演算子を利用すると、さまざまな検索を組み合わせて、コンピューター、ユーザー、ファイルなど、データに含まれているあらゆるフィールドから擬似的なグループを定義することができます。Even with these limits, IN enables many kinds of correlated searches, and allows you to define something similar to groups such as computers, users, or files – whatever the fields in your data contain. 以下、他にもいくつかの例を紹介します。Here are more examples:

自動更新設定が無効になっているコンピューターに不足しているすべての更新プログラムAll updates missing from computers where Automatic Update setting is disabled

Type=Update UpdateState=Needed Optional=false Computer IN {Type=UpdateSummary WindowsUpdateSetting=Manual | measure count() by Computer} | measure count() by KBID

SQL Server が実行されている (= SQL Assessment が実行されている) コンピューターから生成されたすべてのエラー イベントAll error events from computers running SQL Server (=where SQL Assessment has run)

Type=Event EventLevelName=error Computer IN {Type=SQLAssessmentRecommendation | measure count() by Computer}

ドメイン コントローラーとして動作している (= AD Assessment が実行されている) コンピューターから生成されたすべてのセキュリティ イベントAll security events from computers that are Domain Controllers (=where AD Assessment has run)

Type=SecurityEvent Computer IN { Type=ADAssessmentRecommendation | measure count() by Computer }

アカウント BACONLAND\jochan がログオンしたコンピューターにログオンした他のアカウントWhich other accounts have logged on to the same computers where account BACONLAND\jochan has logged on?

Type=SecurityEvent EventID=4624   Account!="BACONLAND\\jochan" Computer IN { Type=SecurityEvent EventID=4624   Account="BACONLAND\\jochan" | measure count() by Computer } | measure count() by Account

Distinct コマンドの使用Use the distinct command

この名前が示すように、このコマンドは、特定のフィールドの、重複しない一連の値を返します。As the name suggests, this command provides a list of distinct values for a field. 意外なほどにシンプルですが、きわめて実用的です。It's surprisingly simple but quite useful. 同じことは、以下に示した Measure count() コマンドでもできます。The same could be achieved with measure count() command as well, as shown below.

Type=Event | Measure count() by Computer

DISTINCT search command example

ただし必要な情報が単に一意の値のリストであって、その値を含んだドキュメントの数ではないという場合は、DISTINCT の方がすっきりしていて出力結果が読みやすく、構文も短くて済みます。以下の例をご覧ください。However, if all you're interested in is just a list of distinct values and not the count of documents that have that values, then DISTINCT can provide cleaner and easier to read output, and shorter syntax, as shown below.

Type=Event | Distinct Computer

DISTINCT search command example

Measure コマンドでの countdistinct 関数の使用Use the countdistinct function with the measure command

countdistinct は、各グループに含まれる一意の値の数をカウントする関数です。The countdistinct function counts the number of distinct values within each group. たとえば、Type ごとにその報告元となった一意のコンピューターの台数をカウントする場合に利用できます。For example, it could be used to count the number of unique computers reporting for each Type:

* | measure countdistinct(Computer) by Type

OMS-countdistinct

Measure interval コマンドの使用Use the measure interval command

Log Analytics では、パフォーマンス データをほぼリアルタイムで収集し、あらゆるパフォーマンス カウンターからデータを集めて視覚化することができます。With near real-time performance data collection, you can collect and visualize any performance counter in Log Analytics. Type:Perf 」というクエリを入力するだけで、Log Analytics 環境内のカウンター数やサーバー数に基づいて多数のメトリック グラフが返されます。Simply entering the query Type:Perf will return thousands of metric graphs based on the number of counters and servers in your Log Analytics environment. 必要に応じてメトリックの集計を組み合わせれば、環境内の全体的なメトリックをざっと見渡したり、必要に応じて、さらに粒度の細かいデータにまで踏み込んで調べたりすることもできます。With on-demand metric aggregation, you can look at the overall metrics in your environment at a high level, and deep dive into more granular data as you need to.

たとえば、すべてのコンピューターを対象に平均 CPU 時間を調べることになったとしましょう。Let’s say that you want to know what is the average CPU across all your computers. コンピューターごとの平均 CPU 時間に着目しても、結果の凹凸がならされてしまい、有意義な結果が得られない可能性があります。さらに踏み込んで調べるためには、もっと小さな時間枠を 1 つのまとまりとして結果を集計し、さまざまな切り口の時系列に注目します。Looking at the average CPU for every computer might not be helpful because results may get smoothed out. To look into more details, you can aggregate your result in a smaller time window chunks, and look into a time series across different dimensions. たとえば、すべてのコンピューターを対象に、1 時間ごとの平均 CPU 使用率を調べるには次のクエリを実行します。For example, you can perform the hourly average of CPU usage across all your computers as follows:

Type:Perf CounterName="% Processor Time" InstanceName="_Total" | measure avg(CounterValue) by Computer Interval 1HOUR

measure average interval

既定では、インタラクティブな多系列の折れ線グラフでこれらの結果が表示されます。By default these results will be displayed in a multi-series interactive line chart. このグラフは、系列の切り替え (y 軸のスケール変更を含む)、ズーム、ホバーリングに対応しています。This chart supports series toggling (with y-axis rescaling), zooming, and hovering. 必要に応じて、テーブルの表示オプションを使用して生データを表示することもできます。The table display option is still available for viewing the raw data if necessary.

他のフィールドでグループ化することも可能です。You can also group by other fields. この例では、特定の 1 台のコンピューターを対象に、% で始まるすべてのカウンターに着目し、各カウンターの 1 時間ごとの 70 パーセンタイルを調べています。In this example, I am looking at all the % counters for one specific computer, and I want to know what is the hourly 70 percentiles of every counter:

Type:Perf Computer=beefpatty4 CounterName=%* InstanceName=_Total | measure percentile70(CounterValue) by CounterName Interval 1HOUR

これらのクエリはパフォーマンス カウンターに限定されないことに注意してください。One thing to note is that these queries are not limited to performance counters. あらゆるメトリックに適用することができます。You can apply them to any metric. この例では、W3C IIS ログに着目しています。In this example, I’m looking at W3C IIS logs. ここで調べたいことは、個々の要求の処理にかかる最大所要時間です。5 分間隔で集計しています。I want to know what is the maximum time it takes over a 5-minute interval for processing each request:

Type:W3CIISLog | measure max(TimeTaken) by csMethod Interval 5MINUTES

1 つのクエリで複数の集計を使用するUse multiple aggregates in one query

Measure コマンドには複数の集計句を指定できます。You can specify multiple aggregate clauses in a measure command. 各集計句には個別に別名を付けることができます。Each one can be aliased independently. 別名を指定しなかった場合は、使用した集計関数が最終的なフィールド名になります。つまり、avg(CounterValue) を使用した場合は "avg(CounterValue)" という名前になります。If it is not given an alias the resulting field name will be the aggregate function that was used (i.e. "avg(CounterValue)" for avg(CounterValue)).

Type=WireData | measure avg(ReceivedBytes), avg(SentBytes) by Direction interval 1hour

OMS-multiaggregates1

別名を使用した場合の例:Here is another example:

* | measure countdistinct(Computer) as Computers, count() as TotalRecords by Type

次のステップNext steps

ログの検索の詳細については、次のトピックを参照してください。For additional information about log searches, see: