11 septembre 2014 | Posted in:Supervision

L’importance des logs n’est plus à démontrer, néanmoins leur gestion , leur stockage ainsi que leur exploitation  peuvent se révéler plus ardu que prévu. Aujourd’hui je voudrais partager avec vous mon expérience sur ce sujet et la réponse que j’ai trouvé  à plusieurs problématiques.

Exemple de problématiques :

  • Votre serveur web subit une attaque DDOS, le rendant inaccessible ou bien vous en avez perdu le contrôle. Vous ne pouvez plus accéder à vos logs et donc trouver la raison de votre perte de contrôle. Dès que vous remettrez from scratch le service en place il y a de fortes chances que vous reperdiez le contrôle…
  • Vous disposez de plusieurs serveurs mails, comment retrouver la trace rapidement d’un mail traité par un de vos SMTP ?
  • Votre serveur a une panne matérielle, comment pouvoir analyser le syslog si la machine ne démarre plus?
  • Vos développeurs, afin de garantir leur travail, doivent vérifier rapidement et facilement les logs d’erreur de leurs applications sans avoir d accès à la machine de production
  • Meme chose pour un prestataire externe d’un de vos clients.
  • La trop grande écriture des logs et vos obligations contractuelles font que sur le serveur de production et les logs consomment trop d’espace disque.

Voila un exemple des problématiques que nous allons résoudre.

Matériel

Pour du stockage pur de données nous n’aurions pas besoin d’une grosse machine en terme de puissance de calcul. Néanmoins octopussy pour le traitement, l’indexation et la recherche,  lui en demande. Evitez donc les processeurs atom et les faibles quantités de ram. Ayant la plupart de mes serveurs chez ovh (même si je viens de découvrir un belle arnaque de leur part dont je ferai un article dessus) voila ce que je vous recommanderai comme type de serveur :

http://www.soyoustart.com/fr/offres/sys-ip-2.xml

Processeur plus qu’intéressant, capacité de ram plus que nécessaire et un raid 1 de 2To protégeant un peu plus vos données. Avec çà vous avez de quoi faire et stocker.

Installation de octopussy

Présentation

Octopussy est un interface web centralisant vos logs, il permet en autres :

  • D’envoyer des alertes via Mail, jabber, irc …
  • De créer des rapports à intervalle régulier et de les exporter
  • Création de graph pour l’activité de vos logs
  • Supporte : ind, Cisco Router, Cisco Switch, DenyAll Reverse Proxy, Drbd, F5 BigIP, Fortinet FW, Ironport MailServer, Linux Kernel/System, Linux IPTables, Monit, MySQL, Nagios, NetApp NetCache, Juniper Netscreen FW, Juniper Netscreen NSM, Postfix, PostgreSQL, Samhain, Snmpd, Squid, Sshd, Syslog-ng, Windows Snare Agent, Xen…
  • Multilingue
  • Un système permettant d’apprendre à votre octopussy de nouveaux messages logs inconnus

Pré-requis

Il faut avant d’installer octopussy installer quelques paquets.

modifiez votre /etc/apt/source.list pour rajouter les depots non free

ce qui devrait ressembler à cela :

deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free

Nous mettons à jour nos dépôts

apt-get update

et on installe les paquets nécessaires


apt-get install apache2 nscd sudo mysql-server libapache2-mod-perl2 libapache-asp-perl libapp-info-perl libunix-syslog-perl libcrypt-passwdmd5-perl libdbi-perl libdbd-mysql-perl libsys-cpu-perl libmail-sender-perl librrd4 rrdtool htmldoc liblinux-inotify2-perl  libdate-manip-perl libnet-scp-perl libnet-telnet-perl libnet-xmpp-perl libcache-cache-perl libproc-processtable-perl libproc-pid-file-perl libjson-perl libreadonly-perl libregexp-assemble-perl libterm-progressbar-perl liblocale-maketext-lexicon-perl libdatetime-format-strptime-perl libfile-slurp-perl libxml-simple-perl libnet-ldap-perl libconvert-asn1-perl libxml-namespacesupport-perl libxml-sax-perl libxml-libxml-perl

on active certains modules d apache

a2enmod dir
a2enmod ssl

et on applique

apache2ctl graceful

Mise en place

Maintenant nous pouvons télécharger la dernière version du soft

à cette adresse : http://sourceforge.net/projects/syslog-analyzer/files/

wget http://sourceforge.net/projects/syslog-analyzer/files/octopussy_1.0.14_all.deb
dpkg -i octopussy_1.0.14_all.deb

Par défaut l’interface est accessible en https sur le port 8888, je préfére vu que le serveur ne sert qu’à cela le mettre sur le port 80

vim /etc/octopussy/apache2.conf
modifier Listen 8888 en Listen 80

il faut maintenant stopper apache, c’est octopussy qui va lancer apache avec sa propre configuration

/etc/init.d/apache2 stop

on applique le changement et on demarre le apache via octopussy :

/etc/init.d/octopussy web-stop
/etc/init.d/octopussy web-start

Paramétrage de rsyslog coté serveur

Les logs vont arriver via le réseau sur le port 514 en udp ou en tcp. On sécurise un peu la connexion en autorisant que certaines ips ou noms de domaine.

