

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Logs Insights QL 入門：查詢教學課程
<a name="CWL_AnalyzeLogData_Tutorials"></a>

下列各節包含範例查詢教學課程，協助您開始使用 Logs Insights QL。

**Topics**
+ [教學課程：執行和修改範例查詢](CWL_AnalyzeLogData_RunSampleQuery.md)
+ [教學課程：使用彙總函數執行查詢](CWL_AnalyzeLogData_AggregationQuery.md)
+ [教學課程：執行查詢以產生依日誌欄位分組的視覺效果](CWL_AnalyzeLogData_VisualizationFieldQuery.md)
+ [教學課程：執行查詢來產生時間序列視覺化](CWL_AnalyzeLogData_VisualizationQuery.md)

# 教學課程：執行和修改範例查詢
<a name="CWL_AnalyzeLogData_RunSampleQuery"></a>

下列教學課程協助您開始使用 CloudWatch Logs Insights。您可以在 Logs Insights QL 中執行範例查詢，然後查看如何修改並重新執行。

若要執行查詢，您必須已經有日誌存放在 CloudWatch Logs。如果您已經在使用 CloudWatch Logs，且已設定日誌群組和日誌串流，那就可以開始。如果您使用 AWS CloudTrail、Amazon Route 53 或 Amazon VPC 等服務，而且已設定將來自這些服務的日誌傳到 CloudWatch Logs，則您也可能已經有日誌。如需有關將日誌傳送至 CloudWatch Logs 的詳細資訊，請參閱[開始使用 CloudWatch Logs](CWL_GettingStarted.md)。

CloudWatch Logs Insights 中的查詢會從日誌事件傳回一組欄位，或在日誌事件上執行的數學加總或其他運算的結果。本教學課程示範的查詢會傳回日誌事件清單。

## 執行範例查詢
<a name="CWL_AnalyzeLogData_RunQuerySample"></a>

**執行 CloudWatch Logs Insights 範例查詢**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Logs Insights** (日誌洞察)。

   在 **Logs Insights** 頁面上，查詢編輯器包含 Logs Insights QL 中的預設查詢，該查詢會傳回 20 個最新的日誌事件。

1. 在 **Select log group(s)** (選取日誌群組) 下拉式選單中，選擇一個或多個要查詢的日誌群組。

    如果這是 CloudWatch 跨帳戶觀察功能中的監控帳戶，您可以在來源帳戶和監控帳戶中選取日誌群組。單一查詢可以一次查詢來自不同帳戶的日誌。

   您可以依日誌群組名稱、帳戶 ID 或帳戶標籤來篩選日誌群組。

   當您在標準日誌類別中選取日誌群組時，CloudWatch Logs Insights 會自動偵測群組中的資料欄位。若要查看探索的欄位，請選取頁面右上方附近的 **Fields** (欄位) 選單。
**注意**  
僅標準日誌類別中的日誌群組支援探索的欄位。如需日誌類別的詳細資訊，請參閱 [日誌類別](CloudWatch_Logs_Log_Classes.md)。

1. (選用) 使用時間間隔選擇器，選取您要查詢的時間段。

   您可以選擇 5 分鐘到 30 分鐘的間隔；1 小時、3 小時和 12 小時的間隔；或是自訂的時間範圍。

1. 選擇 **Run** (執行) 以檢視結果。

   在本教學中，結果包括 20 筆最近新增的日誌事件。

   CloudWatch Logs 會顯示日誌群組中一段時間內的日誌事件長條圖。長條圖不僅會顯示表格中的事件，還會顯示日誌群組中符合您的查詢和時間範圍的事件分佈。

1. 若要查看傳回日誌事件的所有欄位，請選擇編號事件左側的三角形下拉圖示。

## 修改範例查詢
<a name="CWL_AnalyzeLogData_ModifySampleQuery"></a>

在此教學課程中，您將修改範例查詢來顯示 50 個最新的日誌事件。

如果您尚未執行上一個教學課程，請現在這樣做。此教學課程會從上一個教學課程的結尾處開始。

