Trovare dati con ricerche nei log in Log AnalyticsFind data using log searches in Log Analytics

Nota

Questo articolo descrive le ricerche log con il linguaggio di query legacy di Log Analytics.This article describes log searches using the legacy query language in Log Analytics. Se l'area di lavoro è stata aggiornata al nuovo linguaggio di query di Log Analytics, è consigliabile vedere Informazioni sulle ricerche log in 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).

Un elemento fondamentale di Log Analytics è la funzionalità di ricerca nei log, che permette di combinare e correlare i dati del computer da più origini all'interno dell'ambiente.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. Anche le soluzioni sono basate sulla ricerca log, per offrire metriche specifiche per una particolare area problematica.Solutions are also powered by log search to bring you metrics pivoted around a particular problem area.

Nella pagina Search è possibile creare una query e quindi, durante la ricerca, filtrare i risultati usando controlli facet.On the Search page, you can create a query, and then when you search, you can filter the results by using facet controls. È anche possibile creare query avanzate per trasformare, filtrare e creare report sui risultati.You can also create advanced queries to transform, filter, and report on your results.

Le query di ricerca log più comuni sono visualizzate nella maggior parte delle pagine delle soluzioni.Common log search queries appear on most solution pages. In tutta la console OMS è possibile fare clic sui riquadri o analizzare altri elementi per visualizzarne i dettagli usando la funzionalità di ricerca nei log.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 questa esercitazione verranno esaminati alcuni esempi per analizzare tutti gli elementi di base quando si usa la ricerca log.In this tutorial, we'll walk through examples to cover all the basics when you use log search.

Si inizierà con esempi semplici e pratici, tali esempi verranno quindi compilati in modo da acquisire informazioni sui casi d'uso pratici relativi all'uso della sintassi per estrarre le informazioni desiderate dai dati.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.

Dopo aver acquisito familiarità con le tecniche di ricerca, vedere il riferimento alla ricerca nei log di Log Analytics.After you've familiar with search techniques, you can review the Log Analytics log search reference.

Usare filtri di baseUse basic filters

La prima parte di una query di ricerca, quella prima di un carattere di barra verticale "|", è sempre un filtro.The first thing to know is that the first part of a search query, before any "|" vertical pipe character, is always a filter. Può essere considerata come una clausola WHERE in TSQL, perché determina quale subset di dati estrarre dall'archivio dati di 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. Per la ricerca in un archivio dati è importante specificare le caratteristiche dei dati da estrarre, è quindi normale che una query inizi con la clausola 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.

I filtri più semplici che è possibile usare sono parole chiave, ad esempio 'error' o 'timeout' o un nome di computer.The most basic filters you can use are keywords, such as ‘error’ or ‘timeout’, or a computer name. Questi tipi di query semplici restituiscono in genere diverse forme di dati all'interno dello stesso set di risultati.These types of simple queries generally return diverse shapes of data within the same result set. Questo perché Log Analytics include diversi tipi di dati nel sistema.This is because Log Analytics has different types of data in the system.

  1. Nel portale di OMS, fare clic su Ricerca log.In the OMS portal, click Log Search.
    riquadro di ricercasearch tile
  2. Nel campo delle query digitare error e quindi fare clic su Search.In the query field, type error and then click Search.
    errore di ricercasearch error
    Ad esempio, la query per error nell'immagine seguente ha restituito 100.000 record Event (raccolti da Log Management), 18 record ConfigurationAlert (generati da Configuration Assessment) e 12 record ConfigurationChange (acquisiti da 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).
    risultati della ricercasearch results

Questi filtri non sono realmente tipi o classi di oggetti.These filters are not really object types/classes. Type è semplicemente un tag o una proprietà o una stringa/nome/categoria, collegata a una parte dei dati.Type is just a tag, or a property, or a string/name/category, that is attached to a piece of data. Alcuni documenti nel sistema vengono contrassegnati come Type:ConfigurationAlert e alcuni vengono contrassegnati come Type:Perf o Type:Event e così via.Some documents in the system are tagged as Type:ConfigurationAlert and some are tagged as Type:Perf, or Type:Event, and so on. In ogni risultato della ricerca, documento, record o voce vengono visualizzate tutte le proprietà non elaborate e i relativi valori per ciascuno di tali dati ed è possibile usare i nomi dei campi per specificare nel filtro quando si desidera recuperare solo i record il cui campo presenta il valore specificato.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 è in realtà solo un campo che contiene tutti i record, non è diverso dagli altri campi.Type is really just a field that all records have, it is not different from any other field. Ciò è stato stabilito in base al valore del campo Type.This was established based on the value of the Type field. Quel record avrà una forma o un formato diversi.That record will have a different shape or form. Tra l'altro, Type=Perf o Type=Event è anche la sintassi necessaria per eseguire una query su eventi o dati sulle prestazioni.Incidentally, Type=Perf, or Type=Event is also the syntax that you need to learn to query for performance data or events.

È possibile usare i due punti (:) o un segno di uguale (=) dopo il nome del campo e prima del valore.You can use either a colon (:) or an equal sign (=) after the field name and before the value. Type:Event and Type=Event hanno un significato equivalente ed è possibile scegliere lo stile preferito.Type:Event and Type=Event are equivalent in meaning, you can choose the style you prefer.

Se i record Type=Perf hanno un campo denominato "CounterName", è quindi possibile scrivere una query simile a 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".

