Azure HDInsight の Azure Monitor エージェント (AMA) のスクリプト アクションで選択的ログ記録を使用する

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. クラスターの [スクリプト アクション] に移動し、[新規で送信] を選択して、スクリプト アクションの作成プロセスを開始します。

    スクリプト アクションの作成プロセスを開始するためのボタンを示すスクリーンショット。

    [スクリプトの送信アクション] ウィンドウが表示されます。

    スクリプト アクションを送信するためのペインを示すスクリーンショット。

  2. [スクリプトの種類] は、[カスタム] を選択します。

  3. スクリプトに名前を付けます。 たとえば、「2 つのテーブルと 2 つのソースを無効にする」とします。

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

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

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

    • Spark: spark HDInsightSparkLogs:SparkExecutorLog --disable
    • 対話型クエリ: interactivehive HDInsightHadoopAndYarnLogs:NodeManager --enable
    • Hadoop: hadoop HDInsightHiveAndLLAPLogs:HiveServer2Log --disable
    • HBase: hbase HDInsightHBaseLogs:HBaseRegionServerLog --enable

    詳細については、「パラメーターの構文」セクションを参照してください。

  7. [作成] を選択します

  8. 数分後、スクリプト アクション履歴の横に緑色のチェック マークが表示されます。 これは、スクリプトが正常に実行されたことを意味します。

    テーブルとログ型を有効にするスクリプトが正常に実行されたことを示すスクリーンショット。

Log Analytics ワークスペースに変更内容が表示されます。

トラブルシューティング

Log Analytics ワークスペースに変更は表示されない

スクリプト アクションが送信されても、Log Analytics ワークスペースに変更がない場合。

  1. [ダッシュボード] で、Ambari ホームを選択してデバッグ情報を確認します。

    Ambari ホーム ダッシュボードの場所を示すスクリーンショット。

  2. [設定] ボタンを選択します。

    [設定] ボタンを示すスクリーンショット。

  3. バックグラウンド操作のリストの上部にある最新のスクリプト実行を選択します。

    バックグラウンドでの動作を示すスクリーンショット。

  4. すべてのノードで個別にスクリプトの実行状態を確認します。

    ホストのスクリプト実行ステータスを示すスクリーンショット。

  5. パラメーター構文セクションのパラメーター構文が正しいことを確認します。

  6. Log Analytics ワークスペースがクラスターに接続されていて、Log Analytics の監視が有効になっていることを確認します。

  7. 実行した スクリプト アクションの [クラスターに新しいノードが追加されたときに再実行するには、このスクリプト アクションを永続化する] チェック ボックスが選択されていることを確認します。

    スクリプト アクションを永続化するためのチェックボックスを示すスクリーンショット。

  8. 新しいノードが最近クラスターに追加されてたかどうかを確認します。

    注意

    スクリプトを最新のクラスターで実行するには、スクリプトを永続化する必要があります。

  9. スクリプト アクションに必要なすべてのノード タイプを選択していることを確認します。

    選択したノード タイプを示すスクリーンショット。

スクリプトアクションの失敗

スクリプト アクションの履歴で、スクリプト アクションが失敗の状態を表示している場合。

  1. パラメーター構文セクションのパラメーター構文が正しいことを確認します。
  2. スクリプトのリンクが正しいかどうか確認します。 これは、https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScriptsAma/selectiveLoggingScript.sh である必要があります。

テーブル名

さまざまなログの種類 (ソース) のテーブル名の完全な一覧については、Azure Monitor のログ テーブルに関するページを参照してください。

パラメーター構文

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

パラメータ構文ボックスを示すスクリーンショット。

パラメーターは 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 

次の手順