Question Astuces générales pour interpréter les journaux d'erreurs [fermé]


Lire des fichiers journaux peut être assez frustrant, car, par nature, leur contenu en dit autant sur le développeur qui les a écrits comme étant le problème lui-même.

Avez-vous des but général astuces pour interpréter les journaux d’erreur (par exemple: "Google est ton ami" ou "une erreur" codes se produire plus que d'autres "ou" rappelez-vous que les avertissements et les erreurs sont très différentes ")?


4


origine




Réponses:


Laissez les développeurs résoudre les problèmes de production de temps en temps. Cela fera des merveilles pour votre journalisation. :)


5



Drôle, mais extrêmement vrai. Bonne réponse. - ceejayoz
à condition qu'ils résolvent le code de quelqu'un d'autre. Cela rend probablement la situation pire s’ils prennent en charge les leurs ;-) "vous voyez, je ne sais pas de quoi vous vous plaignez. - username


À propos d'une situation courante spécifique lorsque vous avez tous ces éléments en même temps: (1) un problème dans un environnement distribué (2) une énorme pile d'informations de débogage dispersées sur des serveurs et des fichiers de journalisation coopérants (3) pas de documentation pour l'interprétation les logs (4) rien sur google (5) no clue (6) joueurs de ping-pong au lieu du support du vendeur.

  • Tout d’abord, assurez-vous que l’heure est synchronisée dans l’ensemble de l’environnement (ntp). Si ce n'est pas le cas, oubliez d'essayer de trouver des relations entre hôtes à partir de leurs fichiers journaux.
  • Ne ramassez pas une "erreur" aléatoire dans un journal aléatoire à blâmer. Lisez le journal chronologiquement, en vous rappelant que la ligne "erreur" peut aussi bien résulter du fonctionnement normal du logiciel que de toute façon.
  • Comparez les journaux du bon fonctionnement aux journaux de la situation problématique. À quel point ils cessent de correspondre? (vimdiff pourrait être utile)
  • Si, au cours des scénarios de test, vous avez la fonctionnalité pour insérer vos propres messages de journal personnalisés, utilisez-le. (comme logger dans syslog)
  • Lors de l’analyse, si vous vous trouvez en train de basculer entre de nombreux journaux de grande taille et tentez de capter le flux d’actions, essayez de les fusionner. (Utilisez sed pour placer le temps sur la première colonne. Utilisez cat + sort pour fusionner plusieurs fichiers. Et bien sûr, grep -viE pour filtrer les lignes inutiles.)

5





Mon habitude avec les journaux de serveur est la suivante: consultez-les régulièrement, puis examinez / résolvez les problèmes que je trouve. Je le fais de manière proactive, sans attendre que les utilisateurs hurlent au sujet d'une panne système. La principale raison pour laquelle cela est efficace, se résume en réalité à quelques vieux dictons:

Un point à temps en vaut neuf. Évidemment, si vous résolvez des problèmes alors qu'ils sont petits, vous êtes en avance sur la courbe et les utilisateurs / la direction auront moins de raisons de vous crier dessus; c'est une bonne chose.

La pratique rend parfait. Je pense que c'est le plus grand avantage pour l'administrateur système. En vous y rendant régulièrement et en lisant de manière proactive les journaux, vous gagnez en expérience et en familiarité. Vous apprenez ce que signifient ces messages cryptés de journalisation - et qui sont triviaux et qui représentent un gros problème. Le processus d’enquête sur les messages que vous ne comprenez pas tout de suite (qui seront nombreux au début!) Vous en apprend beaucoup sur le fonctionnement interne du système d’exploitation et des applications qui y sont exécutées.

Habituellement, lorsqu'un nouveau système est géré, le journal contient de nombreuses erreurs, dont beaucoup se reproduisent assez régulièrement. L’administrateur précédent les dissimule souvent avec l’effet de "qu’on ne sait pas vraiment de quoi il s’agit, mais les utilisateurs ne se sont jamais plaints, donc je n’ai pas considéré qu’il était suffisamment endommagé pour être réparé!"

