Azure HDInsight のスクリプト アクションで選択的ログを使用する

Azure Monitor ログは、クラウド環境とオンプレミス環境を監視する Azure Monitor サービスです。 この監視では、可用性とパフォーマンスの維持に役立ちます。

Azure Monitor Logs は、クラウド上のリソース、オンプレミス環境内にあるリソース、および他の監視ツールによって生成されたデータを収集します。 そのデータを使用して、複数のソースにわたる解析を提供します。 解析を取得するには、Azure portal で HDInsight のスクリプト アクションを使用して、選択的ログ機能を有効にします。

選択的ログについて

選択的ログは、Azure の全体的な監視システムの一部です。 クラスターを Log Analytics ワークスペースに接続し、選択的なログを有効にすると、HDInsight セキュリティ ログ、Yarn Resource Manager、システム メトリックなどのログとメトリックを確認できます。 ワークロードを監視し、それらがクラスターの安定性にどのように影響しているかを確認できます。

選択的ログを使用すると、すべてのテーブルを有効または無効にしたり、Log Analytics ワークスペースで選択したテーブルを有効にしたりできます。 各テーブルごとにソースの種類を調整できます。

注意

Log Analytics がクラスターに再インストールされた場合は、すべてのテーブルとログの種類をもう一度無効にする必要があります。 再インストールすると、すべての構成ファイルが元の状態にリセットされます。

スクリプト アクションに関する考慮事項

  • 監視システムは、統合ログレイヤーを使用してログを収集するためにメタデータ サーバー デーモン (監視エージェント) と Fluentd を使用します。
  • 選択的ログでは、スクリプト アクションを使用して、テーブルとそのログの種類を無効または有効にします。 選択的ログでは、新しいポートを開いたり、既存のセキュリティ設定を変更したりしないため、セキュリティの変更はありません。
  • スクリプト アクションは、指定されたすべてのノードで並列に実行され、テーブルとそのログの種類を無効または有効にするために構成ファイルを変更します。

前提条件

  • Log Analytics ワークスペース。 このワークスペースは、独自のデータ リポジトリ、データ ソース、およびソリューションを備えた一意の Azure Monitor ログ環境と考えることができます。 手順については、Log Analytics ワークスペースの作成に関するページを参照してください。
  • Azure HDInsight クラスター。 現在、次の HDInsight クラスターの種類で選択的ログ機能を使用できます。
    • Hadoop
    • hbase
    • Interactive Query
    • 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. スクリプトに名前を付けます。 たとえば、「2 つのテーブルと 2 つのソースを無効にする」とします。

  4. Bash スクリプト URI は、selectiveLoggingScript.sh へのリンクである必要があります。

  5. クラスターに適用されるすべてのノード タイプを選択します。 オプションは、ヘッド ノード、ワーカー ノード、ZooKeeper ノードです。

  6. パラメーターを定義します。 たとえば、次のように入力します。

    • Spark: spark HDInsightSparkLogs:SparkExecutorLog --disable
    • 対話型クエリ: 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 Alerts ログの種類なし このテーブルには、クラスター内の各ノードからの Ambari クラスター アラート (エッジ ノードを除く) が含まれています。 各アラートは、このテーブル内のレコードです。
2. HDInsightAmbariSystem Metrics ログの種類なし このテーブルには、Ambari から収集されたシステム メトリックが含まれています。 これらのメトリックは、2 つのヘッドノードだけではなく、クラスター内の各ノード (エッジ ノードを除く) から取得されるようになりました。 各メトリックは列になり、各メトリックはレコードごとに 1 回報告されます。
3. HDInsightHadoopAnd YarnLogs ヘッド ノード: MRJobSummary、Resource Manager、TimelineServer ワーカー ノード: NodeManager このテーブルには、Hadoop フレームワークと YARN フレームワークから生成されたすべてのログが含まれています。
4. HDInsightSecurityLogs AmbariAuditLog、AuthLog このテーブルには、Ambari 監査ログおよび認証ログのレコードが含まれています。
5. HDInsightSparkLogs ヘッド ノード: JupyterLog、LivyLog、SparkThriftDriverLog ワーカー ノード: SparkExecutorLog、SparkDriverLog このテーブルには、Spark とそれに関連するコンポーネント (Livy と Jupyter) に関連するすべてのログが含まれています。
6. HDInsightHadoopAnd YarnMetrics ログの種類なし このテーブルには、Hadoop フレームワークと YARN フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックに加えて、重要と考えられるより多くのメトリックが含まれています。 タイムライン サーバー、ノード マネージャー、およびジョブ履歴サーバーのメトリックが追加されました。 レコードごとに 1 つのメトリックが含まれています。
7. HDInsightOozieLogs Oozie このテーブルには、Oozie フレームワークから生成されたすべてのログが含まれています。

