:::: MENU ::::

Monthly Archives / March 2015

  • Mar 13 / 2015
  • 0
Linux

Send its logs to one server using rsyslog mechanisms (with ssl support)Envoyer ses logs à un serveur en utilisant les mécanismes rsyslog (avec support ssl)

Rysslog is allowing to send its logs from a file on a server to a remote server (or online service) that will collect and maintain all logs.

Assumed server configuration

We will here assume that you have a rsyslog server already running and listening on port 514 (TCP or UDP depending on your needs).
This server is reachable and will be available through this URL (used later in configuration): rsyslog.mycompany.com

Packages Installation

First of all, you have to install rsyslog packages rsyslog and rsyslog-gnutls (specific package for ssl support):

Ensure also that you don’t have any firewall restrictions on your infrastructure that could restrict access from rsyslog.

Rsyslog configuration

So you can use SSL communication, you will first need to retrieve your server certificate. Let’s call it apimyrsyslog.crt
Put it under /etc/ssl/ folder and set its rights to 0644 so it can be read from anyone but not modified.

Once this done, edit a /etc/rsyslog.d/49-myrsyslog.conf file with such a configuration:

Then, log action configuration is depending on rsyslog version:

  • If rsyslog version >=7.0

The “@@” parameter means that you are using TCP. If you prefer UDP, replace with “@” (single).

  • Else if rsyslog version <7.0

Adapt it by changing those fields with correct values:

  • APP_NAME: unique name of log application (e.g. NGinx-Access)
  • LOG_FILEPATH: full path for log file (e.g. /var/log/nginx/access.log)

Rsyslog restart

Finally, you have to restart your rsyslog service so the logs can start to be sent.

You should see within few minutes that a link has been established (you can check with netstat command), and the logs should start to be available on the server side (which is handling them depending on how you configured it, or if it’s an online service as they configured it).Rysslog permet d’envoyer ses logs depuis un fichier sur un serveur vers un serveur distant (ou un service en ligne) qui va collecter et maintenir tous les logs.

Configuration serveur supposée

Nous allons ici supposer que vous avez un serveur rsyslog fonctionnant déjà et écoutant sur le port 514 (TCP ou UDP selon vos besoins).
Ce serveur est atteignable et sera disponible via l’URL (utilisée plus tard dans la configuration) : rsyslog.mycompany.com

Installation des paquets

Vous devez tout d’abord installer les paquets rsyslog suivants : rsyslog et rsyslog-gnutls (paquet spécifique pour le support ssl) :

Assurez-vous également que vous n’avez pas de restrictions de firewall sur votre infrastructure qui pourraient restreindre l’accès pour rsyslog.

Configuration Rsyslog

Afin que vous puissiez utiliser une communication SSL, vous allez tout d’abord devoir récupérer le certificat SSL du serveur. Appelons-le apimyrsyslog.crt
Installez le dans le répertoire /etc/ssl/ et définissez ses droits à 0644 afin qu’il puisse être lu par n’importe qui mais ne puisse pas être modifié.

Une fois que cela est fait, éditez un fichier /etc/rsyslog.d/49-myrsyslog.conf avec une configuration de ce type :

Ensuite, la configuration de l’action de log dépend de la version utilisée pour rsyslog :

  • Si la version de rsyslog >=7.0

Le paramètre “@@” indique que vous utilisez une connexion TCP. Si vous préférez UDP, remplacez par “@” (simple).

  • Sinon si la version de rsyslog < 7.0

Adaptez la configuration en modifiant ces champs avec les bonnes valeurs :

  • APP_NAME: nom unique du log de l’application (e.g. NGinx-Access)
  • LOG_FILEPATH: chemin complet pour le fichier de log (e.g. /var/log/nginx/access.log)

Redémarrage de Rsyslog

Finalement, vous devez redémarrer votre service rsyslog afin que les logs puissent commencer à être envoyés.

Vous devriez voir en quelques minutes qu’une connexion a été établie (vous pouvez vérifier avec la commande netstat), et les logs devraient commencer à être disponibles côté serveur (qui va les gérer selon la configuration que vous aurez faite, ou selon la configuration du service si vous utilisez un service externe).

Question ? Contact