Questa query fornirà solo i dati sulle prestazioni in cui il nome del contatore delle prestazioni è "% Processor Time".This will give you only the performance data where the performance counter name is "% Processor Time".

Per ricercare i dati sulle prestazioni del tempo del processoreTo search for processor time performance data

  • Nel campo della query di ricerca, digitare Type=Perf CounterName="% Processor Time"In the search query field, type Type=Perf CounterName="% Processor Time"

È inoltre possibile essere più specifici e usare InstanceName=_'Total' nella query, che rappresenta un contatore delle prestazioni di Windows.You can also be more specific and use InstanceName=_'Total' in the query, which is a Windows performance counter. È possibile anche selezionare un facet e un altro field:value.You can also select a facet and another field:value. Il filtro viene aggiunto automaticamente al filtro dell'utente nella barra di query.The filter is automatically added to your filter in the query bar. È possibile visualizzare il risultato nell'immagine seguente.You can see this in the following image. Viene indicato dove è possibile fare clic per aggiungere InstanceName:'_Total' alla query senza digitare nulla.It shows you where to click to add InstanceName:’_Total’ to the query without typing anything.

facet di ricerca

La query diventa Type=Perf CounterName="% Processor Time" InstanceName="_Total"Your query now becomes Type=Perf CounterName="% Processor Time" InstanceName="_Total"

In questo esempio non è necessario specificare Type=Perf per ottenere questo risultato.In this example, you don't have to specify Type=Perf to get to this result. Dato che i campi CounterName e InstanceName esistono solo per record di Type=Perf, la query è abbastanza specifica per restituire gli stessi risultati della query precedente, più lunga: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"

Questo perché tutti i filtri nella query vengono considerati come se fossero collegati dall'operatore AND .This is because all the filters in the query are evaluated as being in AND with each other. In effetti, quanti più campi vengono aggiunti ai criteri, tanto più i risultati saranno di numero inferiore ma più specifici e complessi.Effectively, the more fields you add to the criteria, you get less, more specific and refined results.

Ad esempio, la query Type=Event EventLog="Windows PowerShell" è identica a Type=Event AND EventLog="Windows PowerShell".For example, the query Type=Event EventLog="Windows PowerShell" is identical to Type=Event AND EventLog="Windows PowerShell". Restituisce tutti gli eventi a cui è stato effettuato l'accesso e che sono stati raccolti dal registro eventi di Windows PowerShell.It returns all events that were logged in and collected from the Windows PowerShell event log. Se si aggiunge un filtro più volte selezionando ripetutamente lo stesso facet, il problema è puramente descrittivo, potrebbe creare confusione nella barra di ricerca, ma restituisce comunque gli stessi risultati perché l'operatore AND implicito è sempre presente.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.

È possibile invertire facilmente l'operatore AND implicito usando un operatore NOT in modo esplicito.You can easily reverse the implicit AND operator by using a NOT operator explicitly. Ad esempio:For example:

Type:Event NOT(EventLog:"Windows PowerShell") o l'equivalente Type=Event EventLog!="Windows PowerShell" restituisce tutti gli eventi di tutti gli altri log DIVERSI dal log di Windows PowerShell.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.

In alternativa, è possibile usare altri operatori booleani, ad esempio 'OR'.Or, you can use other Boolean operator such as ‘OR’. La query seguente restituisce i record per cui EventLog è Application OR System.The following query returns records for which the EventLog is either Application OR System.

EventLog=Application OR EventLog=System

Usando la query precedente, si otterranno le voci per entrambi i log nello stesso set di risultati.Using the above query, you’ll get entries for both logs in the same result set.

Tuttavia, se si rimuove l'operatore OR lasciando l'operatore implicito AND, la query seguente non produrrà alcun risultato perché non è presente una voce del registro eventi che appartiene a entrambi i log.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. Ogni voce del registro eventi è stata scritta solo in uno dei due log.Each event log entry was written to only one of the two logs.

EventLog=Application EventLog=System

Usare filtri aggiuntiviUse additional filters

La query seguente restituisce le voci per 2 registri eventi per tutti i computer che hanno inviato dati.The following query returns entries for 2 event logs for all the computers that have sent data.

EventLog=Application OR EventLog=System

risultati della ricerca

Se si seleziona uno dei campi o filtri la query viene limitata a un computer specifico, escludendo tutti gli altri.Selecting one of the fields or filters will narrow the query to a specific computer, excluding all other ones. La query risultante sarà simile alla seguente.The resulting query would resemble the following.

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

Questa query equivale alla seguente, a causa dell'operatore AND implicito.Which is equivalent to the following, because of the implicit AND.

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

Ogni query viene considerata nell'ordine esplicito seguente.Each query is evaluated in the following explicit order. Notare le parentesi.Note the parenthesis.

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

Come il campo del registro eventi, è possibile recuperare i dati solo per un set di computer specifici aggiungendo OR.Just like the event log field, you can retrieve data only for a set of specific computers by adding OR. ad esempio:For example:

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

Analogamente ,la query seguente restituisce % CPU Time solo per i due computer selezionati.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)

Tipi di campoField types

Quando si creano filtri, è importante comprendere le differenze di utilizzo dei diversi tipi di campi restituiti nelle ricerche di log.When creating filters, you should understand the differences in working with different types of fields returned by log searches.

I campi ricercabili sono in blu nei risultati della ricerca.Searchable fields show in blue in search results. È possibile usare i campi ricercabili in condizioni di ricerca specifiche per il campo, ad esempio le seguenti: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"}

