Comment configurer le client RSYSLOG pour envoyer des journaux au serveur RSYSLOG dans CentOS 7

Comment configurer le client RSYSLOG pour envoyer des journaux au serveur RSYSLOG dans CentOS 7

La gestion des journaux est l'un des composants les plus critiques d'une infrastructure réseau. Les messages de journaux sont constamment générés par de nombreux logiciels système, tels que les utilitaires, les applications, les démons, les services liés au réseau, au noyau, aux appareils physiques, etc.

Les fichiers journaux s'avèrent utiles en cas de dépannage des problèmes du système Linux, surveiller le système et examiner la force et les problèmes de sécurité du système.

Rsyslog est un programme de journalisation open source, qui est le mécanisme de journalisation le plus populaire dans un grand nombre de distributions Linux. C'est aussi le service de journalisation par défaut en Centos 7 ou Rhel 7.

Rsyslog Daemon dans CentOS peut être configuré pour s'exécuter en tant que serveur pour collecter les messages de journal à partir de plusieurs périphériques réseau. Ces appareils agissent en tant que clients et sont configurés pour transmettre leurs journaux à un serveur RSYSLOG.

Cependant, le Rsyslog Le service peut également être configuré et démarré en mode client. Cette configuration instruit le démon RSYSLOG pour transférer les messages de journal à un serveur RSYSLOG distant en utilisant les protocoles de transport TCP ou UDP. Le service RSYSLOG peut également être configuré pour s'exécuter en tant que client et en tant que serveur en même temps.

Dans ce tutoriel, nous décrirons comment configurer un Centos / Rhel 7 Rsyslog Daemon pour envoyer des messages de journal à un serveur RSYSLOG distant. Cette configuration garantit que votre espace disque machine peut être conservé pour stocker d'autres données.

L'endroit où presque tous les fichiers journaux sont écrits par défaut dans Centos est le / var chemin du système. Il est également conseillé de toujours créer une partition distincte pour / var répertoire, qui peut être cultivé dynamiquement, afin de ne pas épuiser le /(racine) cloison.

Un Rsyslog Le client envoie toujours les messages de journal en texte brut, si ce n'est pas spécifié autrement. Vous ne devez pas configurer un client RSYSLOG pour transmettre des messages de journal sur Internet ou les réseaux qui ne sont pas sous votre contrôle complet.

Exigences

  1. Centos 7.3 Procédure d'installation
  2. Rhel 7.3 Procédure d'installation
  3. Configurez un serveur RSYSLOG dans CentOS / RHEL 7

Étape 1: Vérifiez l'installation de Rsyslog

1. Par défaut, le démon RSYSLOG est déjà installé et s'exécute dans un système CentOS 7. Afin de vérifier si le service RSYSLOG est présent dans le système, émettez les commandes suivantes.

# RPM -Q | grep rsyslog # rsyslogd -v 
Vérifier l'installation de RSYSLOG

2. Si le package RSYSLOG n'est pas installé dans CentOS, exécutez la commande ci-dessous pour installer le service.

# yum install rsyslog 

Étape 2: Configurer le service RSYSLOG en tant que client

3. Afin d'appliquer le démon Rsyslog installé sur un Centos 7 Système pour agir en tant que client de journal et acheminer tous les messages de journal générés localement vers un serveur RSYSLOG distant, modifiez le fichier de configuration RSYSLOG comme suit:

Ouvrez d'abord le fichier de configuration principale pour l'édition.

# vi / etc / rsyslog.confli 

Ensuite, ajoutez la ligne ci-dessous à la fin du fichier comme illustré dans l'extrait ci-dessous.

*. * @ 192.168.dix.254: 514 

Sur la ligne ci-dessus, assurez-vous de remplacer l'adresse IP du FQDN du serveur RSYSLOG distant en conséquence. La ligne ci-dessus demande au démon Rsyslog d'envoyer tous les messages de journal, quelle que soit l'installation ou la gravité, à l'hôte avec le IP 192.168.dix.254 via 514 / UDP port.

Configurer le client RSYSLOG

4. Si le serveur de journaux distants est configuré pour écouter uniquement sur les connexions TCP ou si vous souhaitez utiliser un protocole de réseau de transport fiable, tel que TCP, ajoutez un autre @ caractère devant l'hôte distant comme indiqué dans l'exemple ci-dessous:

*. * @@ journaux.domaine.LAN: 514 

Le Linux Rsyslog permet également a des caractères spéciaux, tels que = ou !, qui peut être préfixé à des niveaux de priorité pour indiquer «cette priorité uniquement"Pour un signe égal et"pas cette priorité ou plus que cela".

