Partager via


Utiliser la journalisation sélective avec une action de script dans Azure HDInsight

Les journaux Azure Monitor sont un service Azure Monitor qui supervise vos environnements Cloud et locaux. La surveillance permet de maintenir leur disponibilité et leurs performances.

Azure Monitor Logs collecte les données générées par les ressources dans votre cloud, les ressources dans les environnements sur site et d'autres outils de surveillance. Il utilise les données pour fournir une analyse à partir de sources multiples. Pour obtenir l’analyse, vous activez la fonctionnalité de journalisation sélective à l’aide d’une action de script pour HDInsight dans le Portail Azure.

À propos de la journalisation sélective

La journalisation sélective fait partie du système de surveillance global d'Azure. Après avoir connecté votre cluster à un espace de travail Log Analytics et activé la journalisation sélective, vous pouvez voir les journaux et les métriques comme les journaux de sécurité HDInsight, Yarn Resource Manager et les métriques système. Vous pouvez surveiller les charges de travail et voir comment elles affectent la stabilité du cluster.

La journalisation sélective vous permet d'activer ou de désactiver toutes les tables, ou d'activer les tables sélectionnées, dans l'espace de travail Log Analytics. Vous pouvez ajuster le type de source pour chaque table.

Notes

Si Log Analytics est réinstallé dans un cluster, vous devez désactiver à nouveau toutes les tables et tous les types de journaux. La réinstallation réinitialise tous les fichiers de configuration à leur état d’origine.

Considérations relatives aux actions de script

  • Le système de surveillance utilise le démon de serveur de métadonnées (un agent de surveillance) et Fluentd pour collecter les journaux à l’aide d’une couche de journalisation unifiée.
  • La journalisation sélective utilise une action de script pour désactiver ou activer les tables et leurs types de journaux. Comme la journalisation sélective n'ouvre pas de nouveaux ports et ne modifie pas les paramètres de sécurité existants, il n'y a pas de modification de la sécurité.
  • L'action du script s'exécute en parallèle sur tous les nœuds spécifiés et modifie les fichiers de configuration pour désactiver ou activer les tables et leurs types de journaux.

Prérequis

  • Un espace de travail Log Analytics. Considérez cet espace de travail comme un environnement des journaux d’activité Azure Monitor avec son propre référentiel de données, et ses propres sources de données et solutions. Pour obtenir des instructions, consultez Créer un espace de travail Log Analytics.
  • Un cluster Azure HDInsight. Vous pouvez actuellement utiliser les journaux d’activité Azure Monitor avec les types de cluster HDInsight suivants :
    • Hadoop
    • hbase
    • Interactive Query
    • Spark

Pour savoir comment créer un cluster HDInsight, consultez Prise en main d’Azure HDInsight.

Activer ou désactiver les journaux à l’aide d’une action de script pour plusieurs tables et types de journaux

  1. Accédez aux actions de script dans votre cluster et sélectionnez Envoyer nouveau pour démarrer le processus de création d’une action de script.

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

    Le volet d’action Envoyer un script s’affiche.

    Screenshot that shows the pane for submitting a script action.

  2. Pour le type de script, sélectionnez personnalisé.

  3. Nommez le script. Par exemple, Désactiver deux tables et deux sources.

  4. L’URI du script Bash doit être un lien vers selectiveLoggingScript.sh.

  5. Sélectionnez tous les types de nœuds qui s’appliquent au cluster. Les options sont le nœud principal, le nœud Worker et le nœud ZooKeeper.

  6. Définissez les paramètres. Par exemple :

    • Spark : spark HDInsightSparkLogs:SparkExecutorLog --disable
    • Requête interactive : interactivehive HDInsightSparkLogs:SparkExecutorLog --enable
    • Hadoop : hadoop HDInsightSparkLogs:SparkExecutorLog --disable
    • Hbase : hbase HDInsightSparkLogs: HDInsightHBaseLogs --enable

    Pour plus d'informations, voir la section Syntaxe des paramètres.

  7. Sélectionnez Create (Créer).

  8. Après quelques minutes, une coche verte apparaît en regard de l’historique des actions de votre script. Cela signifie que le script a réussi à s’exécuter.

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

