Comment puis-je recevoir des journaux syslog d'un système en réseau?

23

Je voudrais configurer Ubuntu pour recevoir des journaux d'un routeur DD-WRT. L'écran de configuration du routeur contient la section suivante:

Journal système DD-WRT

et sa documentation de journalisation se lit comme suit:

Si vous souhaitez envoyer des journaux à un système distant, entrez l'adresse IP de cette machine qui exécute également un utilitaire syslog (il a besoin d'une prise réseau ouverte pour accepter les journaux envoyés par le routeur).

Je n'ai jamais (sciemment) utilisé syslog auparavant. Que dois-je faire dans Ubuntu pour lui permettre de recevoir ces journaux?

ændrük
la source
Mon Motorola Surfboard Extreme SBG901 semble avoir des paramètres similaires à votre DD-WRT. Je pensais juste ajouter ce mot-clé pour que les autres googlent pour cette question / réponse.
plaques de cuisson

Réponses:

23

L'hôte qui reçoit les journaux devra exécuter un démon syslog configuré pour écouter les journaux distants. Il existe un certain nombre d'implémentations syslog dans Ubuntu, mais elles rsyslogsont généralement recommandées et doivent être installées par défaut. Je ne peux pas dire à partir de la documentation du lien que vous avez publié si DD-WRT envoie des journaux via TCP ou UDP, donc cela peut nécessiter une certaine expérimentation pour trouver précisément les paramètres corrects, si vous souhaitez réduire le nombre de réseaux accessibles ports sur votre hôte.

Il existe deux façons d'activer ceci: la première est plus simple, mais peut nécessiter une réintégration lorsque le système est mis à niveau. Le second est légèrement plus compliqué et peut entraîner des résultats confus s'il y a des changements importants dans la configuration syslog dans le cadre d'une mise à jour. Je choisirais la seconde, mais votre préférence peut varier.

La première consiste à modifier /etc/rsyslogd.confet à supprimer l'initiale #des lignes suivantes:

# $ ModLoad imudp
# $ UDPServerRun 514

ou

# $ ModLoad imtcp
# $ InputTCPServerRun 514

La seconde consiste à créer un nouveau fichier, peut-être nommé local-enable-tcp.confdans /etc/rsyslog.d/, avec le contenu suivant:

# activer la réception TCP syslog
$ ModLoad imtcp
$ InputTCPServerRun 514

Si vous souhaitez utiliser l'approche de fichier séparé et avez besoin d'UDP, modifiez le contenu pour qu'il corresponde à la strophe UDP ci-dessus. Le nom de fichier spécifique n'est pas important, mais il est recommandé de le démarrer avec "local-" car cet espace de noms est réservé à la configuration de l'administrateur local, et il doit se terminer par ".conf", car seuls les fichiers se terminant comme celui-ci sont automatiquement inclus dans le configuration de rsyslog.

Si vous préférez utiliser une autre implémentation syslog, vérifiez la configuration et la documentation de cette implémentation: il est probable que le démon syslog est configuré pour ne pas écouter sur le réseau par défaut, mais un exemple de configuration pour activer ce cas commun doit être clairement documenté.

Emmet Hikory
la source
1
Ce devrait être une bonne idée de commencer le nom du fichier avec un numéro à deux chiffres, d'établir l'ordre par rapport aux autres fichiers .conf existants.
enzotib
Hé, ça peut être compliqué. Il n'y a aucune raison pour qu'un nom de package ne puisse pas commencer par un nombre à deux chiffres, et .d / $ {package} - .conf sont tous réservés aux packages (bien qu'il soit peu probable qu'il y ait un conflit pour par exemple 72-local-myconf.conf ). Deuxièmement, il est important d'essayer d'écrire des fichiers de configuration de sorte que la commande ne soit pas critique. Par exemple, un fichier de configuration fourni par 0access.conf à partir du package hypothétique "0access" serait appliqué avant la plupart des fichiers de configuration commençant par un nombre à deux chiffres.
Emmet Hikory
1
Vous devrez peut-être également modifier la propriété de votre fichier journal: sudo chown syslog:adm /var/log/syslogou tout ce que vous avez nommé votre fichier journal.
plaques de cuisson du
6

Une autre option est d'utiliser syslog-ng, facile à utiliser et jusqu'à présent prêt à l'emploi!

sudo apt-get install syslog-ng

Après l'avoir installé, nous avons un fichier conf dans /etc/syslog-ng/syslog-ng.conf Donc, modifiez simplement ce .conf avec nos paramètres, mais avant cela, faites une sauvegarde du fichier de configuration par défaut, peut être utile plus tard si vous voulez régler certains paramètres

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

Créez maintenant un nouveau fichier de configuration et éditez-le!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Donc, collez simplement cette configuration de base pour travailler également:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Facile comme vous pouvez le voir. Prends soin!

Alvarova
la source
-2

Fondamentalement, vous exécutez un démon (appelé syslogd) sur votre serveur pour que le routeur dd-wrt publie les journaux.

Tutoriel- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/

user606723
la source
5
Évitez de poster l'adresse d'un ancien guide, sans même vérifier si leurs instructions sont toujours valables. Les fichiers nommés dans le guide n'existent plus. Ubuntu utilise rsyslog.
enzotib
@enzotib - Bien que je convienne qu'il manque de qualité et que les liens doivent être évités, il s'avère que cette réponse a fourni exactement ce dont j'avais besoin pour accomplir la même tâche sur un serveur Ubuntu 8.04. Il y a trois réponses ici, toutes pour trois variantes différentes de syslog qui sont toujours utilisées dans les systèmes de production . Cette réponse était utile. Il obtient un +1 de ma part.
ghoti
C'est vrai, mais c'est essentiellement une réponse de lien uniquement.
Duncan X Simpson