Logwatch est un outil très puissant qui permet de garder un oeil sur les logs de son serveur.

Celui-ci prépare régulièrement un aperçu de ce qui se passe sur le serveur et peut dans le cas échéant envoyé un récapitulatif par email a la personne responsable.

Malheureusement si votre serveur est administré à l’aide de l’outil plesk, Logwatch ne renvoie pas correctement les données des sites héberger sur celui-ci.

Dans se dossier, nous allons installer logwatch, le configurer et exécuter un petit script qui ajoutera les domaines créer sous plesk dans la liste des éléments a traité.

Installer Logwatch sous Ubuntu.

Logwatch peut être installé facilement via la commande suivante:

apt-get update && apt-get install logwatch

Ensuite nous allons ajuster ses paramétres pour récevoir par émail le récapitulatif des logs.

nano /usr/share/logwatch/default.conf/logwatch.conf

 

A l’aide de l’éditeur Nano nous allons changer les paramètres suivants:

Format=html

Mailto=votreadresseemail@votre domaine

detail=Med

Un fichier script pour Logwatch sous Plesk.

Nous allons maintenant créer le script qui ajoutera automatiquement les nouveaux domaines créer sous plesk dans la liste des éléments à traiter par LogWatch.

De nouveau a l’aide de Nano nous allons créer un nouveau fichier:

nano /usr/sbin/logwatch_domains

Pour ensuite copier coller le code suivant:

#!/bin/bash

###########################################################################
## Script to create conf files and script links on a Plesk
## server that monitor all the apache log files
##
## Visit blog.surgeons.org.uk for updates
##
## mod jrc 280313 - rob cain - http://systemcore.co.uk :
## created this working version (scl_mk_vhosts_logwatch_configs.sh)
## from original draft http://blog.surgeons.org.uk/2008/02/monitoring-all-virtual-hosts-on-plesk.html
## by Neville Dastur (160208)
##
############################################################################

## Location of the virtual hosts directories
vhost_root=/var/www/vhosts/system/

## Various logwatch directories
dir_services="/etc/logwatch/conf/services"
dir_logfiles="/etc/logwatch/conf/logfiles"
dir_scripts="/etc/logwatch/scripts/services"
http_script="/usr/share/logwatch/scripts/services/http"

## Now iter over each directory
for domain in $( ls -Ichroot -Idefault $vhost_root ); do
if [ -d "${vhost_root}${domain}" ]
then
echo "Making services logwatch entries for ${domain}"
domain_us=`echo $domain | tr . _ | tr '[:upper:]' '[:lower:]'`
(
cat << END_OF_SERVICES_CONF

###########################################################################
# Configuration file for $domain http filter
# See blog.surgeons.org.uk for updates
###########################################################################
Title = "httpd - $domain"

# Which logfile group...
LogFile = http_$domain_us
END_OF_SERVICES_CONF
) > ${dir_services}/http_${domain_us}.conf

echo "Making logfiles logwatch entries for ${domain}"
(
cat << END_OF_LOGFILES_CONF
########################################################
# Define log file group for http_$domain_us
# See blog.surgeons.org.uk for updates
#######################################################
LogFile = /var/www/vhosts/system/$domain/logs/access_log
LogFile = /var/www/vhosts/system/$domain/logs/access_log.processed
LogFile = /var/www/vhosts/system/$domain/logs/access_ssl_log
LogFile = /var/www/vhosts/system/$domain/logs/access_ssl_log.processed

# If the archives are searched, here is one or more line
# (optionally containing wildcards) that tell where they are...
# If you use a "-" in naming add that as well -mgt

Archive = /var/www/vhosts/system/$domain/logs/access_log.processed.?.gz
Archive = /var/www/vhosts/system/$domain/logs/access_ssl_log.processed.?.gz

# Expand the repeats (actually just removes them now)
*ExpandRepeats

# Keep only the lines in the proper date range...
*ApplyhttpDate
END_OF_LOGFILES_CONF
) > ${dir_logfiles}/http_${domain_us}.conf

## Make the script links
if [[ -s ${dir_scripts}/http_${domain_us} ]] ; then
echo "Script link for ${domain} already exists. Skipping..."
else
echo "Creating script link for ${domain}"
ln -s ${http_script} ${dir_scripts}/http_${domain_us}
fi

fi

done

Après avoir sauvegardé, nous allons le rendre exécutable a l’aide de la commande suivante:

chmod + x /usr/sbin/logwatch_domains

Enfin nous allons ajouter celui-ci a la tache cron qui exécute logwatch afin que notre script scanne et ajoute le cas échéant le traitement de nouveau domaine.

Votre tache cron doit ressembler à ceci:

#! / Bin / bash

#Check Si retiré-mais-pas-purgé
essai -x /usr/share/logwatch/scripts/logwatch.pl || exit 0

Scripts #Renew Plesk
/ usr / sbin / logwatch_domains

#execute
/ usr / sbin / logwatch --detail haute --format html --mailto votreemail@votredomaine

#Note: Il est possible de forcer le destinataire dans la commande ci-dessus
#Just passer --mailto address@a.com la place du courrier --output

Bonne lecture de vos logs ! Personnellement chaque matin avec un bon café 😉

Photo by xmodulo

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.