共用方式為


在 Azure HDInsight 中使用選擇性記錄搭配指令碼動作

Azure 監視器記錄是監視您的雲端和內部部署環境的 Azure 監視器服務。 監視可協助維護其可用性和效能。

Azure 監視器記錄會收集由雲端中的資源、內部部署環境的資源,以及其他監視工具所產生的資料, 並使用這些資料來提供跨多個來源的分析。 若要取得分析,您可以在 Azure 入口網站中使用 HDInsight 的指令碼動作來啟用選擇性記錄功能。

關於選擇性記錄

選擇性記錄是 Azure 整體監視系統的一部分。 當您將叢集連線至 Log Analytics 工作區並啟用選擇性記錄後,便能看到 HDInsight 安全性記錄、Yarn Resource Manager 和系統計量等記錄和計量。 您可以監視工作負載,並查看其如何影響叢集穩定性。

選擇性記錄可讓您在 Log Analytics 工作區中啟用或停用所有資料表,或啟用已選擇的資料表。 您可以調整每個資料表的來源類型。

注意

如果在叢集中重新安裝 Log Analytics,您必須再次停用所有資料表和記錄類型。 重新安裝會將所有組態檔重設至原始狀態。

指令碼動作的考量

  • 監視系統使用中繼資料伺服器精靈 (監視代理程式) 與 Fluentd ,運用整合的記錄層來收集記錄。
  • 選擇性記錄使用指令碼動作來停用或啟用資料表及其記錄類型。 由於選擇性記錄不會開啟任何新的連接埠,或變更任何現有的安全性設定,因此沒有任何安全性變更。
  • 指令碼動作會在所有指定的節點上平行執行,並變更組態檔以停用或啟用資料表及其記錄類型。

必要條件

  • Log Analytics 工作區。 您可以將此工作區視為唯一的 Azure 監視器記錄環境,有其自己的資料存放庫、資料來源和解決方案。 如需指示,請參閱建立 Log Analytics 工作區
  • Azure HDInsight 叢集。 目前,您可以使用選擇性記錄功能搭配下列 HDInsight 叢集類型:
    • Hadoop
    • hbase
    • 互動式查詢
    • Spark

如需如何建立 HDInsight 叢集的指示,請參閱開始使用 Azure HDInsight

使用指令碼動作為多個資料表和記錄類型啟用或停用記錄

  1. 移至叢集中的 [指令碼動作],然後選取 [提交新的] 以開始建立指令碼動作程序。

    Screenshot that shows the button for starting the process of creating a script action.

    [提交指令碼動作] 窗格隨即出現。

    Screenshot that shows the pane for submitting a script action.

  2. 在指令碼類型中,選取 [自訂]

  3. 為指令碼命名。 例如:停用兩個資料表和兩個來源

  4. Bash 指令碼 URI 必須是指向 selectiveLoggingScript.sh 的連結。

  5. 選取適用於叢集的所有節點類型。 這些選項包括前端節點、背景工作角色節點和 ZooKeeper 節點。

  6. 定義參數。 例如:

    • Spark:spark HDInsightSparkLogs:SparkExecutorLog --disable
    • Interactive Query:interactivehive HDInsightSparkLogs:SparkExecutorLog --enable
    • Hadoop:hadoop HDInsightSparkLogs:SparkExecutorLog --disable
    • HBase:hbase HDInsightSparkLogs: HDInsightHBaseLogs --enable

    如需詳細資訊,請參閱參數語法一節。

  7. 選取 建立

  8. 幾分鐘後,指令碼動作歷程記錄旁邊會出現綠色的核取記號。 這表示指令碼已成功執行。

    Screenshot that shows a successful run of a script to enable tables and log types.

您會在 Log Analytics 工作區中看到變更。

疑難排解

Log Analytics 工作區中不會顯示任何變更

如果提交了指令碼動作,但 Log Analytics 工作區中沒有任何變更:

  1. 在 [儀表板] 底下,選取 [Ambari 首頁] 以檢查偵錯資訊。

    Screenshot that shows the location of the Ambari home dashboard.

  2. 選取 [設定] 按鈕。

    Screenshot that shows the Settings button.

  3. 選取背景作業清單頂端的最新指令碼執行。

    Screenshot that shows background operations.

  4. 個別驗證所有節點中指令碼的執行狀態。

    Screenshot that shows the script run status for hosts.

  5. 檢查參數語法區段的參數語法是否正確。

  6. 檢查 Log Analytics 工作區是否已連線至叢集,並開啟 Log Analytics 監視。

  7. 檢查您是否已針對執行的指令碼動作選取了 [保存此指令碼動作,以在將新節點新增至叢集核時重新執行] 核取方塊。

    Screenshot that shows the checkbox for persisting a script action.

  8. 查看最近是否有一個新節點新增至叢集中。

    注意

    若要讓指令碼在最新叢集中執行,則必須保存指令碼。

  9. 請確定您已選取指令碼動作所需的所有節點類型。

    Screenshot that shows selected node types.

