GNU/Linux >> Tutoriels Linux >  >> Linux

Empêcher la journalisation des Syslogs sous Journalctl ?

J'ai un simple extrait Python géré par un systemd service qui se connecte au rsysogd démon où j'ai défini un fichier de configuration pour le mettre sur un serveur syslog avec un format que j'ai défini. Cela fonctionne bien jusqu'à présent.

Dans le code ci-dessous, je passe l'argument en tant que chaîne que je veux connecter au serveur. J'utilise ce code ci-dessous en tant que module et je l'utilise pour la journalisation seule, le script réel l'utilise à des fins de journalisation.

#!/usr/bin/env python

import syslog
import sys

syslog.openlog(facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, sys.argv[1])

Puisque l'application est gérée par systemd il rend une copie du syslog disponible lorsqu'il est vu depuis le journalctl -xe et le journalctl -u <my-service> ce que je ne souhaite pas qu'il se produise car j'ai d'autres informations critiques que je consigne dans les journaux de journal.

La définition du service est

[Unit]
Description=Computes device foobar availability status

[Service]
Type=simple

EnvironmentFile=/etc/sysconfig/db_EndPoint
ExecStart=/usr/bin/python /opt/foobar/foobar.py
WatchdogSec=60
RestartSec=10
Restart=always
LimitNOFILE=4096

[Install]
WantedBy=default.target

et dans le /etc/systemd/journald.conf fichier, je n'en ai activé aucun des options disponibles. J'ai recherché cette documentation journald.conf pour utiliser ForwardToSyslog=no et a redémarré journald service en tant que

systemctl restart systemd-journald

et également redémarré mon unité de service, mais je vois les journaux vers le serveur syslog et également aux journaux de bord. Quelle option me manque ici ?

Réponse acceptée :

J'ai un extrait Python simple géré par un service systemd qui se connecte au démon rsys[l]ogd […]

Non, vous ne l'avez pas fait.

Ce que vous avez est un service qui se connecte au journal systemd. Le serveur écoutant sur le bien connu /dev/log socket auquel votre programme Python parle n'est pas rsyslogd . C'est systemd-journald . rsyslogd est attaché à l'autre côté de systemd-journald , et votre programme Python ne lui parle pas.

À partir de là, il devrait être évident que le seul moyen de ne pas envoyer de contenu via systemd-journald est d'utiliser un autre route vers rsyslogd , pas le socket bien connu que votre bibliothèque Python utilise par défaut. Tout dépend de la façon dont vous avez configuré rsyslogd .

  • Il est possible que vous ayez activé un serveur UDP avec le imudp module, auquel cas vous pouvez dire à votre programme Python de l'utiliser en utilisant une bibliothèque Python différente qui parle à un tel serveur UDP. (La bibliothèque Python syslog est câblée pour utiliser le socket local bien connu.)
  • Ou (et mieux, étant donné que vous devez faire attention à ne pas ouvrir un service UDP au monde en dehors de votre machine) vous auriez pu donner rsyslogd un second, peu connu, AF_LOCAL socket à écouter en le configurant dans imuxsock configuration du module. Encore une fois, vous devrez dire à votre programme Python de l'utiliser et d'utiliser une autre bibliothèque Python.
Connexe :Comment empêcher Safari de me demander sur chaque site si je veux autoriser les plugins ?

Ce que vous faites exactement dans votre programme Python dépasse le cadre de cette réponse.

Autres lectures

  • https://unix.stackexchange.com/a/294206/5132

Linux
  1. extraire du texte de fichiers MS word en python

  2. Comment empêcher l'arrêt d'un processus d'arrière-plan après la fermeture du client SSH sous Linux

  3. Importation du module Python depuis Bash

  4. Désinstaller python construit à partir de la source ?

  5. Mettre à niveau Python de 2.6 à 2.7 sur Centos 6.5

Installer les packages Python à partir de GitHub sous Linux

Journalctl :comment empêcher le texte de tronquer dans le terminal ?

Qu'est-ce qu'un DDoS et comment empêcher que notre entreprise soit attaquée ?

Comment se connecter à SQL Server à partir de Linux

Exécuter un script Python à partir de PHP

Comment éviter d'aller au SWAP ?