対話型クエリ クラスター

次のテーブル名は、Interactive Query テーブル内のさまざまなログの型 (ソース) に使用されます。

ソース番号 テーブル名 ログの種類 説明
1. HDInsightAmbariClusterAlerts ログの種類なし このテーブルには、クラスター内の各ノードからの Ambari クラスター アラート (エッジ ノードを除く) が含まれています。 各アラートは、このテーブル内のレコードです。
2. HDInsightAmbariSystem Metrics ログの種類なし このテーブルには、Ambari から収集されたシステム メトリックが含まれています。 これらのメトリックは、2 つのヘッドノードだけではなく、クラスター内の各ノード (エッジ ノードを除く) から取得されるようになりました。 各メトリックは列になり、各メトリックはレコードごとに 1 回報告されます。
3. HDInsightHadoopAndYarnLogs ヘッド ノード: MRJobSummary、Resource Manager、TimelineServer ワーカー ノード: NodeManager このテーブルには、Hadoop フレームワークと YARN フレームワークから生成されたすべてのログが含まれています。
4. HDInsightHadoopAndYarnMetrics ログの種類なし このテーブルには、Hadoop フレームワークと YARN フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックに加えて、重要と考えられるより多くのメトリックが含まれています。 タイムライン サーバー、ノード マネージャー、およびジョブ履歴サーバーのメトリックが追加されました。 レコードごとに 1 つのメトリックが含まれています。
5. HDInsightHiveAndLLAPLogs ヘッド ノード: InteractiveHiveHSILog、InteractiveHiveMetastoreLog、ZeppelinLog このテーブルには、Hive、LLAP、およびそれらに関連するコンポーネント (WebHCat と Zeppelin) から生成されたログが含まれています。
6. HDInsightHiveAndLLAPmetrics ログの種類なし このテーブルには、Hive フレームワークと LLAP フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックが含まれます。 レコードごとに 1 つのメトリックが含まれています。
7. HDInsightHiveTezAppStats ログの種類なし
8. HDInsightSecurityLogs ヘッド ノード: AmbariAuditLog、AuthLog ZooKeeper ノード、ワーカー ノード: AuthLog このテーブルには、Ambari 監査ログおよび認証ログのレコードが含まれています。

HBase クラスター

次のテーブル名は、HBase テーブル内のさまざまなログの型 (ソース) に使用されます。

ソース番号 テーブル名 ログの種類 説明
1. HDInsightAmbariClusterAlerts 他のログの種類なし このテーブルには、クラスター内の各ノードからの Ambari クラスター アラート (エッジ ノードを除く) が含まれています。 各アラートは、このテーブル内のレコードです。
2. HDInsightAmbariSystem Metrics 他のログの種類なし このテーブルには、Ambari から収集されたシステム メトリックが含まれています。 これらのメトリックは、2 つのヘッドノードだけではなく、クラスター内の各ノード (エッジ ノードを除く) から取得されるようになりました。 各メトリックは列になり、各メトリックはレコードごとに 1 回報告されます。
3. HDInsightHadoopAndYarnLogs ヘッド ノード: MRJobSummary、Resource Manager、TimelineServer ワーカー ノード: NodeManager このテーブルには、Hadoop フレームワークと YARN フレームワークから生成されたすべてのログが含まれています。
4. HDInsightSecurityLogs ヘッド ノード: AmbariAuditLog、AuthLog ワーカー ノード: AuthLog ZooKeeper ノード: AuthLog このテーブルには、Ambari 監査ログおよび認証ログのレコードが含まれています。
5. HDInsightHBaseLogs ヘッド ノード: HDFSGarbageCollectorLog、HDFSNameNodeLog ワーカー ノード: PhoenixServerLog、HBaseRegionServerLog、HBaseRestServerLog ZooKeeper ノード: HBaseMasterLog このテーブルには、HBase とそれに関連するコンポーネント (Phoenix と HDFS) のログが含まれています。
6. HDInsightHBaseMetrics ログの種類なし このテーブルには、HBase の JMX メトリックが含まれています。 これには、"古いスキーマ" 列に示されているテーブルと同じすべての JMX メトリックが含まれます。 古いテーブルとは異なり、各行に 1 つのメトリックが含まれています。
7. HDInsightHadoopAndYarn Metrics ログの種類なし このテーブルには、Hadoop フレームワークと YARN フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックに加えて、重要と考えられるより多くのメトリックが含まれています。 タイムライン サーバー、ノード マネージャー、およびジョブ履歴サーバーのメトリックが追加されました。 レコードごとに 1 つのメトリックが含まれています。