Vous verrez vos modifications dans l’espace de travail Log Analytics.

Dépannage

Aucune modification n’apparaît dans l’espace de travail Log Analytics

Si vous soumettez votre action de script mais qu'il n'y a aucun changement dans l'espace de travail Log Analytics :

  1. Sous Tableaux de bord, sélectionnez Ambari home pour vérifier les informations de débogage.

    Screenshot that shows the location of the Ambari home dashboard.

  2. Sélectionnez le bouton Paramètres.

    Screenshot that shows the Settings button.

  3. Sélectionnez votre dernière exécution de script en haut de la liste des opérations en arrière-plan.

    Screenshot that shows background operations.

  4. Vérifiez l’état d’exécution du script dans tous les nœuds individuellement.

    Screenshot that shows the script run status for hosts.

  5. Vérifiez si la syntaxe des paramètres de la section de syntaxe de paramètre est correcte.

  6. Vérifiez si l’espace de travail Log Analytics est connecté au cluster et que la surveillance log Analytics est activée.

  7. Vérifiez que vous avez sélectionné l’action Conserver ce script à réexécuter lorsque de nouveaux nœuds sont ajoutés à la case à cocher du cluster pour l’action de script que vous avez exécutée.

    Screenshot that shows the checkbox for persisting a script action.

  8. Voir si un nouveau nœud a été ajouté au cluster récemment.

    Notes

    Pour que le script s'exécute dans le dernier cluster, le script doit persister.

  9. Assurez-vous que vous avez sélectionné tous les types de nœuds souhaités pour l’action de script.

    Screenshot that shows selected node types.

L'action du script a échoué

Si l’action de script affiche un état d’échec dans l’historique des actions de script :

  1. Vérifiez si la syntaxe des paramètres de la section de syntaxe de paramètre est correcte.
  2. Vérifiez que le lien de script est correct. Cette valeur doit être : https://hdiconfigactions.blob.core.windows.net/log-analytics-patch/selectiveLoggingScripts/selectiveLoggingScript.sh.

Noms de tables

Cluster Spark

Les noms des tableaux suivants concernent différents types de journaux (sources) dans les tables Spark.

Numéro de la source Nom de la table Types de journaux Description
1. Alertes HDInsightAmbariCluster Pas de types de journaux Cette table contient des alertes de cluster Ambari à partir de chaque nœud du cluster (à l’exception des nœuds de périphérie). Chaque alerte est un enregistrement dans cette table.
2. Métriques HDInsightAmbariSystem Pas de types de journaux Cette table contient des métriques système collectées à partir d’Ambari. Les métriques proviennent désormais de chaque nœud du cluster (à l’exception des nœuds de périphérie) au lieu des deux nœuds principaux uniquement. Chaque métrique est désormais une colonne et chaque métrique est signalée une fois par enregistrement.
3. HDInsightHadoopAnd YarnLogs Nœud principal : MRJobSummary, Resource Manager, TimelineServer Worker Node: NodeManager Cette table contient tous les journaux générés à partir des infrastructures Hadoop et YARN.
4. HDInsightSecurityLogs AmbariAuditLog, AuthLog Cette table contient les enregistrements des journaux d'audit et d'authentification d'Ambari.
5. HDInsightSparkLogs Nœud principal : JupyterLog, LivyLog, SparkThriftDriverLog Worker Node : SparkExecutorLog, SparkDriverLog Cette table contient tous les journaux liés à Spark et son composant Livy et Jupyter associé.
6. HDInsightHadoopAnd YarnMetrics Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hadoop et YARN. Elle contient les mêmes métriques JMX que les anciennes tables de journaux personnalisés, plus des métriques que nous considérons comme importantes. Nous avons ajouté les métriques du serveur de chronologie, du gestionnaire de nœuds et de l’historique des travaux. Elle contient une métrique par enregistrement.
7. HDInsightOozieLogs Oozie Cette table contient tous les journaux générés à partir de l’infrastructure Oozie.

Cluster Interactive Query

Les noms de tables suivants correspondent à différents types de journaux (sources) dans les tables de requêtes interactives.