指令碼動作失敗

如果指令碼動作在指令碼動作歷程記錄中顯示失敗狀態:

  1. 檢查參數語法區段的參數語法是否正確。
  2. 檢查指令碼連結是否正確。 連結必須為:https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScripts/selectiveLoggingScript.sh

資料表名稱

Spark 叢集

下列資料表名稱適用於 Spark 資料表中不同的記錄類型 (來源)。

來源編號 資料表名稱 記錄類型 描述
1. HDInsightAmbariCluster 警示 沒有記錄類型 此資料表包含叢集中每個節點的 Ambari 叢集警示 (邊緣節點除外)。 每個警示都是此資料表中的記錄。
2. HDInsightAmbariSystem 計量 沒有記錄類型 此資料表包含從 Ambari 收集的系統計量。 計量現在來自叢集中的每個節點 (邊緣節點除外),而不只是兩個前端節點。 現在每個計量都是一個資料行,而每個計量在每筆記錄中都會報告一次。
3. HDInsightHadoopAndYarnLogs 前端節點:MRJobSummary、Resource Manager、TimelineServer 背景工作角色節點:NodeManager 此資料表包含從 Hadoop 和 YARN 架構所產生的所有記錄。
4. HDInsightSecurityLogs AmbariAuditLog、AuthLog 此資料表包含來自 Ambari 稽核和驗證記錄的記錄。
5. HDInsightSparkLogs 前端節點:JupyterLog、LivyLog、SparkThriftDriverLog 背景工作角色節點:SparkExecutorLog、SparkDriverLog 此資料表包含與 Spark 及其相關元件 Livy 和 Jupyter 有關的所有記錄。
6. HDInsightHadoopAndYarnMetrics 沒有記錄類型 此資料表包含來自 Hadoop 和 YARN 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量,加上其他我們認為重要的計量。 我們新增了時間軸伺服器、節點管理員和作業記錄伺服器計量。 其每筆記錄都包含一個計量。
7. HDInsightOozieLogs Oozie 此資料表包含從 Oozie 架構產生的所有記錄。

Interactive Query 叢集

下列資料表名稱適用於 Interactive Query 資料表中不同的記錄類型 (來源)。

來源編號 資料表名稱 記錄類型 描述
1. HDInsightAmbariClusterAlerts 沒有記錄類型 此資料表包含叢集中每個節點的 Ambari 叢集警示 (邊緣節點除外)。 每個警示都是此資料表中的記錄。
2. HDInsightAmbariSystem 計量 沒有記錄類型 此資料表包含從 Ambari 收集的系統計量。 計量現在來自叢集中的每個節點 (邊緣節點除外),而不只是兩個前端節點。 現在每個計量都是一個資料行,而每個計量在每筆記錄中都會報告一次。
3. HDInsightHadoopAndYarnLogs 前端節點:MRJobSummary、Resource Manager、TimelineServer 背景工作角色節點:NodeManager 此資料表包含從 Hadoop 和 YARN 架構所產生的所有記錄。
4. HDInsightHadoopAndYarnMetrics 沒有記錄類型 此資料表包含來自 Hadoop 和 YARN 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量,加上其他我們認為重要的計量。 我們新增了時間軸伺服器、節點管理員和作業記錄伺服器計量。 其每筆記錄都包含一個計量。
5. HDInsightHiveAndLLAPLogs 前端節點:InteractiveHiveHSILog、InteractiveHiveMetastoreLog、ZeppelinLog 此資料表包含從 Hive、LLAP 及其相關元件 WebHCat 和 Zeppelin 產生的記錄。
6. HDInsightHiveAndLLAPmetrics 沒有記錄類型 此資料表包含來自 Hive 和 LLAP 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量。 其每筆記錄都包含一個計量。
7. HDInsightHiveTezAppStats 沒有記錄類型
8. HDInsightSecurityLogs 前端節點:AmbariAuditLog、AuthLog Zookeeper 節點,背景工作角色節點:AuthLog 此資料表包含來自 Ambari 稽核和驗證記錄的記錄。

HBase 叢集

下列資料表名稱適用於 HBase 資料表中不同的記錄類型 (來源)。