Mon objectif avec de tels systèmes est de revoir les journaux chaque semaine jusqu'à ce que j'ai résolu ou compris chaque nouvelle erreur qui survient; puis relâchez mes revues de journal à mensuel. Des journaux propres sont plus faciles à lire!


2





Un bon programme soutient niveaux de journalisation. Et généralement, les journaux ne valent rien sans les horodatages.

La plupart des distributions Linux sont livrées avec un outil logwatch; apprendre à l'utiliser et à configurer ses paramètres d'ignorance. L'astuce consiste à définir le seuil de douleur de manière appropriée, de manière à ce que rien ne soit ignoré, mais pas si spam que les administrateurs écrivent des règles de messagerie dans un fichier et ignorent le courrier de surveillance.


2





Je ne crois pas que des astuces d'usage général puissent être interprétées pour interpréter les journaux d'erreur, sauf que vous devez rechercher chaque erreur au cas par cas, par exemple. avec Google ou en lisant la source, pour le comprendre.

Pour gérer quelque chose comme syslog, en particulier lors de l'agrégation de nombreuses machines, une suggestion d'usage général peut être faite. Conservez une liste des modèles à ignorer et une liste des modèles sur lesquels vous devez immédiatement alerter. Générez un rapport quotidien excluant les messages "ignorer". (Ou même regarder le fichier journal en temps réel en excluant les messages ignorables). Utilisez ce rapport pour ajouter à la liste des ignorés et à la liste des alertes. Pour les modèles identifiés comme de véritables erreurs, envoyez une alerte aux administrateurs en temps réel. Idéalement, votre liste de non-respect devrait être suffisamment complète pour que vous puissiez lire les messages qui vous échappent, et votre liste d’alerte devrait être suffisamment simple pour que vous puissiez enquêter sur chacun de ceux sur lesquels vous êtes alerté. Soyez capable de gérer des flots d'alertes provenant d'un système défectueux que vous ne pouvez pas réparer immédiatement. Il est utile de conserver deux niveaux de motifs supplémentaires: ceux qui méritent d’être examinés mais qui ne risquent pas de poser problème, et ceux qui valent la peine d’être mis en garde, mais qui ne dérangent pas quelqu'un.

Ne pas le faire dans un environnement Unix est probablement la surveillance la plus importante (coûteuse et dommageable) couramment réalisée.


1





Consultez la documentation sur les fichiers journaux que les développeurs ont remis avec l'application.

Quoi? Il n'y a pas de documentation? Temps pour un AttitudeAdjustmentTool

Plus sérieusement, la documentation des fichiers journaux et leur interprétation doivent faire partie des tâches des développeurs. Leur travail n’est pas terminé lorsque le code existe, c’est lorsque les personnes chargées des opérations peuvent exécuter l’application et la maintenir, ce qui signifie documentation, réunions de passation des pouvoirs, conception pour la facilité de gestion, etc.


1





Ne faites pas d'hypothèses sur les fichiers journaux.

Les formats de champs doivent être vérifiés. Par exemple: les dates sont-elles jj / mm / aa ou mm / jj / aa ?; les champs numériques sont-ils décimaux, hexadécimaux, octaux ou autre chose? Les horodatages sont-ils cohérents (d’autres ont mentionné l’importance de la synchronisation entre les périphériques: vérifiez qu’elle a été synchronisée ou déterminez la source d’un horodatage et corrigez-la)?

Est-ce que tous les périphériques / processus se connectent au même niveau de consignation et à l'endroit souhaité?

La journalisation est-elle cohérente entre différentes révisions du même logiciel? (Vérifier que les sorties du journal sont cohérentes avec les versions précédentes et avec la documentation devraient figurer sur la liste pour tester les nouvelles versions du logiciel, mais peuvent être ignorées.)


1