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
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>
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.
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