**注意**  
CloudWatch Logs Insights 隨附的一些範例查詢使用 `head` 或 `tail` 命令，而不是 `limit`。這些命令已被取代，並換成 `limit`。在您編寫的所有查詢中使用 `limit`，而不是 `head` 或 `tail`。

**修改 CloudWatch Logs Insights 範例查詢**

1. 在查詢編輯器中，將 **20** 變更為 **50**，然後選擇 **Run (執行)**。

   新查詢的結果隨即出現。假設日誌群組中有足夠的資料在預設時間範圍內，則現在會列出 50 個日誌事件。

1. (選用) 您可以儲存已建立的查詢。若要儲存此查詢，請選擇 **Save** (儲存)。如需詳細資訊，請參閱[儲存並重新執行 CloudWatch Logs Insights 查詢](CWL_Insights-Saving-Queries.md)。

## 將篩選條件命令新增到範例查詢
<a name="CWL_AnalyzeLogData_FilterQuery"></a>

本教學課程說明如何在查詢編輯器對查詢進行更強大的變更。在此教學課程中，您將根據已擷取的日誌事件中的欄位，以篩選前一個查詢的結果。

如果您尚未執行先前的教學課程，請現在這樣做。此教學課程會從上一個教學課程的結尾處開始。

**將篩選條件命令新增到前一個查詢**

1. 決定要篩選的欄位。若要查看 CloudWatch Logs 過去 15 分鐘內在選定日誌群組包含的日誌事件中最常偵測到的欄位，以及每個欄位出現在這些日誌事件中的百分比，請在頁面右側選取 **Fields** (欄位)。

   若要查看特定日誌事件中包含的欄位，請選擇該列左側的圖示。

   **awsRegion** 欄位可能出現在您的日誌事件中，這取決於日誌中有哪些事件。在本教學剩下的部分，我們將使用 **awsRegion** 作為篩選條件欄位，但如果沒有該欄位，您可以使用不同的欄位。

1. 在查詢編輯器方塊中，將游標移到 **50** 後面，然後按 Enter。

1. 在新的一行上，首先輸入 \$1 (垂直線字元) 和空格。CloudWatch Logs Insights 查詢中的命令必須以垂直線字元隔開。

1. 輸入 **filter awsRegion="us-east-1"**。

