Agence web » Actualités du digital » Comment configurer RSysLog avec Loggly

Comment configurer RSysLog avec Loggly

Dans le système d'exploitation Linux, de nombreuses applications envoient des journaux à syslog, le principal mécanisme de journalisation. Les meilleures pratiques de sécurité dictent souvent qu'il est idéal d'envoyer vos journaux à un système distinct, comme Loggly, une solution SaaS pour la gestion des données de journaux.

Il y a plusieurs raisons à cela, mais les principales sont:

  • Sauvegarde des données de journal critiques
  • Possibilité de vérifier l'intégrité des journaux et de détecter les modifications de données
  • Consolidation des journaux entre les systèmes

Loggly possède de nombreuses fonctionnalités, comme indiqué ci-dessous, mais une fonctionnalité en particulier est la capacité de déploiement sans agent de Loggly.

  • Surveillance de plusieurs systèmes cloud, journaux internes et journaux d'applications
  • Intégration avec des systèmes tiers, tels que Slack, GitHub ou PagerDuty
  • Analyse et visualisation des données à l'aide de graphiques et d'indicateurs de performance clés
  • Déploiement sans agent

Dans cet article, nous allons expliquer comment intégrer Loggly à rsyslog, un remplacement commun et puissant de syslogd. Cela signifie qu'aucun agent n'est requis sur un système Linux et rsyslog peut être configuré pour envoyer directement les journaux à Loggly.

Installation de rsyslog

De nombreux systèmes sont livrés avec rsyslog préinstallé, mais si ce n'est pas le cas, quelques étapes sont nécessaires pour l'installation. Même si rsyslog est couramment inclus dans les référentiels de nombreuses distributions, ce n'est peut-être pas la dernière version. Dans cet article, Ubuntu est la distribution de choix, notamment celle du 18.04. Les instructions pour d'autres distributions se trouvent ici.

Cette section peut indiquer l'installation à partir des sources, mais les référentiels répertoriés vous permettront d'installer les dernières versions du package.

Ajout du référentiel rsyslog

Dans le cas d'Ubuntu, nous devons ajouter le référentiel Adiscon PPA.

apt-get update && apt-get install -y software-properties-common
add-apt-repository -y ppa:adiscon/v8-stable

Installation de rsyslog

Il y a deux packages principaux que nous devons installer pour rsyslog. Au-delà du package de base lui-même, le rsyslog-gnutls package nous permet d'utiliser une connexion cryptée au service Loggly.

apt-get update
apt-get install rsyslog
apt-get install rsyslog-gnutls

Ajout des certificats TLS loggly

Avant de configurer rsyslog avec TLS, nous devons d'abord télécharger et rendre accessibles les certificats Loggly.

sudo mkdir /etc/rsyslog.d/keys/ca.d
wget -O /etc/rsyslog.d/keys/ca.d/logs-01.loggly.com_sha12.crt 

Vérification des autorisations du répertoire de travail

