LNAV - Regardez et analysez les journaux Apache à partir d'un terminal Linux

LNAV - Regardez et analysez les journaux Apache à partir d'un terminal Linux

Il y a moins de deux semaines, l'attaque des ransomwares Wannacry a compromis des milliers d'ordinateurs, causant des pertes considérables pour les grandes entreprises et les particuliers. Que, ainsi que d'autres vulnérabilités généralisées trouvées ces dernières années (comme le bogue de shellshock), soulignent l'importance de rester au-dessus de vos systèmes critiques de mission.

Bien que les vulnérabilités ciblent souvent un système d'exploitation ou un composant logiciel spécifique, l'examen du trafic qui entre et hors de votre réseau peut être une aide importante pour protéger les actifs dont vous êtes responsable.

Lire suggérée: 4 Bonnes outils de surveillance et de gestion du journal open source pour Linux

Comme je suis sûr que vous le savez déjà, les journaux système sont le premier endroit où nous devons rechercher ces informations. Pour faciliter cette tâche, dans cet article, nous expliquerons comment installer et utiliser lnav, une visionneuse de fichiers journaux avancés. Avec LNAV, vous pourrez regarder plusieurs types de journaux simultanément, naviguer dans le fichier à l'aide de raccourcis clavier et générer un histogramme résumé d'accès et d'erreurs. Alors continue de lire!

Installation et lancement de LNAV dans Linux

À installer lnav, Utilisez le système de gestion des packages de votre distribution.

# aptitude installer lnav [Debian and Derivatives] # yum installer ePel-Release lnav [Centos 7 et similaire] 

Une fois l'installation terminée, lancez lnav suivi par le chemin absolu vers le répertoire où les journaux à examiner sont situés. Car ce sera généralement / var / log, faisons:

# lnav / var / log / httpd 

Pour inspecter les journaux du serveur Web Apache dans un Centos 7:

Surveillez les journaux Apache dans CentOS 7

Examinons brièvement la sortie indiquée dans l'image précédente:

  • Le coin supérieur droit affiche les fichiers actuellement inspectés (Access_log-20170519 et Access_log). Lorsque vous faites défiler ou vers le haut, vous noterez que les noms de fichiers peuvent changer au fur et à mesure que vous passez de l'un à l'autre.
  • 40x http Réponses (par exemple, Pas trouvé ou Interdit) sont affichés en gras, alors que 20x Les réponses sont affichées dans un texte régulier.
  • Les adresses IP apparaissent dans Bold Green.

Ça a certainement l'air bien, n'est-ce pas? Mais creuons un peu plus loin maintenant, et nous verrons que LNAV offre bien plus qu'une sortie assez couleur.

Si vous êtes curieux de savoir pourquoi les journaux d'erreur ne sont pas affichés, vous trouverez la réponse plus tard dans cet article. Alors continue de lire!

Modification de la sortie avec des options et des raccourcis clavier

Avant de continuer davantage, énumérons quelques raccourcis clavier qui nous permettront de passer plus facilement à la sortie de LNAV et des vues disponibles:

  • e ou E pour passer au message d'erreur suivant / précédent.
  • w ou W pour passer au message d'avertissement suivant / précédent.
  • b ou Arrière Pour passer à la page précédente.
  • Espace pour passer à la page suivante.
  • g ou g pour passer en haut / en bas de la vue actuelle.

Lorsque les journaux sont tournés, les anciens fichiers peuvent être compressés (ou non) en fonction des paramètres spécifiés dans les fichiers de configuration Logrotate. Pour inclure des fichiers compressés dans la sortie, lancez LNAV comme suit:

# lnav -r / var / log / httpd 

Si vous souhaitez examiner de plus près le fonctionnement de LNAV, vous pouvez lancer le programme avec le -d Option suivie d'un nom de fichier où les informations de débogage seront rédigées, comme ainsi:

# lnav / var / log / httpd -d lnav.SMS 

Dans cet exemple, les informations de débogage générées au début du LNAV seront écrites dans un fichier nommé lnav.SMS à l'intérieur du répertoire de travail actuel.