1. 選擇**執行**。

   查詢會再次執行，現在會顯示符合新篩選條件的 50 個最新結果。

   如果您篩選不同的欄位，且得到錯誤結果，則可能需要逸出欄位名稱。如果欄位名稱包含非英數字元，您必須在欄位名稱前後加上反引號字元 (`) (例如，**`error-code`="102"**)。

   您必須將反引號字元用於包含非英數字元的欄位名稱 ，而不是用於值。值一律包含在引號 (") 中。

Logs Insights QL 包含強大的查詢功能，包括對規則表達式、數學和統計操作的數個命令和支援。如需詳細資訊，請參閱[CloudWatch Logs Insights 語言查詢語法](CWL_QuerySyntax.md)。

# 教學課程：使用彙總函數執行查詢
<a name="CWL_AnalyzeLogData_AggregationQuery"></a>

您可以在 `stats` 命令中使用彙總函式，也可以作為其他函式的引數。在本教學中，您會了解如何執行查詢命令，以計算包含指定欄位的日誌事件數量。查詢命令會回傳按照指定欄位的一個或多個值分組的總數。如需有關彙總函式的詳細資訊，請參閱《*Amazon CloudWatch Logs 使用者指南*》中的[支援的運算和函式](https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html#CWL_QuerySyntax-operations-functions)。

**使用彙總函式執行查詢**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Logs Insights** (日誌洞察)。

1. 確認已選取 **Logs Insights QL** 標籤。

1. 在 **Select log group(s)** (選取日誌群組) 下拉式選單中，選擇一個或多個要查詢的日誌群組。

    如果這是 CloudWatch 跨帳戶觀察功能中的監控帳戶，您可以在來源帳戶和監控帳戶中選取日誌群組。單一查詢可以一次查詢來自不同帳戶的日誌。

   您可以依日誌群組名稱、帳戶 ID 或帳戶標籤來篩選日誌群組。

   當您選取日誌群組時，如果日誌群組是標準類別日誌群組，CloudWatch Logs Insights 會自動偵測日誌群組中的資料欄位。若要查看探索的欄位，請選取頁面右上方附近的 **Fields** (欄位) 選單。

1. 刪除查詢編輯器中的預設查詢，然後輸入下列命令：

   ```
   stats count(*) by fieldName
   ```

1. 將 *fieldName* 替換為 **Fields** (欄位) 選單中探索到的選單欄位。

   **Fields** (欄位) 選單位於頁面右上角，會顯示 CloudWatch Logs Insights 在日誌群組中探索到的所有欄位。

1. 選擇 **Run** (執行) 以檢視查詢結果。

   查詢結果會顯示日誌群組中與查詢命令相符的記錄筆數，以及按照指定欄位的一個或多個值分組的總數。

# 教學課程：執行查詢以產生依日誌欄位分組的視覺效果
<a name="CWL_AnalyzeLogData_VisualizationFieldQuery"></a>

當您執行的查詢使用 `stats` 函數，依日誌項目中一或多個欄位的值來分組傳回的結果時，您可以透過長條圖、圓餅圖、折線圖或堆疊區域圖來檢視結果。這可協助您更有效率地將日誌中的趨勢視覺化。

**執行查詢來產生視覺效果**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Logs Insights** (日誌洞察)。

1. 在 **Select log group(s)** (選取日誌群組) 下拉式選單中，選擇一個或多個要查詢的日誌群組。

    如果這是 CloudWatch 跨帳戶觀察功能中的監控帳戶，您可以在來源帳戶和監控帳戶中選取日誌群組。單一查詢可以一次查詢來自不同帳戶的日誌。

   您可以依日誌群組名稱、帳戶 ID 或帳戶標籤來篩選日誌群組。

1. 在查詢編輯器中，刪除目前的內容，然後輸入以下 `stats` 函式，並選擇 **Run query (執行查詢)**。

   ```
   stats count(*) by @logStream 
       | limit 100
   ```

   結果會顯示每個記錄串流的日誌群組中的日誌事件數量。結果限制為 100 個資料列。

1. 選擇 **Visualization (視覺化)** 標籤。

1. 選取 **Line (行)** 旁邊的箭頭，然後選擇 **Bar (列)**。

   此時將會顯示長條圖，顯示日誌群組中每個日誌串流的長條圖。

# 教學課程：執行查詢來產生時間序列視覺化
<a name="CWL_AnalyzeLogData_VisualizationQuery"></a>

當您執行的查詢使用 `bin()` 函數，依時段來分組傳回的結果時，您可以透過折線圖、堆疊區域圖、圓餅圖或長條圖來檢視結果。這可協助您更有效率地視覺化日誌事件在一段時間內的趨勢。

**執行查詢來產生視覺效果**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Logs Insights** (日誌洞察)。

1. 確認已選取 **Logs Insights QL** 標籤。

1. 在 **Select log group(s)** (選取日誌群組) 下拉式選單中，選擇一個或多個要查詢的日誌群組。

    如果這是 CloudWatch 跨帳戶觀察功能中的監控帳戶，您可以在來源帳戶和監控帳戶中選取日誌群組。單一查詢可以一次查詢來自不同帳戶的日誌。

   您可以依日誌群組名稱、帳戶 ID 或帳戶標籤來篩選日誌群組。

1. 在查詢編輯器中，刪除目前的內容，然後輸入以下 `stats` 函式，並選擇 **Run query (執行查詢)**。

   ```
   stats count(*) by bin(30s)
   ```

   結果會顯示 CloudWatch Logs 在每個 30 秒週期內在日誌群組中收到的日誌事件數。

1. 選擇 **Visualization (視覺化)** 標籤。

   結果會顯示為折線圖。若要切換至長條圖、圓餅圖或堆疊區域圖，請選擇圖表左上角 **Line** (線條) 旁邊的箭頭。