Numéro de la source Nom de la table Types de journaux Description
1. HDInsightAmbariClusterAlerts Pas de types de journaux Cette table contient des alertes de cluster Ambari à partir de chaque nœud du cluster (à l’exception des nœuds de périphérie). Chaque alerte est un enregistrement dans cette table.
2. Métriques HDInsightAmbariSystem Pas de types de journaux Cette table contient des métriques système collectées à partir d’Ambari. Les métriques proviennent désormais de chaque nœud du cluster (à l’exception des nœuds de périphérie) au lieu des deux nœuds principaux uniquement. Chaque métrique est désormais une colonne et chaque métrique est signalée une fois par enregistrement.
3. HDInsightHadoopAndYarnLogs Nœud principal : MRJobSummary, Resource Manager, TimelineServer Worker Node: NodeManager Cette table contient tous les journaux générés à partir des infrastructures Hadoop et YARN.
4. HDInsightHadoopAndYarnMetrics Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hadoop et YARN. Elle contient les mêmes métriques JMX que les anciennes tables de journaux personnalisés, plus des métriques que nous considérons comme importantes. Nous avons ajouté les métriques du serveur de chronologie, du gestionnaire de nœuds et de l’historique des travaux. Elle contient une métrique par enregistrement.
5. HDInsightHiveAndLLAPLogs Nœud principal : InteractiveHiveHSILog, InteractiveHiveMetastoreLog, ZeppelinLog Cette table contient des journaux générés depuis Hive, LLAP et leurs composants associés : WebHCat et Zeppelin.
6. HDInsightHiveAndLLAPMetrics Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hive et LLAP. Elle contient les mêmes mesures JMX que les anciennes tables Journaux personnalisés. Elle contient une métrique par enregistrement.
7. HDInsightHiveTezAppStats Pas de types de journaux
8. HDInsightSecurityLogs Nœud principal : AmbariAuditLog, Nœud Zookeeper AuthLog, Nœud Worker : AuthLog Cette table contient les enregistrements des journaux d'audit et d'authentification d'Ambari.

Cluster HBase

Les noms des tableaux suivants concernent différents types de journaux (sources) dans les tables HBase.

Numéro de la source Nom de la table Types de journaux Description
1. HDInsightAmbariClusterAlerts Aucun autre type de journal Cette table contient des alertes de cluster Ambari à partir de chaque nœud du cluster (à l’exception des nœuds de périphérie). Chaque alerte est un enregistrement dans cette table.
2. Métriques HDInsightAmbariSystem Aucun autre type de journal Cette table contient des métriques système collectées à partir d’Ambari. Les métriques proviennent désormais de chaque nœud du cluster (à l’exception des nœuds de périphérie) au lieu des deux nœuds principaux uniquement. Chaque métrique est désormais une colonne et chaque métrique est signalée une fois par enregistrement.
3. HDInsightHadoopAndYarnLogs Nœud principal : MRJobSummary, Resource Manager, TimelineServer Worker Node: NodeManager Cette table contient tous les journaux générés à partir des infrastructures Hadoop et YARN.
4. HDInsightSecurityLogs Noeud principal : AmbariAuditLog, AuthLog Noeud Worker : AuthLog ZooKeper Node: AuthLog Cette table contient les enregistrements des journaux d'audit et d'authentification d'Ambari.
5. HDInsightHBaseLogs Nœud principal : HDFSGarbageCollectorLog, HDFSNameNodeLog WorkerNode: PhoenixServerLog, HBaseRegionServerLog, HBaseRestServerLog Zookeeper Node: HBaseMasterLog Cette table contient des journaux de HBase et ses composants associés : Phoenix et HDFS.
6. HDInsightHBaseMetrics Pas de types de journaux Cette table contient des métriques JMX de HBase. Elle contient les mêmes métriques JMX que celles des tables listées dans l’ancienne colonne Schéma. Contrairement aux anciennes tables, chaque ligne contient une mesure.
7. Métriques HDInsightHadoopAndYarn Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hadoop et YARN. Elle contient les mêmes métriques JMX que les anciennes tables de journaux personnalisés, plus des métriques que nous considérons comme importantes. Nous avons ajouté les métriques du serveur de chronologie, du gestionnaire de nœuds et de l’historique des travaux. Elle contient une métrique par enregistrement.