Les premières lignes de ce fichier sont affichées dans l'image suivante:

Informations de débogage Apache

Le texte en surbrillance indique que LNAV a chargé le fichier de formats par défaut et, plus précisément, le Access_log format pour analyser le journal d'accès Apache. De plus, LNAV permet d'analyser chaque ligne de sortie afin que la sortie devienne plus facile à visualiser et à comprendre.

Lire suggérée: Analyseur de journal du serveur Web de GoAccess (un APACHE et NGINX) en temps réel)

Pour utiliser cette fonctionnalité, lancez le programme et choisissez la ligne que vous souhaitez analyser. La ligne sélectionnée est toujours celle en haut de la fenêtre. Puis appuyez p Et vous devriez voir le résultat suivant:

Informations sur l'état de la demande Apache

Pour revenir en mode normal, appuyez sur p encore.

Maintenant, si vous souhaitez voir un résumé des journaux par date et heure, appuyez sur je. Par exemple, le texte en surbrillance indique que le lundi 10 avril, entre 22 h et 23 h, il y avait 37 demandes HTTP avec 14 entraînant des erreurs.

Apache se connecte de jour et d'heure

Une fois que vous avez identifié un problème potentiel basé sur l'histogramme comme indiqué ci-dessus, vous pouvez appuyer je pour quitter la vue pour l'examiner plus en détail en utilisant l'analyseur comme expliqué précédemment. Ou vous pouvez également utiliser les capacités SQL intégrées en tapant un point-virgule et en écrivant une requête standard. Par exemple, faire:

;.schéma 

Pour afficher les tables disponibles dans le schéma de base de données. Après avoir identifié la bonne table (Access_log Dans notre cas), appuyons q puis utilisez la requête suivante pour retourner toutes les informations disponibles sur les demandes provenant de 195.154.230.31:

; Sélectionner * dans Access_log où c_ip = "195.154.230.31 " 
Informations sur le journal apache au format de table

Notez que nous aurions pu également filtrer les résultats par log_time. Le fait est, jetez un petit SQL et le ciel est la limite de ce que vous pouvez faire avec Lnav.

Formats de journal par défaut Apache

De nombreux formats de journal sont chargés par défaut avec lnav et sont ainsi analysés sans notre intervention. Vous pouvez afficher la liste dans la section Formats de journal dans la documentation officielle.

Les formats par défaut sont spécifiés dans ~ /.lnav / formats / par défaut / formats par défaut.json.goûter, et d'autres peuvent être ajoutés ~ /.LNAV / formats en utilisant le .json extension.

Cependant, la modification de ces fichiers nécessite un certain degré de familiarité avec JSON (notation d'objet JavaScript) et avec la bibliothèque PCRE (Perl compatible régulière).

Alors pourquoi LNAV n'a pas affiché les fichiers journaux d'erreur Apache? La raison en est que ces journaux ne correspondent pas aux expressions régulières dans les fichiers de format existant et sont donc traités comme des fichiers texte réguliers (ce qui signifie des fichiers sans format de journal donné).

Lire suggérée: Comment surveiller la charge du serveur Web Apache et les statistiques de la page

Comme mentionné précédemment, vous pouvez créer vos propres formats une fois que vous êtes au moins un peu familier avec JSON et PCRE. Cela peut être utile, par exemple, si vous avez défini les journaux Apache personnalisés.

Résumé

Bien que nous ayons utilisé le journal d'accès Apache pour montrer comment utiliser LNAV, gardez à l'esprit qu'il existe plusieurs autres types de journaux qui peuvent être affichés et analysés à l'aide de cet outil. Si l'outil ne reconnaît pas de journal spécifique, vous pouvez créer des formats supplémentaires et les installer en suivant les indications fournies ici.

Avez-vous des questions ou des commentaires sur cet article? Comme toujours, n'hésitez pas à nous faire savoir en utilisant le formulaire ci-dessous. Nous avons hâte d'avoir de tes nouvelles!