I campi ricercabili a testo libero vengono visualizzati in grigio nei risultati della ricerca.Free text searchable fields are shown in grey in search results. Non possono essere usati con le condizioni di ricerca specifiche per il campo come i campi ricercabili.They cannot be used with search conditions specific to the field like searchable fields. La ricerca viene eseguita qui solo quando si esegue una query su tutti i campi, ad esempio nei casi seguenti.They are only searched when performing a query across all fields such as the following.

"Error"
Type: Event "Exception"

Operatori booleaniBoolean operators

Con i campi di data/ora e numerici, è possibile cercare i valori usando maggiore di, minore di e minore o uguale a.With datetime and numeric fields, you can search for values using greater than, lesser than, and lesser than or equal. È possibile usare operatori semplici come >, < , >=, <= , != nella barra di ricerca della query.You can use simple operators such as >, < , >=, <= , != in the query search bar.

È possibile eseguire una query su un registro eventi specifico per uno specifico periodo di tempo.You can query a specific event log for a specific period of time. Ad esempio, le ultime 24 ore viene espresso con la seguente espressione mnemonica.For example, the last 24 hours is expressed with the following mnemonic expression.

EventLog=System TimeGenerated>NOW-24HOURS

Per eseguire la ricerca usando un operatore booleanoTo search using a boolean operator

  • Nel campo della query di ricerca, digitare EventLog=System TimeGenerated>NOW-24HOURSIn the search query field, type EventLog=System TimeGenerated>NOW-24HOURS
    ricerca con valore booleanosearch with boolean

Nonostante sia possibile controllare graficamente l'intervallo di tempo, e la maggior parte delle volte si desideri farlo, l'inclusione di un filtro temporale direttamente nella query presenta dei vantaggi.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. Ad esempio, è efficace con i dashboard, in cui è possibile sostituire l'intervallo di tempo per ogni riquadro, indipendentemente dal selettore temporale globale nella pagina del dashboard.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. Per altre informazioni, vedere l'argomento relativo alle questioni di tempo nel dashboard.For more information, see Time Matters in Dashboard.

Quando si filtra in base al tempo si ottengono risultati per l' intersezione dei due periodi di tempo: quello specificato nel portale di OMS (S1) e quello specificato nella query (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).

intersezione

Ciò significa che se non c'è intersezione tra i periodi di tempo, ad esempio se nel portale di OMS è stata scelta la settimana corrente e nella query è stata definita l'ultima settimana, non viene visualizzato alcun risultato.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.

Gli operatori di confronto usati per il campo TimeGenerated sono utili anche in altre situazioni.Comparison operators used for the TimeGenerated field are also useful in other situations. Ad esempio, con i campi numerici.For example, with numeric fields.

Ad esempio, poiché gli avvisi di Configuration Assessment presentano i seguenti valori di gravità:For example, given that Configuration Assessment’s alerts have the following severity values:

  • 0 = Informazioni0 = Information
  • 1 = Avviso1 = Warning
  • 2 = Avviso critico2 = Critical

È possibile eseguire una query per avvisi e avvisi critici ed escludere gli avvisi informativi con la query seguente:You can query for both warning and critical alerts and also exclude informational ones with the following query:

Type=ConfigurationAlert  Severity>=1

È inoltre possibile usare le query di intervallo.You can also use range queries. Ciò significa che è possibile specificare l'inizio e la fine dell'intervallo dei valori in una sequenza.This means that you can provide the beginning and end range of values in a sequence. Ad esempio, se si desidera conoscere gli eventi del registro eventi di Operations Manager dove EventID è maggiore o uguale a 2100 ma non maggiore di 2199, la query seguente restituirà tali eventi.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]

Nota

La sintassi dell'intervallo da usare è il separatore di due punti (:), field:value, e non il segno di uguale (=).The range syntax you must use is the colon (:) field:value separator and not the equal sign (=). Racchiudere le estremità inferiore e superiore dell'intervallo tra parentesi quadre e separarle con due punti (..).Enclose the lower and upper end of the range in square brackets and separate them with two periods (..).

Modificare i risultati della ricercaManipulate search results

Quando si esegue una ricerca di dati, è opportuno ridefinire la query di ricerca e avere un buon livello di controllo sui risultati.When you're searching for data, you'll want to refine your search query and have a good level of control over the results. Quando i risultati vengono recuperati, è possibile applicare comandi per trasformarli.When results are retrieved, you can apply commands to transform them.

I comandi nelle ricerche di Log Analytics devono seguire il carattere di barra verticale (|).Commands in Log Analytics searches must follow after the vertical pipe character (|). Un filtro deve essere sempre la prima parte di una stringa di query.A filter must always be the first part of a query string. Definisce il set di dati che si sta usando e quindi "invia" i risultati in un comando.It defines the data set you're working with and then "pipes" those results into a command. È quindi possibile usare il carattere di barra verticale per aggiungere altri comandi.You can then use the pipe to add additional commands. Il funzionamento è simile a quello della pipeline di Windows PowerShell.This is loosely similar to the Windows PowerShell pipeline.

Il linguaggio di ricerca di Log Analytics segue in genere lo stile e le linee guida di PowerShell per semplificare la curva di apprendimento dei professionisti IT grazie a tale somiglianza.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.

I comandi hanno nomi di verbi, pertanto è possibile stabilire facilmente quali azioni eseguono.Commands have names of verbs so you can easily tell what they do.

OrdinaSort

