Partager via


Utiliser la journalisation sélective avec une action de script pour l’agent Azure Monitor (AMA) 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.

    Capture d'écran qui montre le bouton permettant de lancer le processus de création d'une action de script.

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

    Capture d'écran qui montre le volet pour soumettre une action de script.

  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 HDInsightHadoopAndYarnLogs:NodeManager --enable
    • Hadoop : hadoop HDInsightHiveAndLLAPLogs:HiveServer2Log --disable
    • Hbase : hbase HDInsightHBaseLogs:HBaseRegionServerLog --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.

    Capture d'écran qui montre une exécution réussie d'un script pour activer les tables et les types de journaux.

Vous voyez 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.

    Capture d'écran qui montre l'emplacement du tableau de bord de la maison Ambari.

  2. Sélectionnez le bouton Paramètres.

    Capture d'écran qui montre le bouton Paramètres.

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

    Capture d'écran qui montre les opérations en arrière-plan.

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

    Capture d'écran qui montre l'état d'exécution du script pour les hôtes.

  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.

    Capture d'écran qui montre la case à cocher pour persister une action de script.

  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.

    Capture d'écran qui montre les types de nœuds sélectionnés.

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/selectiveLoggingScriptsAma/selectiveLoggingScript.sh.

Noms de tables

Pour obtenir la liste complète des noms de tables pour différents types de journaux (sources), consultez Tables de Journaux Azure Monitor.

Syntaxe des paramètres

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

Capture d'écran qui montre la boîte de syntaxe des paramètres.

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