web-dev-qa-db-fra.com

Envoi de paquets UDP avec la commande `logger`

J'ai plusieurs solutions différentes pour exécuter un serveur syslog personnalisé (basé sur https://Gist.github.com/marcelom/421801 ).

Le problème auquel je suis confronté est que la commande suivante n'envoie pas de paquets UDP au serveur:

logger -n 127.0.0.1 -P 514 "Test message"

Est-ce que j'envoie correctement un message de test?

Des idées sur ce que je fais mal? Les scripts devraient apparemment fonctionner, mais je ne suis pas en mesure de confirmer qu'ils fonctionnent pendant les tests.

EDIT: J'ai confirmé que le récepteur syslog recevait bien les messages envoyés avec le protocole UDP. Ainsi, j'ai aussi clarifié la question en supprimant cette pièce.

7
Tadeck

J'ai perdu un peu de raison en essayant de comprendre pourquoi je ne pouvais pas me connecter à différentes machines pour tester notre journalisation à distance hier

Il s'avère que le paquetage principal util-linux/bsdutils qui contient "logger", a la version 2.20.1 installée et que cette version ignore le commutateur -n en mode silencieux. C'est ce que j'ai découvert:

  • Toutes les versions les plus récentes de l’enregistreur 2.21 à 2.24 sont compilées et fonctionnent correctement.
  • La version 2.20.1 fonctionne correctement mais ignore le commutateur -n, tout comme la version installée.
  • Tous les Ubuntu de 12.04 à "y compris" "contiennent tous 2.20.1 :(

SOLUTION:

Obtenez le dernier util-linux de: ftp://ftp.kernel.org/pub/linux/utils/util-linux/

Décompressez, ./configure, créez et copiez le binaire de ./misc-utils/logger dans/usr/local/bin/logger.

Vous devrez peut-être actualiser votre shell, par exemple "source ~/.bashrc" pour la version/usr/local/bin à mordre. Confirmez que le nouvel enregistreur est installé avec "enregistreur -V" où il devrait PAS dire " logger de util-linux 2.20.1 "plus.

7
MattiasF

Une autre solution avec netcat:

echo -n "test message" | nc -4u -w1 <Host> <udp port>

6
sebana