Il comando sort consente di definire l'ordinamento in base a uno o più campi.The sort command allows you to define the sorting order by one or multiple fields. Anche se non viene usato, per impostazione predefinita, viene applicato un ordine decrescente di tempo.Even if you don’t use it, by default, a time descending order is enforced. I risultati più recenti sono sempre nella parte superiore dei risultati della ricerca.The most recent results are always at the top of search results. Ciò significa che quando si esegue una ricerca con Type=Event EventID=1234, in realtà la query che viene eseguita automaticamente è: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**

Questo perché si tratta del tipo di esperienza con cui si ha familiarità nei log,That's because it is the type of experience you are familiar with in logs. ad esempio, nel Visualizzatore eventi di Windows.For example, in the Windows Event Viewer.

È possibile usare il comando Sort per modificare il modo in cui vengono restituiti i risultati.You can use Sort to change the way results are returned. Negli esempi riportati di seguito viene illustrato il funzionamento di questo comando.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

Gli esempi semplici sopra riportati illustrano il funzionamento dei comandi: i comandi cambiano la forma dei risultati restituiti dal filtro.The simple examples above show you how commands work--they change the shape of the results that the filter returned.

Limit e topLimit and top

Un altro comando meno noto è LIMIT.Another less known command is LIMIT. Limit è un verbo di tipo PowerShell.Limit is a PowerShell-like verb. Il comando Limit è, dal punto di vista funzionale, identico al comando TOP.Limit is functionally identical to the TOP command. Le query seguenti restituiscono gli stessi risultati.The following queries return the same results.

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

Per eseguire la ricerca usando il comando topTo search using top

  • Nel campo della query di ricerca, digitare Type=Event EventID=600 | Top 1 In the search query field, type Type=Event EventID=600 | Top 1
    top di ricercasearch top

Nell'immagine precedente, sono presenti 358.000 record con EventID=600.In the image above, there are 358 thousand records with EventID=600. I campi, i facet e i filtri a sinistra mostrano sempre informazioni sui risultati restituiti dalla parte filtro della query, ovvero la parte prima di qualsiasi carattere di barra verticale.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. Il riquadro Risultati restituisce il risultato più recente, in quanto il comando di esempio ha dato una forma e trasformato i risultati.The Results pane only returns the most recent 1 result, because the example command shaped and transformed the results.

SelezionareSelect

Il comando SELECT si comporta come Select-Object in PowerShell.The SELECT command behaves like Select-Object in PowerShell. Restituisce i risultati filtrati che non presentano tutte le relative proprietà originali.It returns filtered results that do not have all of their original properties. Al contrario, seleziona solo le proprietà specificate.Instead, it selects only the properties that you specify.

Per eseguire una ricerca usando il comando selectTo run a search using the select command

  1. Nella ricerca, digitare Type=Event e quindi fare clic su Search.In Search, type Type=Event and then click Search.
  2. Fare clic su + show more in uno dei risultati per visualizzare tutte le proprietà dei risultati.Click + show more in one of the results to view all the properties that the results have.
  3. Selezionare alcune proprietà in modo esplicito, la query viene modificata in Type=Event | Select Computer,EventID,RenderedDescription.Select some of those explicitly, and the query changes to Type=Event | Select Computer,EventID,RenderedDescription.
    selezione della ricercasearch select

Si tratta di comando particolarmente utile quando si vuole controllare l'output di ricerca e scegliere solo le parti di dati davvero importanti per l'esplorazione, che spesso non corrispondono al record completo.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. Il comando è utile anche quando record di tipo diverso hanno alcune proprietà comuni, ma non tutte.This is also useful when records of different types have some common properties, but not all of their properties are common. È possibile generare un output simile a una tabella o che funziona bene quando esportato in un file CSV e quindi modificato in 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.

Usare il comando measureUse the measure command

MEASURE è uno dei comandi più versatili nelle ricerche di Log Analytics.MEASURE is one of the most versatile commands in Log Analytics searches. Consente di applicare funzioni statistiche ai dati e di aggregare i risultati raggruppati in base a un determinato campo.It allows you to apply statistical functions to your data and aggregate results grouped by a given field. Esistono più funzioni statistiche supportate dal comando Measure.There are multiple statistical functions that Measure supports.

Measure count()Measure count()

La prima funzione statistica da usare e una delle più semplici da comprendere è la funzione count() .The first statistical function to work with, and one of the simplest to understand is the count() function.

Nei risultati di una query di ricerca, ad esempio Type=Event, i filtri, anche denominati facet, vengono visualizzati sul lato sinistro dei risultati della ricerca.Results from any search query such as Type=Event, show filters also called facets on the left side of search results. I filtri visualizzano una distribuzione di valori in base a un determinato campo, per i risultati della ricerca eseguita.The filters show a distribution of values by a given field for the results in the search executed.

measure count di ricerca

Ad esempio, nell'immagine precedente viene visualizzato il campo Computer. Tale campo indica che in quasi 739.000 eventi nei risultati sono presenti 68 valori univoci e distinti per il campo Computer in questi record.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. Nel riquadro vengono visualizzati solo i primi 5 valori, che corrispondono ai 5 valori più comuni scritti nel campo Computer, ordinati in base al numero di documenti che contengono quel valore specifico in quel campo.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. Nell'immagine è possibile vedere che, di quasi 369.000 eventi, 90.000 provengono dal computer OpsInsights04.contoso.com, 83.000 dal computer DB03.contoso.com e così via.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.

Poiché nel riquadro vengono visualizzati solo i primi 5 valori, in che modo è possibile visualizzare tutti i valori?What if you want to see all values, since the tile only shows only the top 5?

