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
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.
Le volet d’action Envoyer un script s’affiche.
Pour le type de script, sélectionnez personnalisé.
Nommez le script. Par exemple, Désactiver deux tables et deux sources.
L’URI du script Bash doit être un lien vers selectiveLoggingScript.sh.
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.
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.
- Spark :
Sélectionnez Create (Créer).
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.
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 :
Sous Tableaux de bord, sélectionnez Ambari home pour vérifier les informations de débogage.
Sélectionnez le bouton Paramètres.
Sélectionnez votre dernière exécution de script en haut de la liste des opérations en arrière-plan.
Vérifiez l’état d’exécution du script dans tous les nœuds individuellement.
Vérifiez si la syntaxe des paramètres de la section de syntaxe de paramètre est correcte.
Vérifiez si l’espace de travail Log Analytics est connecté au cluster et que la surveillance log Analytics est activée.
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.
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.
Assurez-vous que vous avez sélectionné tous les types de nœuds souhaités pour l’action de script.
L'action du script a échoué
Si l’action de script affiche un état d’échec dans l’historique des actions de script :
- Vérifiez si la syntaxe des paramètres de la section de syntaxe de paramètre est correcte.
- 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.
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 tableHDInsightHiveAndLLAPLogs
- Hbase :
InteractiveHiveHSILog
type de journal dans la tableHDInsightHiveAndLLAPLogs
- 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