Quelques échantillons de qualifications au niveau prioritaire RSYSLOG dans CentOS 7:

  • kern.Info = journaux du noyau avec priorité d'informations et supérieur.
  • kern.= informations = uniquement les messages du noyau avec priorité d'informations.
  • kern.info; kern.!se tromper = uniquement les messages du noyau avec des informations, des priorités d'avis et des avertissements.
  • kern.débogue; kern.!= avertissement = toutes les priorités du noyau sauf avertissement.
  • kern.* = tous les messages de priorités du noyau.
  • kern.aucun = Ne enregistrez aucun message d'installation de noyau associé quelle que soit la priorité.

Par exemple, en supposant que vous souhaitez envoyer uniquement des messages d'installation spécifiques à un serveur de journal distant, tel que tous les messages de messagerie connexes quel que soit le niveau de priorité, ajoutez la ligne ci-dessous au fichier de configuration RSYSLOG:

poster.* @ 192.168.dix.254: 514 

5. Enfin, afin d'appliquer la nouvelle configuration, le service RSYSLOG doit être redémarré afin que le démon ramasse les modifications, en exécutant la commande ci-dessous:

# systemctl redémarrer rsyslog.service 

6. Si pour certaines raisons, le démon Rsyslog n'est pas activé pendant la période de démarrage, émettez la commande ci-dessous pour activer le système à l'échelle du système:

# SystemCTL Activer RSYSLOG.service 

Étape 3: Envoyez les journaux Apache et Nginx à un serveur de journaux distants

7. Le serveur HTTP Apache peut être configuré pour envoyer des messages de journaux à un serveur Syslog distant en ajoutant la ligne suivante à son fichier de configuration principal comme illustré dans l'exemple ci-dessous.

# vi / etc / httpd / conf / httpd.confli 

Sur le fichier APACHE Main conf, Ajoutez la ligne ci-dessous.

CUSTUMLOG "| / bin / sh -c '/ usr / bin / tee -a / var / log / httpd / httpd-access.Journal | / usr / bin / logger -TTTPD -Plocal1.Remarquez "" combiné 

La ligne appliquera le démon HTTP pour écrire les messages de journal en interne dans le fichier journal du système de fichiers, mais traitera également les messages à travers un utilitaire de tuyau à enregistrer, qui les enverra à un serveur syslog éloigné, en les marquant comme provenant du local1 facilité.

8. Si vous voulez également diriger Apache Les messages du journal d'erreur à un serveur Syslog distant, ajoutez une nouvelle règle comme celle présentée dans l'exemple ci-dessus, mais assurez-vous de remplacer le nom du fichier journal HTTPD et le niveau de gravité du fichier journal pour faire correspondre la priorité d'erreur, comme indiqué dans les éléments suivants goûter:

Errorlog "| / bin / sh -c '/ usr / bin / tee -a / var / log / httpd / httpd-error.Journal | / usr / bin / logger -TTTPD -Plocal1.se tromper'" 

9. Une fois que vous avez ajouté les lignes ci-dessus, vous devez redémarrer le démon Apache pour appliquer les modifications, en émettant la commande suivante:

# SystemCTL Redémarrer HTTPD.service 

dix. À partir de la version 1.7.1, Le serveur Web Nginx a des capacités de reconstitution afin de enregistrer directement ses messages à un serveur Syslog distant, en ajoutant les lignes de code suivantes à un fichier de configuration Nginx.

error_log syslog: server = 192.168.1.10: 514, installation = local7, tag = nginx, gravité = erreur; Access_log syslog: server = 192.168.dix.254: 514, installation = local7, tag = nginx, gravité = info Main; 

Pour un Ipv6 serveur, utilisez le format de syntaxe suivant pour enfermer l'adresse IPv6.

Access_log Syslog: server = [7101: dc7 :: 9]: 514, installation = local7, tag = nginx, gravrity = info; 

11. Sur le serveur Rsyslog distant, vous devez apporter la modification suivante dans le fichier de configuration RSYSLOG, afin de recevoir les journaux envoyés par Apache Web Server.

local1.* @Apache_ip_address: 514 

C'est tout! Vous avez configuré avec succès Rsyslog démon de l'exécution en mode client et, vous avez également instruit Apache http serveur ou Nginx Pour transférer ses messages de journal à un serveur Syslog distant.

Dans le cas où votre système se bloque, vous devriez être en mesure d'étudier le problème en inspectant le contenu des fichiers journaux qui sont stockés sur le serveur Syslog distant.