Per visualizzare tutti i valori è possibile usare il comando measure con la funzione count().That’s what the measure command can do with the count() function. Per questa funzione non viene usato alcun parametro.This function doesn't use any parameters. È sufficiente specificare il campo in base al quale si desidera eseguire il raggruppamento: in questo caso il campo 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 di ricerca

Tuttavia, Computer è semplicemente un campo usato in tutti i dati: non è coinvolto alcun database relazionale e non esiste alcun oggetto Computer separato altrove.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. Solo i valori presenti nei dati possono descrivere quale entità ha generato i dati e altre caratteristiche e aspetti dei dati, da qui il termine facet.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. Tuttavia, è possibile eseguire il raggruppamento anche in base ad altri campi.However, you can just as well group by other fields. Poiché i risultati originali di quasi 739.000 eventi inviati al comando measure presentano anche un campo denominato EventID, è possibile applicare la stessa tecnica per eseguire il raggruppamento in base a tale campo e ottenere un conteggio di eventi per 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

Se non si è interessati al conteggio record effettivo che contiene un valore specifico, ma si desidera invece solo un elenco di valori, è possibile aggiungere un comando Select alla fine e selezionare la prima colonna: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

Quindi, è possibile ottenere risultati più complessi e ordinare in precedenza i risultati nella query o semplicemente selezionare le colonne nella griglia.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

Per eseguire la ricerca con measure countTo search using measure count

  • Nel campo della query di ricerca, digitare Type=Event | Measure count() by EventIDIn the search query field, type Type=Event | Measure count() by EventID
  • Aggiungere | Select EventID alla fine della query.Append | Select EventID to the end of the query.
  • Infine, aggiungere | Sort EventID asc alla fine della query.Finally, append | Sort EventID asc to the end of the query.

Esistono due aspetti importanti da notare e mettere in evidenza:There are a couple important points to notice and emphasize:

In primo luogo, i risultati visualizzati non sono più i risultati originali non elaborati.First, the results you see are not the original raw results anymore. Sono invece risultati aggregati, essenzialmente gruppi di risultati.Instead, they are aggregated results – essentially groups of results. Questo non è un problema, ma è importante sapere che si interagisce con una forma di dati che è molto diversa dalla forma originale non elaborata che viene creata in tempo reale come risultato della funzione di statistica o di aggregazione.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.

In secondo luogo, Measure count restituisce attualmente solo i primi 100 risultati distinti.Second, Measure count currently returns only the top 100 distinct results. Questo limite non si applica alle altre funzioni statistiche.This limit does not apply to the other statistical functions. Pertanto, in genere è necessario usare un filtro più preciso per cercare elementi specifici, prima di applicare measure count().So, you'll usually need to use a more precise filter first to search for specific items before you apply measure count().

Usare le funzioni max e min con il comando measureUse the max and min functions with the measure command

Esistono vari scenari in cui è utile usare Measure Max() e Measure Min().There are various scenarios where Measure Max() and Measure Min() are useful. Tuttavia, poiché ciascuna funzione è opposta all'altra, verrà illustrata la funzione Max() e l'utente sperimenterà autonomamente la funzione Min().However, since each function is opposite of each other, we'll illustrate Max() and you can experiment with Min() on your own.

Se si esegue una query per gli eventi di sicurezza, tali eventi hanno una proprietà Livello che può variare.If you query for security events, they have a Level property that can vary. Ad esempio:For example:

Type=SecurityEvent

measure count start di ricerca

Se si desidera visualizzare il valore massimo per tutti gli eventi di sicurezza di un determinato computer comune, quindi raggrupparli per campo, è possibile usareIf 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 computer di ricerca

Mostrerà che per i computer che avevano record Livello, la maggior parte ha almeno il livello 8, mentre molti avevano un livello 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 time generated computer di ricerca

Questa funzione è adatta ad essere usata con i numeri, ma può essere usata anche con i campi di data/ora.This function works well with numbers, but it also works with DateTime fields. È utile per verificare l'ultima data/ora o la data/ora più recente relativa a tutti i dati indicizzati per ciascun computer.It is useful to check for the last or most recent time stamp for any piece of data indexed for each computer. Ad esempio: quando è stato segnalato l'evento di sicurezza più recente?For example: When was the most recent security event reported for each machine?

Type=ConfigurationChange | Measure Max(TimeGenerated) by Computer

Usare la funzione avg con il comando measureUse the avg function with the measure command

La funzione statistica Avg() usata con il comando measure consente di calcolare il valore medio per alcuni campi e di raggruppare i risultati in base allo stesso campo o ad un campo diverso.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. Questa funzione è utile in diversi casi, ad esempio con i dati sulle prestazioni.This is useful in a variety of cases, such as performance data.

Si inizierà con i dati sulle prestazioni.We'll start with performance data. Si noti che OMS attualmente raccoglie i contatori delle prestazioni sia per i computer Windows che Linux.Note that OMS currently collects performance counters for both Windows and Linux machines.

Per la ricerca di tutti i dati sulle prestazioni, la query più semplice è:To search for all performance data, the most basic query is:

Type=Perf

avg start di ricerca

La prima cosa che si noterà è che Log Analytics mostra tre prospettive: Elenco, che mostra i record effettivi dietro i grafici; Tabella, che mostra una vista tabulare dei dati del contatore delle prestazioni; Metriche, che mostra i grafici per i contatori delle prestazioni.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.