Cluster Hadoop.

Les noms des tableaux suivants concernent différents types de journaux (sources) dans les tables Hadoop.

Numéro de la source Nom de la table Types de journaux Description
1. HDInsightAmbariClusterAlerts Pas de types de journaux Cette table contient des alertes de cluster Ambari à partir de chaque nœud du cluster (à l’exception des nœuds de périphérie). Chaque alerte est un enregistrement dans cette table.
2. Métriques HDInsightAmbariSystem Pas de types de journaux Cette table contient des métriques système collectées à partir d’Ambari. Les métriques proviennent désormais de chaque nœud du cluster (à l’exception des nœuds de périphérie) au lieu des deux nœuds principaux uniquement. Chaque métrique est désormais une colonne et chaque métrique est signalée une fois par enregistrement.
3. HDInsightHadoopAndYarnLogs Nœud principal : MRJobSummary, Resource Manager, TimelineServer Worker Node: NodeManager Cette table contient tous les journaux générés à partir des infrastructures Hadoop et YARN.
4. HDInsightHadoopAndYarnMetrics Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hadoop et YARN. Elle contient les mêmes métriques JMX que les anciennes tables de journaux personnalisés, plus des métriques que nous considérons comme importantes. Nous avons ajouté les métriques du serveur de chronologie, du gestionnaire de nœuds et de l’historique des travaux. Elle contient une métrique par enregistrement.
5. HDInsightHiveAndLLAPLogs Nœud principal : HiveMetastoreLog, HiveServer2Log, WebHcatLog Cette table contient des journaux générés depuis Hive, LLAP et leurs composants associés : WebHCat et Zeppelin.
6. Mesures Insights HDInsight Hive et LLAP Pas de types de journaux Cette table contient des métriques JMX à partir des infrastructures Hive et LLAP. Elle contient les mêmes mesures JMX que les anciennes tables Journaux personnalisés. Elle contient une métrique par enregistrement.
7. Journaux de sécurité HDInsight Nœud principal : AmbariAuditLog, AuthLog ZooKeeper node: AuthLog Cette table contient les enregistrements des journaux d'audit et d'authentification d'Ambari.

Syntaxe des paramètres

Les paramètres définissent le type de cluster, les noms de table, les noms de source et l’action.

Screenshot that shows the parameter syntax box.

Un paramètre contient trois parties :

  • Type de cluster
  • Tables et types de journaux
  • Action (soit --disable ou --enable)

Syntaxe pour plusieurs tables

Lorsque vous avez plusieurs tables, elles sont séparées par une virgule. Par exemple :

spark HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --disable

hbase HDInsightSecurityLogs, HDInsightAmbariSystemMetrics --enable

Syntaxe pour plusieurs types sources ou types de journaux

Lorsque vous avez plusieurs types sources ou types de journaux, ils sont séparés par un espace.

Pour désactiver une source, écrivez le nom de la table qui contient les types de journaux, suivi de deux points, puis du nom réel du type de journal :

TableName : LogTypeName

Par exemple, supposons qu’il spark HDInsightSecurityLogs s’agit d’une table qui a deux types de journaux : AmbariAuditLog et AuthLog. Pour désactiver les deux types de journaux, la syntaxe correcte serait :

spark HDInsightSecurityLogs: AmbariAuditLog AuthLog --disable

Syntaxe pour plusieurs tables et types sources

Si vous devez désactiver deux tables et deux types sources, utilisez la syntaxe suivante :

  • Spark : InteractiveHiveMetastoreLog type de journal dans la table HDInsightHiveAndLLAPLogs
  • Hbase : InteractiveHiveHSILog type de journal dans la table HDInsightHiveAndLLAPLogs
  • Hadoop : table HDInsightHiveAndLLAPMetrics
  • Hadoop : table HDInsightHiveTezAppStats

Séparez les tables par une virgule. Désignez les sources en utilisant deux points après le nom de la table dans laquelle elles se trouvent.

La syntaxe correcte des paramètres pour ces cas serait :

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

Étapes suivantes