Un module Puppet pour configurer Papertrail et Rsyslog

Papertrail au même titre que loggly, logentries, logstash est une solution permettant de centraliser ses logs. L'interface web plutôt sexy facilite l'agrégation, la recherche, l'analyse et la détection des problèmes sur son infrastructure via les journaux.

Voici un module Puppet que j'ai développé afin de déployer rapidement cette solution. Il ne fonctionne pour le moment qu'avec Rsyslog (installé de base sur Debian). TLS est utilisé par défaut afin de chiffrer les communications entre votre machine et Papertrail.

Toutes les contributions afin de supporter d'autres logger tels que syslog-ng, remote_syslog sont appréciées.

Installation :

Cloner le dépôt suivant dans votre dossier contenant vos modules Puppet :

git clone git://github.com/Benjamin-Ds/puppet-module-papertrail.git papertrail

Ou ajoutez le en tant que sous module Git :

git submodule add git://github.com/Benjamin-Ds/puppet-module-papertrail.git papertrail
git submodule init --update

Utilisation :

node nodename {
    class { 
        'papertrail': 
        port => 12345,
        optional_files => ['/var/log/daemon.log', '/var/log/nginx/error.log'] 
    }
}

Ou sans puppet master :

puppet apply -e "class { 'papertrail': optional_files => ['/var/log/daemon.log', '/var/log/auth.log'], port => 1234 }"

Liens utiles :

Désactiver le swap via Puppet

En ce moment je m'amuse pas mal avec Puppet pour déployer et maintenir mon infrastructure.

Pour une de mes configurations j'ai eu besoin de désactiver le swap. Après quelques recherches, voici la manière la plus simple que j'ai pu trouver ici pour réaliser cette opération :

define swap($ensure = present) { 
    
    Exec {
        path => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'],
    }
    
    if $ensure == present { 
        exec { 
            'swap-on': 
            command => 'swapon -a', 
            unless => 'grep partition /proc/swaps' 
        } 
    } else { 
        exec { 
            'swap-off': 
            command => 'swapoff -a', 
            onlyif => 'grep partition /proc/swaps' 
        } 
    }
}

Utilisation :

swap { 
    'swap': 
    ensure => 'absent'
}

Si vous avez d'autres méthodes, je suis preneur !

Tester ses VCL Varnish

Voici comment vérifier la syntaxe de ses VCL Varnish avant de relancer le service :

/usr/sbin/varnishd -d -f /etc/varnish/default.vcl

Ou bien :

/usr/sbin/varnishd -C -f /etc/varnish/default.vcl

Screen, les commandes de base

Quelques notes à propos de l'utilisation de screen.

  • Créer une session : screen
  • Lister les sessions : screen -ls ou ctrl-a + w
  • Attacher une session : screen -r [session]
  • Screen suivante / précédent : ctrl-a + n et ctrl-a + p
  • Détacher une session : ctrl-a + d
  • Fermer la session (kill) : ctrl-a + k
  • Aide : ctrl-a ?

Une liste plus complète est disponible ici

Une alternative à screen : tmux.

Lister les ports ouverts et les services réseaux en écoute sur Linux

Voici comment lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat.

netstat -lntup

La sortie sera dans ce style :

Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      30515/redis-server
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4508/nginx
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      14355/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      19448/sshd
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      14355/named
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      26726/exim4
tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN      28321/nrpe
tcp6       0      0 ::1:53                  :::*                    LISTEN      14355/named
tcp6       0      0 :::22                   :::*                    LISTEN      19448/sshd
tcp6       0      0 ::1:953                 :::*                    LISTEN      14355/named
tcp6       0      0 ::1:25                  :::*                    LISTEN      26726/exim4
udp        0      0 127.0.0.1:53            0.0.0.0:*                           14355/named
udp        0      0 127.0.0.1:921           0.0.0.0:*                           14283/lwresd
udp6       0      0 ::1:53                  :::*                                14355/named

Il est également possible (et plus court) d'obtenir la même information grâce à la commande ss :

ss -l