Nell'immagine precedente, sono presenti due set di campi contrassegnati che indicano quanto segue:In the image above, there are two sets of fields marked that indicate the following:

  • Il primo set identifica il nome del contatore delle prestazioni di Windows, il nome dell'oggetto e il nome dell'istanza nel filtro della query.The first set identifies Windows Performance Counter Name, Object Name, and Instance Name in the query filter. Questi sono i campi che probabilmente verranno usati in genere come facet/filtriThese are the fields you probably will most commonly use as facets/filters
  • CounterValue è il valore effettivo del contatore.CounterValue is the actual value of the counter. In questo esempio, il valore è 75.In this example, the value is 75.
  • TimeGenerated è 12:51, nel formato 24 ore.TimeGenerated is 12:51, in 24-hour time format.

Questa è una visualizzazione delle metriche in un grafico.Here's a view of the metrics in a graph.

avg start di ricerca

Dopo aver acquisito informazioni sulla forma del record Perf e su altre tecniche di ricerca, è possibile usare il comando measure Avg() per aggregare questo tipo di dati numerici.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.

Un semplice esempio viene riportato di seguito:Here's a simple example:

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

avg samplevalue di ricerca

In questo esempio, viene selezionato il contatore delle prestazioni CPU Total Time e la media viene calcolata in base a Computer.In this example, you select the CPU Total Time performance counter and average by Computer. Per limitare i risultati alle ultime sei ore, è possibile usare il controllo del filtro temporale o specificarlo nella query come indicato di seguito: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

Per eseguire la ricerca tramite la funzione avg con il comando measureTo search using the avg function with the measure command

  • Nella casella della query di ricerca, digitare Type=Perf ObjectName:Processor InstanceName:_Total CounterName:"% Processor Time" TimeGenerated>NOW-6HOURS | Measure Avg(CounterValue) by ComputerIn the Search query box, type Type=Perf ObjectName:Processor InstanceName:_Total CounterName:"% Processor Time" TimeGenerated>NOW-6HOURS | Measure Avg(CounterValue) by Computer.

È possibile aggregare e correlare i dati tra computer.You can aggregate and correlate data across computers. Ad esempio, si supponga di disporre di un set di host in un certo tipo di farm in cui ogni nodo è uguale a qualsiasi altro nodo, tutti i nodi eseguono lo stesso tipo di lavoro e il carico è approssimativamente bilanciato.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. È possibile ottenere tutti i contatori contemporaneamente con la query seguente e ottenere le medie per l'intera farm.You could get their counters all in one go with the following query and get averages for the entire farm. È possibile iniziare scegliendo i computer con l'esempio seguente:You can start by choosing the computers with the following example:

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

Ora che si dispone dei computer, è possibile selezionare due indicatori delle prestazioni chiave (KPI): % CPU Usage e % Free Disk Space.Now that you have the computers, you also only want to select two key performance indicators (KPIs): % CPU Usage and % Free Disk Space. Quindi, quella parte della query diventa: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

Ora è possibile aggiungere computer e contatori con l'esempio seguente: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")

Poiché è stata effettuata una selezione molto specifica, il comando measure Avg() può restituire la media non in base al computer ma, all'interno della farm, eseguendo il raggruppamento per 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. ad esempio: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

Ciò consente una visualizzazione utile e compatta di un paio di indicatori di prestazioni chiave dell'ambiente.This gives you a useful compact view of a couple of your environment's KPIs.

avg grouping di ricerca

È possibile usare facilmente la query di ricerca in un dashboard.You can easily use the search query in a dashboard. Ad esempio, è possibile salvare la query di ricerca e creare un dashboard chiamato Web Farm KPIs.For example, you could save the search query and create a dashboard from it named Web Farm KPIs. Per altre informazioni sull'uso dei dashboard, vedere l'articolo relativo alla creazione di un dashboard personalizzato in Log Analytics.To learn more about using dashboards, see Create a custom dashboard in Log Analytics.

avg dashboard di ricerca

Usare la funzione sum con il comando measureUse the sum function with the measure command

La funzione sum è simile ad altre funzioni del comando measure.The sum function is similar to other functions of the measure command. È possibile vedere un esempio su come usare la funzione sum nell'argomento relativo alla ricerca di Log W3C IIS in Microsoft Azure Operational Insights.You can see an example about how to use the sum function at W3C IIS Logs Search in Microsoft Azure Operational Insights.

È possibile usare Max() e Min() con numeri, intervalli di data/ora e stringhe di testo.You can use Max() and Min() with numbers, date times and text strings. Le stringhe di testo sono ordinate in ordine alfabetico e vengono visualizzate la prima e l'ultima.With text strings, they are sorted alphabetically and you get first and last.

Tuttavia, è possibile usare Sum() con elementi diversi dai campi numerici.However, you cannot use Sum() with anything other than numerical fields. Questo vale anche per Avg().This also applies to Avg().

Usare la funzione percentile con il comando measureUse the percentile function with the measure command

La funzione percentile è simile a Avg() e Sum() perché può essere usata unicamente per i campi numerici.The percentile function is similar to Avg() and Sum() in that you can only use it for numerical fields. In un campo numerico è possibile usare qualsiasi percentile compreso tra 1 e 99.You can use any percentile between 1 to 99 on a numeric field. È possibile usare sia il comandopercentile che il comando pct.You can also use both percentile and pct commands. Di seguito sono riportati alcuni esempi: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

Usare il comando whereUse the where command