Cela vous permet de choisir le protocole de transfert de l information.
Udp, peu gourmand en ressource réseau car il ne vérifie pas les paquets, on peut donc en perdre, Tcp plus secure mais plus gourmand aussi. Personnellement ca sera du TCP.
vérifier que dans le fichier /etc/rsyslog.conf vous ayez bien cela :

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 127.0.0.1, 192.168.4.0/16, *.admin-systeme.com

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, 192.168.4.0/16, *.admin-systeme.com

 

Maintenant que cela est fait il faut aussi, bien rangé les logs dans votre serveur qui va tout centralisé. En effet, tous les mail.err de vos serveurs s enregistreront dans un seul fichier avec au devant de chaque ligne juste le nom de l hote. Nous allons faire en sorte de tout ranger dans un dossier par hote.

A la fin de votre fichier /etc/rsyslog.conf vous rajouterez


 $template centralislog,”/var/log/%HOSTNAME%/%programname%.log”

Après le template on dit ce que l on veut que ce dernier check, dans mon cas tous les logs qui lui arrive, on rajoute :

 *.*                                                     ?centralislog;RSYSLOG_TraditionalFileFormat

RSYSLOG_TraditionalFileFormat étant le format d écriture dans le fichier de log.

si vous effectuez un changement pensez à bien redémarrer le service

/etc/init.d/rsyslog restart

Paramétrage rsyslog coté client

On va dire que dans mon cas le serveur de log a pour ip 192.168.4.100 Il suffit d éditez aussi le fichier /etc/rsyslog.conf et de rajouter

*.* @@192.168.4.100:514

@ pour passer par le protocole UDP

@@ pour le protocole TCP

/etc/init.d/rsyslog restart

Accéder à Octopussy

il vous reste plus qu’à vous rendre sur votre nom de domaine ou votre ip en https
https://tonip/

le login de base est admin et le mot de passe admin

 

Conclusion

Vous avez maintenant un système de gestion, de tri et de consultation de logs bien plus user friendly. Grâce à lui vous gagnerez en temps.

Si vous n’êtes toujours pas convaincu, voila un autre exemple de l’intérêt d’un tel système. Pour un projet nécessitant des accès disques ultra rapide en lecture seule,
vous investissez dans un serveur avec des disques SSD. Comme vous le savez le point faible des disques SSD. Les cellules de mémoire flash s’usent au fur et à mesure de leur utilisation. Il existe plusieurs types de cellules, on parle par exemple de 100000 cycles lecture/écriture pour les mémoires SLC, alors que les puces MLC supporteraient uniquement 10000 cycles.
Et dans un serveur, ce qui consomme le plus en écriture, ce sont les logs. En allant écrire les logs sur un autre serveur via le réseau, vous augmentez la durée de vie de votre investissement…

lien vers le projet : http://www.8pussy.org

 

8 Comments

  1. Tristan
    23 février 2015

    Dude, it would have been nice if you wrote it in international language 🙂 greez

  2. admin
    23 février 2015

    Thanks dude but my english is slimeball but promise I work it

  3. chronax
    3 mars 2015

    Bonjour,

    j’ai un soucis de dependace on dirait !
    Sélection du paquet octopussy précédemment désélectionné.
    (Lecture de la base de données… 58854 fichiers et répertoires déjà installés.)
    Dépaquetage de octopussy (à partir de octopussy_1.0.14_all.deb) …
    dpkg: des problèmes de dépendances empêchent la configuration de octopussy :
    octopussy dépend de libmail-sender-perl ; cependant :
    Le paquet libmail-sender-perl n’est pas installé.
    …………
    Des erreurs ont été rencontrées pendant l’exécution :
    octopussy

    Ça serait pas plutôt libemail-sender-perl ??

  4. chronax
    3 mars 2015

    je voulais dire libmail-sendmail-perl…
    désolé !!

  5. admin
    6 mars 2015

    Salut dsl du tps de reponse j étais un chouille okp tu es sur une deban 7 c est donc bien ce paquet qu il manque ?
    https://packages.debian.org/fr/wheezy/libmail-sendmail-perl
    Tu as tente de faire un apt-get install du paquet?

  6. patricklbs
    29 mars 2015

    @chronax

    Il faut rajouter ces dépots dans les source list :

    deb http://ftp.fr.debian.org/debian/ squeeze non-free
    deb-src http://ftp.fr.debian.org/debian/ squeeze non-free

    Comme indiqué dans la doc officielle :

    http://www.octopussy.pm/documentation/guides/administrator_guide/01_installation

  7. fares
    11 avril 2016

    je resu ces messages

    root@mail:~# /etc/init.d/octopussy web-stop
    [Mon Apr 11 13:50:11.938288 2016] [core:warn] [pid 20330] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
    AH00534: apache2: Configuration error: No MPM loaded.
    octopussy Web Stopped.
    root@mail:~# /etc/init.d/octopussy web-start
    AH00534: apache2: Configuration error: No MPM loaded.
    octopussy Web Started.

  8. admin
    11 avril 2016

    tu as quel version d os et d octopussy? t es passé par les dépots pour l installer ou via les sources?

Leave a Reply


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*