Hadoop クラスター

次のテーブル名は、Hadoop テーブル内のさまざまなログの型 (ソース) に使用されます。

ソース番号 テーブル名 ログの種類 説明
1. HDInsightAmbariClusterAlerts ログの種類なし このテーブルには、クラスター内の各ノードからの Ambari クラスター アラート (エッジ ノードを除く) が含まれています。 各アラートは、このテーブル内のレコードです。
2. HDInsightAmbariSystem Metrics ログの種類なし このテーブルには、Ambari から収集されたシステム メトリックが含まれています。 これらのメトリックは、2 つのヘッドノードだけではなく、クラスター内の各ノード (エッジ ノードを除く) から取得されるようになりました。 各メトリックは列になり、各メトリックはレコードごとに 1 回報告されます。
3. HDInsightHadoopAndYarnLogs ヘッド ノード: MRJobSummary、Resource Manager、TimelineServer ワーカー ノード: NodeManager このテーブルには、Hadoop フレームワークと YARN フレームワークから生成されたすべてのログが含まれています。
4. HDInsightHadoopAndYarnMetrics ログの種類なし このテーブルには、Hadoop フレームワークと YARN フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックに加えて、重要と考えられるより多くのメトリックが含まれています。 タイムライン サーバー、ノード マネージャー、およびジョブ履歴サーバーのメトリックが追加されました。 レコードごとに 1 つのメトリックが含まれています。
5. HDInsightHiveAndLLAPLogs ヘッド ノード: HiveMetastoreLog、HiveServer2Log、WebHcatLog このテーブルには、Hive、LLAP、およびそれらに関連するコンポーネント (WebHCat と Zeppelin) から生成されたログが含まれています。
6. HDInsight Hive And LLAP Metrics ログの種類なし このテーブルには、Hive フレームワークと LLAP フレームワークの JMX メトリックが含まれています。 これには、古いカスタム ログ テーブルと同じすべての JMX メトリックが含まれます。 レコードごとに 1 つのメトリックが含まれています。
7. HDInsight Security Logs ヘッド ノード: AmbariAuditLog、AuthLog ZooKeeper ノード: AuthLog このテーブルには、Ambari 監査ログおよび認証ログのレコードが含まれています。

パラメーター構文

パラメーターは、クラスターの型、テーブル名、ソース名、アクションを定義します。

Screenshot that shows the parameter syntax box.

パラメーターは 3 つの部分から構成されています。

  • クラスターの種類
  • テーブルとログの型
  • アクション (--disable または --enableのいずれか)

複数のテーブルを使用する場合の構文

複数のテーブルがある場合は、コンマで区切られます。 たとえば、次のように入力します。

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

複数のソースの型またはログの型に対応する構文

複数のソースの型またはログの型がある場合は、スペースで区切られます。

ソースを無効にするには、ログの型を含むテーブル名、コロン、実際のログの種類の名前を書き込みます。

TableName : LogTypeName

たとえば、 spark HDInsightSecurityLogs は、AmbariAuditLogAuthLogの 2 つのログの型 を持つテーブルであるとします。 両方のログの型を無効にするには、正しい構文は次のようになります。

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

複数のテーブルとソースの型に対応する構文

2 つのテーブルと 2 つのソースの型を無効にする必要がある場合は、次の構文を使用します。

  • Spark: HDInsightHiveAndLLAPLogsテーブルの InteractiveHiveMetastoreLogログの種類
  • Spark: HDInsightHiveAndLLAPLogsテーブルの InteractiveHiveHSILogログの種類
  • Hadoop: HDInsightHiveAndLLAPMetrics テーブル
  • Hadoop: HDInsightHiveTezAppStats テーブル

テーブルはコンマで区切ります。 ソースが存在するテーブル名の後にコロン (:) を使用して、ソースを示します。

これらの場合の正しいパラメーターの構文は次のようになります。

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

次の手順