Il comando where funziona come un filtro, ma può essere applicato nella pipeline per filtrare ulteriormente i risultati aggregati prodotti da un comando Measure, differentemente dai risultati non elaborati che vengono filtrati all'inizio di una query.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.

ad esempio:For example:

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

È possibile aggiungere un altro carattere di barra verticale "|" e il comando where per visualizzare solo i computer il cui utilizzo medio della CPU è superiore all'80%, con l'esempio seguente: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

Se si ha familiarità con Microsoft System Center - Operations Manager, è possibile considerare il comando where in termini di Management Pack.If you're familiar with Microsoft System Center - Operations Manager, you can think of the where command in management pack terms. Se l'esempio fosse una regola, la prima parte della query sarebbe l'origine dati e il comando where sarebbe il rilevamento della condizione.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.

È possibile usare la query come un riquadro in My Dashboard, come un monitoraggio di ordinamenti, per verificare se sono presenti CPU di computer sovrautilizzate.You can use the query as a tile in My Dashboard, as a monitor of sorts, to see when computer CPUs are over-utilized. Per altre informazioni sui dashboard, vedere l'articolo relativo alla creazione di un dashboard personalizzato in Log Analytics.To learn more about dashboards, see Create a custom dashboard in Log Analytics. È possibile creare e usare i dashboard anche tramite l'app per dispositivi mobili.You can also create and use dashboards using the mobile app. Per altre informazioni, vedere la pagina relativa all'app OMS per dispositivi mobili .For more information, see OMS Mobile App . Nei due riquadri in basso dell'immagine seguente, il monitoraggio viene visualizzato come un elenco e come un numero.In the bottom two tiles of the following image, you can see the monitor displayed a list and as a number. Essenzialmente, è auspicabile che il numero sia sempre zero e l'elenco sia sempre vuoto.Essentially, you always want the number to be zero and the list to be empty. In caso contrario, indica una condizione di avviso.Otherwise, it indicates an alert condition. Se necessario, è possibile usarlo per individuare quali computer sono sotto pressione.If needed, you can use it to take a look at which machines are under pressure.

dashboard mobile

Usare l'operatore INUse the in operator

Gli operatori IN e NOT IN permettono di usare le sottoricerche, ovvero ricerche che includono un'altra ricerca come argomento.The IN operator, along with NOT IN allows you to use subsearches, which are searches that include another search as an argument. Sono racchiuse tra parentesi graffe {} all'interno di un'altra ricerca primaria o esterna.They are contained in braces {} within another primary or outer search. Il risultato di una sottoricerca, costituito spesso da un elenco di risultati distinti, viene quindi usato come argomento nella ricerca primaria.The result of a subsearch, often a list of distinct results, is then used as an argument in its primary search.

È possibile usare le sottoricerche per la corrispondenza con subset di dati che non è possibile descrivere direttamente in un'espressione di ricerca, ma che possono essere generati da una ricerca.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. Ad esempio, se si vuole usare una sola ricerca per trovare tutti gli eventi da computer privi di aggiornamenti della sicurezza, è necessario progettare prima di tutto una sottoricerca che identifichi i computer privi di aggiornamenti della sicurezza per poi trovare gli eventi appartenenti a tali host.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.

Per specificare i computer attualmente privi dei necessari aggiornamenti della sicurezza è possibile usare la query seguente: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

esempio di ricerca con IN

Dopo aver ottenuto l'elenco, la ricerca può essere usata come ricerca interna per inserire l'elenco dei computer in una ricerca esterna, o primaria, che cerca gli eventi relativi a tali computer.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. A questo scopo, racchiudere tra parentesi la ricerca interna e inserire i risultati come possibili valori per un filtro o un campo nella ricerca esterna usando l'operatore 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. La query sarà simile alla seguente:The query would resemble:

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

esempio di ricerca con IN

Si noti anche il filtro temporale usato nella ricerca interna perché System Update Assessment acquisisce uno snapshot di tutti i computer ogni 24 ore.Also notice the time filter used in the inner search because the System Update Assessment takes a snapshot of all computers every 24 hours. È possibile rendere più leggera e precisa la query interna cercando soltanto un giorno.You can make the inner query more lightweight and precise by only searching for a day. La ricerca esterna usa invece la selezione della data/ora nell'interfaccia utente e recupera gli eventi degli ultimi sette giorni.The outer search instead uses the time selection in the user interface, retrieving events from the last 7 days. Per altre informazioni sugli operatori temporali, vedere la sezione Operatori booleani .See Boolean operators for more information about time operators.

Dato che i risultati della ricerca interna vengono usati solo come valore filtro per quella esterna, è comunque possibile applicare i comandi alla ricerca esterna.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. Ad esempio, è ancora possibile raggruppare gli eventi mostrati sopra con un altro comando 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

esempio di ricerca con IN

In genere, la query interna deve essere eseguita rapidamente perché Log Analytics prevede timeout sul lato servizio e anche per ottenere una quantità ridotta di risultati.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. Se la query interna restituisce più risultati, l'elenco dei risultati viene troncato e questo può portare a risultati non corretti restituiti dalla ricerca esterna.If the inner query returns more results, the result list gets truncated, which could potentially cause the outer search to return incorrect results.

La ricerca interna attualmente deve fornire risultati aggregati .Another rule is that the inner search currently needs to provide aggregated results. In altre parole deve contenere un comando measure , perché attualmente non è possibile inserire risultati non elaborati in una ricerca esterna.In other words, it must contain a measure command; you cannot currently feed raw results into an outer search.