來源編號 資料表名稱 記錄類型 描述
1. HDInsightAmbariClusterAlerts 沒有其他記錄類型 此資料表包含叢集中每個節點的 Ambari 叢集警示 (邊緣節點除外)。 每個警示都是此資料表中的記錄。
2. HDInsightAmbariSystem 計量 沒有其他記錄類型 此資料表包含從 Ambari 收集的系統計量。 計量現在來自叢集中的每個節點 (邊緣節點除外),而不只是兩個前端節點。 現在每個計量都是一個資料行,而每個計量在每筆記錄中都會報告一次。
3. HDInsightHadoopAndYarnLogs 前端節點:MRJobSummary、Resource Manager、TimelineServer 背景工作角色節點:NodeManager 此資料表包含從 Hadoop 和 YARN 架構所產生的所有記錄。
4. HDInsightSecurityLogs 前端節點:AmbariAuditLog、AuthLog 背景工作角色節點:AuthLog ZooKeper 節點:AuthLog 此資料表包含來自 Ambari 稽核和驗證記錄的記錄。
5. HDInsightHBaseLogs 前端節點:HDFSGarbageCollectorLog、HDFSNameNodeLog 背景工作角色節點:PhoenixServerLog、HBaseRegionServerLog、HBaseRestServerLog Zookeeper 節點:HBaseMasterLog 此資料表包含來自 HBase 及其相關元件 Phoenix 和 HDFS 的記錄。
6. HDInsightHBaseMetrics 沒有記錄類型 此資料表包含來自 HBase 的 JMX 計量。 其包含所有與 [舊結構描述] 資料行中所列資料表相同的 JMX 計量。 相較於舊資料表,每個資料列都包含一個計量。
7. HDInsightHadoopAndYarn 計量 沒有記錄類型 此資料表包含來自 Hadoop 和 YARN 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量,加上其他我們認為重要的計量。 我們新增了時間軸伺服器、節點管理員和作業記錄伺服器計量。 其每筆記錄都包含一個計量。

HDInsight 中的

下列資料表名稱適用於 Hadoop 資料表中不同的記錄類型 (來源)。

來源編號 資料表名稱 記錄類型 描述
1. HDInsightAmbariClusterAlerts 沒有記錄類型 此資料表包含叢集中每個節點的 Ambari 叢集警示 (邊緣節點除外)。 每個警示都是此資料表中的記錄。
2. HDInsightAmbariSystem 計量 沒有記錄類型 此資料表包含從 Ambari 收集的系統計量。 計量現在來自叢集中的每個節點 (邊緣節點除外),而不只是兩個前端節點。 現在每個計量都是一個資料行,而每個計量在每筆記錄中都會報告一次。
3. HDInsightHadoopAndYarnLogs 前端節點:MRJobSummary、Resource Manager、TimelineServer 背景工作角色節點:NodeManager 此資料表包含從 Hadoop 和 YARN 架構所產生的所有記錄。
4. HDInsightHadoopAndYarnMetrics 沒有記錄類型 此資料表包含來自 Hadoop 和 YARN 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量,加上其他我們認為重要的計量。 我們新增了時間軸伺服器、節點管理員和作業記錄伺服器計量。 其每筆記錄都包含一個計量。
5. HDInsightHiveAndLLAPLogs 前端節點:HiveMetastoreLog、HiveServer2Log、WebHcatLog 此資料表包含從 Hive、LLAP 及其相關元件 WebHCat 和 Zeppelin 產生的記錄。
6. HDInsight Hive 和 LLAP 計量 沒有記錄類型 此資料表包含來自 Hive 和 LLAP 架構的 JMX 計量。 其包含與舊自訂記錄資料表相同的所有 JMX 計量。 其每筆記錄都包含一個計量。
7. HDInsight 安全性記錄 前端節點:AmbariAuditLog、AuthLog Zookeeper 節點:AuthLog 此資料表包含來自 Ambari 稽核和驗證記錄的記錄。

參數語法

參數會定義叢集類型、資料表名稱、來源名稱和動作。

Screenshot that shows the parameter syntax box.

參數包含三個部分:

  • 叢集類型
  • 資料表和記錄類型
  • 動作 (--disable--enable)

多個資料表的語法

當您有多個資料表時,其會以逗號分隔。 例如:

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

多個來源類型或記錄類型的語法

當您有多個來源類型或記錄類型時,其會以空格分隔。

若要停用來源,請寫入包含記錄類型的資料表名稱,後面接著冒號,再來是實際的記錄類型名稱:

TableName : LogTypeName

例如,假設 spark HDInsightSecurityLogs 是具有兩種記錄類型的資料表:AmbariAuditLogAuthLog。 若要停用這兩種記錄類型,正確的語法會是:

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

多個資料表和來源類型的語法

如果您需要停用兩個資料表和兩個來源類型,請使用下列語法:

  • Spark:HDInsightHiveAndLLAPLogs 資料表中的 InteractiveHiveMetastoreLog 記錄類型
  • Hbase:HDInsightHiveAndLLAPLogs 資料表中的 InteractiveHiveHSILog 記錄類型
  • Hadoop:HDInsightHiveAndLLAPMetrics 資料表
  • Hadoop:HDInsightHiveTezAppStats 資料表

以逗號分隔資料表。 在來源所在的資料表名稱後使用冒號來表示來源。

這類案例的正確參數語法會是:

interactivehive HDInsightHiveAndLLAPLogs: InteractiveHiveMetastoreLog, HDInsightHiveAndLLAPMetrics, HDInsightHiveTezAppStats, HDInsightHiveAndLLAPLogs: InteractiveHiveHSILog --enable 

下一步