Dans certains cas, le /var/spool/rsyslog les autorisations sont incorrectes et le code suivant vérifiera que les autorisations sont définies correctement (dans le contexte d'Ubuntu 18.04).

sudo chown -R syslog:adm /var/spool/rsyslog
sudo chmod -R 644 /var/spool/rsyslog

Configuration de Loggly

Au fil du temps, les directives de configuration et la syntaxe ont changé pour rsyslog. Souvent, il existe un mélange d'anciennes et de nouvelles directives disponibles. Vous trouverez ci-dessous une configuration par défaut pour rsyslog utilisant uniquement la nouvelle syntaxe. La principale raison de modifier cette configuration est de pointer rsyslog vers le certificat que nous venons de télécharger.

#################
#### MODULES ####
#################

module( load="imuxsock" )
module( load="imklog" )
module( load="builtin:omfile"
        fileOwner="syslog"
        fileGroup="adm"
        fileCreateMode="0644"
        dirOwner="syslog"
        dirGroup="adm"
        dirCreateMode="0755"
)
module( load="impstats"
        interval="600"
        severity="7"
        log.syslog="off"
        log.file="/var/log/rsyslog_stats.log"
)

###########################
#### GLOBAL DIRECTIVES ####
###########################

global (
    maxMessageSize="64k"
    defaultNetstreamDriverCAFile="/etc/rsyslog.d/keys/ca.d/logs-01.loggly.com_sha12.crt"
    defaultNetstreamDriver="gtls"
    workDirectory="/var/spool/rsyslog"
)

#
# Include all config files in /etc/rsyslog.d/
#
include(file="/etc/rsyslog.d/*.conf")

La partie importante du code est la defaultNetstreamDriverCAFile et defaultNetstreamDriver. Ces directives doivent être configurées correctement pour pointer vers le certificat téléchargé.

Après vous être connecté à votre compte Loggly, vous devrez créer un jeton client. Il se trouve sous Configuration source> Jetons client. Comme il y a une nouvelle interface utilisateur à venir, voici des captures d'écran pour les anciennes et les nouvelles interfaces.

Nouvelle interface utilisateur.
Ancienne interface utilisateur.

Une fois que vous avez accédé aux jetons client, cliquez sur le bouton «Ajouter un nouveau» pour générer un nouveau jeton. Il est préférable de donner une description à ce jeton.

Enfin, vous aurez un jeton que vous pourrez utiliser. Copiez-le pour une utilisation ultérieure dans nos fichiers de configuration.

Configuration de rsyslog pour Loggly

La dernière étape pour configurer rsyslog pour Loggly est de définir notre fichier de configuration et de redémarrer rsyslog. Voici un fichier de configuration par défaut situé dans /etc/rsyslog.d/22-remote.conf qui dira à rsyslog d'envoyer syslog événements à Loggly.

Le nombre 22 n'est pas important, c'est simplement un moyen de définir l'ordre de chargement des fichiers de configuration. Choisissez un nombre qui a du sens dans votre configuration.

template(
    name="LogglyFormat"
    type="string"
    string="<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% (ca35d899-0232-4888-a8d5-118fbf5caf8d tag=\"RsyslogTLS\") %msg%\n"
)

# Send all Syslog Messages to Remote
action(
    type="omfwd"
    protocol="tcp"
    target="logs-01.loggly.com"
    port="6514"
    template="LogglyFormat"
    StreamDriver="gtls"
    StreamDriverMode="1"
    StreamDriverAuthMode="x509/name"
    StreamDriverPermittedPeers="*.loggly.com"
    ResendLastMSGOnReconnect="on"
    queue.spoolDirectory="/var/spool/rsyslog"
    queue.filename="queue_sendToLoggly"
    queue.size="5000"
    queue.dequeuebatchsize="300"
    queue.highwatermark="4500"
    queue.lowwatermark="3500"
    queue.maxdiskspace="1g"
    queue.saveonshutdown="on"
    queue.type="LinkedList"
)

Dans cette configuration, nous définissons le format d'envoi des journaux, ce qui aide Loggly à classer correctement les journaux. le action la configuration est pour envoyer tous Syslog par défaut à Loggly. Enfin, pour que cette configuration prenne effet, nous devons redémarrer rsyslog.

sudo service rsyslog restart

Dépannage de rsyslog

Si vous rencontrez des problèmes avec la configuration, qui ont tendance à être des autorisations ou une mauvaise configuration, vous pouvez afficher le journal actuel ici: /var/log/rsyslog.log. De plus, pour activer un niveau de journalisation plus élevé, ajoutez les lignes suivantes à votre rsyslog.conf déposer et redémarrer rsyslog.

$DebugFile /var/log/rsyslog_debug.log
$DebugLevel 2

Conclusion

La combinaison de rsyslog et Loggly est puissante. Vous permettre de consolider, valider et analyser vos journaux est important pour maintenir une posture de sécurité appropriée. Vous constaterez rapidement que les fonctionnalités avancées de Loggly valent bien la configuration lorsqu'elles sont utilisées conjointement avec votre configuration de journalisation avancée pour rsyslog.

★★★★★