I recently set up a central syslog server. Logs are organized in files, in folder named after the client machines (using DNS), and scanned with logcheck.
Some of the client machines have more than one OS (namely Linux and Windows), and end up having the same IP address and hostname. The result is that Windows logs (messages) and Linux logs did end up in the same file, making me and logcheck quite unhappy. I am interested in keeping the logs for different OS separate.
My solution has been to have syslog listen on multiple ports, and to configure syslog/rsyslog on the Linux and Windows client machines to use a different port number. This way I can easily redirect logs in appropriate files according to their source.
However, I am not quite convinced about the elegance of the solution - nmap can detect the client OS through the fingerprint of the stack TCP/IP.
Is there a way of configuring Syslog-ng to redirect the incoming data according to the OS of a client machine?