web-dev-qa-db-fra.com

Comment activer SysLogd d'accepter des connexions entrantes sur Snow Leopard à partir d'enregistreurs distants?

Comment puis-je obtenir SysLogd pour accepter les connexions entrantes des hôtes distants sur Snow Leopard?

J'aimerais centraliser la journalisation de manière à ce que divers appareils et systèmes envoient des journaux à Syslogd de Snow Leopard, qui sortent normalement sur UDP 514. Cependant, je ne peux pas les amener à être acceptée avec succès par Good Ole Syslogd. Je tcpdumped sur la boîte à neige de la neige pour vérifier que les paquets sont en train d'être jaillis au port 514 - ils sont. J'ai vérifié que Syslogd écoute le 514 - ce n'est pas le cas.

Googling autour m'a dit que, sur les anciennes versions d'OSX (n'habitez-vous pas que les choses changent si rapidement sur OSX), il suffit d'ajouter un drapeau au démon SysLogd pour autoriser la télécommande; On l'a fait dans com.apple.syslogd.plist. Cependant, le démon SysLogd n'a pas de drapeaux (au moins dans sa page de manuel) qui suggère tout autre chose à distance.

Quelle est la solution à cela?

Secondaire, moins importé, mais question pertinente: Qu'est-ce que "NewsysLog"? Je vois un fichier de plis mais ça ne marche pas (apparemment).

Merci

11
Emmel

Je n'ai pas essayé cela, mais j'ai regardé dans la plis pour Syslogd (/system/library/launchdaemons/com.apple.syslogd.plist) et voir cette partie a commenté:

<!--
        Un-comment the following lines to enable the network syslog protocol listener.
-->
<!--
        <key>NetworkListener</key>
        <dict>
                <key>SockServiceName</key>
                <string>syslog</string>
                <key>SockType</key>
                <string>dgram</string>
        </dict>
-->

Supprimez les commentaires, puis rechargez le service:

$ Sudo launchctl unload /System/Library/LaunchDaemons/com.Apple.syslogd.plist
$ Sudo launchctl load /System/Library/LaunchDaemons/com.Apple.syslogd.plist

et vous êtes probablement sur votre chemin.


Réponse à votre question secondaire - newsyslog est similaire à logrotate souvent trouvé sur les systèmes Linux. man newsyslog (ou en ligne ) vous en dira plus.

Comme installé avec le léopard des neiges, il est exécuté toutes les 30 minutes par launchd par ce bit dans sa plis:

<key>StartCalendarInterval</key>
<dict>
    <key>Minute</key>
    <integer>30</integer>
</dict>
5
Doug Harris

Notez que si vous essayez de le faire sur un Snow Leopard Server Machine (au moins avec 10.6.4), Vous constaterez qu'il n'y a pas de section commentée dans /system/library/launchdaemons/com.apple.syslogd.plist (et que le fichier de plis est stocké dans un format binaire).

Cependant, copier et coller la clé que Doug citations ci-dessus fera l'affaire, bien que d'abord, vous devrez donc convertir le format du fichier en texte:

Sudo plutil -convert xml1 /System/Library/LaunchDaemons/com.Apple.syslogd.plist

... et vous devriez probablement le convertir après (les conversions se produisent in situ):

Sudo plutil -convert binary1 /System/Library/LaunchDaemons/com.Apple.syslogd.plist

... puis rechargez le démon de lancier par Doug.

Ensuite, le fichier de plis complet devrait se lire comme suit:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>HopefullyExitsLast</key>
    <true/>
    <key>Label</key>
    <string>com.Apple.syslogd</string>
    <key>MachServices</key>
    <dict>
        <key>com.Apple.system.logger</key>
        <true/>
    </dict>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/syslogd</string>
    </array>
    <key>Sockets</key>
    <dict>
        <key>AppleSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/asl_input</string>
        </dict>
        <key>BSDSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
        <key>NetworkListener</key>
        <dict>
            <key>SockServiceName</key>
            <string>syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
    </dict>
</dict>
</plist>

Une note de plus: si, comme moi, vous souhaitez envoyer des sorties syslog de vos stations de base de l'aéroport '(et/ou capsules horaires') sur votre serveur, elles utilisent la fonction 0, qui ne peut pas être modifiée. . Cela signifie qu'ils seront automatiquement connectés à /var/log/appfirewall.log en raison de l'entrée par défaut suivante dans /etc/syslog.conf:

local0.*                                               /var/log/appfirewall.log

Sur la version du serveur du système d'exploitation, vous pouvez modifier en toute sécurité le nom de fichier en termes de fichier. Airport.Log Une fois que vous avez publié la commande suivante:

Sudo touch /var/log/AirPort.log

... Depuis que le pare-feu d'application d'Apple (SocketFilterfw) est désactivé par défaut (et doit rester éteint sur un serveur-IPFW est tout ce que vous voulez vraiment). Je ne sais pas si il est possible de reconfigurer SocketFilterfw pour utiliser une installation de syslog différente.

11
Joe Carroll

Une autre méthode permettant d'activer l'accès réseau à SysLogd sur Snow Leopard utilise le programme de ligne de commande Plistbuddy,

Sudo /usr/libexec/PlistBuddy /System/Library/LaunchDaemons/com.Apple.syslogd.plist
add :Sockets:NetworkListener dict
add :Sockets:NetworkListener:SockServiceName string syslog
add :Sockets:NetworkListener:SockType string dgram
save
quit

Puis redémarrer le démon,

Sudo launchctl unload com.Apple.syslogd.plist 
Sudo launchctl load com.Apple.syslogd.plist 

Vous pouvez utiliser LSOF pour vérifier que SysLogd s'écoute maintenant sur le port Syslog standard, 514,

$ Sudo lsof -i:514
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
launchd     1 root   44u  IPv6 0x0e459370      0t0  UDP *:syslog
launchd     1 root   56u  IPv4 0x0f7a9ef0      0t0  UDP *:syslog
syslogd 24319 root    5u  IPv6 0x0e459370      0t0  UDP *:syslog
syslogd 24319 root    6u  IPv4 0x0f7a9ef0      0t0  UDP *:syslog
6
aid