Può essere presente un solo operatore IN e deve essere l'ultimo filtro nella query.Also, there can be only one IN operator and it must be the last filter in the query. Non è possibile usare gli operatori OR con più operatori IN. Questo di fatto impedisce l'esecuzione di più sottoricerche. Tenere quindi presente che per ogni ricerca esterna può essere presente una sola ricerca interna o sottoricerca.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.

Nonostante queste limitazioni, l'operatore IN permette di eseguire molti tipi di ricerche correlate e consente di definire qualcosa di simile ai gruppi, ad esempio computer, utenti, file o qualunque cosa contengano i campi dei dati.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. Di seguito sono riportati altri esempi:Here are more examples:

Tutti gli aggiornamenti mancanti nei computer in cui è disabilitato l'aggiornamento automaticoAll 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

Tutti gli eventi di errore dai computer che eseguono SQL Server, in cui viene eseguito SQL AssessmentAll error events from computers running SQL Server (=where SQL Assessment has run)

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

Tutti gli eventi di sicurezza dai computer che sono controller di dominio, in cui viene eseguito AD AssessmentAll security events from computers that are Domain Controllers (=where AD Assessment has run)

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

Quali altri account hanno eseguito l'accesso agli stessi computer a cui si è connesso l'account 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

Usare il comando distinctUse the distinct command

Come suggerisce il nome, questo comando restituisce un elenco di valori distinct per un campo.As the name suggests, this command provides a list of distinct values for a field. È estremamente semplice ma molto utile.It's surprisingly simple but quite useful. È possibile ottenere lo stesso risultato con il comando measure count(), come illustrato di seguito.The same could be achieved with measure count() command as well, as shown below.

Type=Event | Measure count() by Computer

esempio di comando di ricerca DISTINCT

Tuttavia, per ottenere semplicemente un elenco di valori distinct e non il conteggio dei documenti che li contengono, il comando distinct fornisce un output più chiaro e leggibile con una sintassi più breve, come illustrato di seguito.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

esempio di comando di ricerca DISTINCT

Usare la funzione countdistinct con il comando measureUse the countdistinct function with the measure command

La funzione countdistinct conta il numero di valori distinct in ogni gruppo.The countdistinct function counts the number of distinct values within each group. Può essere usata, ad esempio, per contare il numero di computer univoci che creano report per ogni tipo:For example, it could be used to count the number of unique computers reporting for each Type:

* | measure countdistinct(Computer) by Type

OMS-countdistinct

Usare il comando measure intervalUse the measure interval command

La raccolta di dati sulle prestazioni quasi in tempo reale permette di raccogliere e visualizzare qualsiasi contatore delle prestazioni in Log Analytics.With near real-time performance data collection, you can collect and visualize any performance counter in Log Analytics. La semplice query Type:Perf restituisce migliaia di grafici delle metriche basati sul numero di contatori e server nell'ambiente di 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. L'aggregazione delle metriche su richiesta permette di esaminare tutte le metriche nell'ambiente a livello generale e di approfondire i dati più granulari in base alle esigenze.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.

Si supponga di voler conoscere l'utilizzo medio della CPU in tutti i computer.Let’s say that you want to know what is the average CPU across all your computers. Esaminare l'utilizzo medio della CPU di ogni computer potrebbe non essere utile perché i risultati potrebbero essere livellati. Per ottenere informazioni più dettagliate, è possibile aggregare il risultato in blocchi di intervalli di tempo più piccoli ed esaminare una serie temporale da varie dimensioni.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. Ad esempio, per calcolare la media oraria di utilizzo della CPU tra tutti i computer, è possibile procedere come indicato di seguito: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

misura intervallo medio

Per impostazione predefinita, questi risultati vengono visualizzati in un grafico a linee interattivo a più serie.By default these results will be displayed in a multi-series interactive line chart. Il grafico supporta l'attivazione e la disattivazione delle serie con ridimensionamento dell'asse Y, lo zoom e il passaggio del puntatore.This chart supports series toggling (with y-axis rescaling), zooming, and hovering. L'opzione di visualizzazione tabella è ancora disponibile per visualizzare i dati non elaborati, se necessario.The table display option is still available for viewing the raw data if necessary.

È anche possibile raggruppare in base ad altri campi.You can also group by other fields. In questo esempio vengono esaminati tutti i contatori % per un computer specifico e si vuole conoscere il percentile 70 orario di ogni contatore: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

Un aspetto da sottolineare è che queste query non sono limitate ai contatori delle prestazioni.One thing to note is that these queries are not limited to performance counters. Possono essere applicate a qualsiasi metrica.You can apply them to any metric. In questo esempio si esaminano i log di IIS W3C.In this example, I’m looking at W3C IIS logs. Si vuole conoscere il tempo massimo impiegato in un intervallo di cinque minuti per l'elaborazione di ogni richiesta: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

Usare più aggregazioni in una queryUse multiple aggregates in one query

È possibile specificare più clausole di aggregazione in un comando measure.You can specify multiple aggregate clauses in a measure command. Ognuna di esse può essere associata a un alias in modo indipendente.Each one can be aliased independently. Se non viene associata a un alias, il nome del campo risultante sarà la funzione di aggregazione che è stata usata, ad esempio "avg(CounterValue)" per 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

Di seguito è riportato un altro esempio:Here is another example:

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

Passaggi successiviNext steps

Per altre informazioni sulle ricerche nei log:For additional information about log searches, see: