Recipe 3.18 Logging Access to Your Services

3.18.1 Problem

You want to know who is accessing your services via xinetd .

3.18.2 Solution

Enable logging in the service's configuration file:

/etc/xinetd.conf or /etc/xinetd.d/myservice:
service myservice
        log_type = SYSLOG facility level
        log_on_success = DURATION EXIT HOST PID USERID
        log_on_failure = ATTEMPT HOST USERID

xinetd logs to syslog by default. To log to a file instead, modify the preceding log_type line to read:

log_type = FILE filename

3.18.3 Discussion

xinetd can record diagnostic messages via syslog or directly to a file. To use syslog, choose a facility (daemon, local0, etc.) and optionally a log level (crit, warning, etc.), where the default is info.

log_type = SYSLOG daemon                    facility = daemon, level = info
log_type = SYSLOG daemon warning            facility = daemon, level = warning

To log to a file, simply specify a filename:

log_type = FILE /var/log/myservice.log

Optionally you may set hard and soft limits on the size of the log file: see xinetd.conf(5).

Log messages can be generated when services successfully start and terminate (via log_on_success) or when they fail or reject connections (via log_on_failure).

If logging doesn't work for you, the most likely culprit is an incorrect setup in /etc/syslog.conf. It's easy to make a subtle configuration error and misroute your log messages. Run our syslog testing script to see where your messages are going. [Recipe 9.28]

3.18.4 See Also

xinetd.conf(5), syslog.conf(5), inetd.conf(5).

    Chapter 9. Testing and Monitoring