====== Basic Kamailio (OpenSER) Logging ====== This is a way to setup syslog logging for Kamailio (OpenSER). This setup was based on Slackware 10.2, so your configuration may need to be modified for your distribution. ===== Configuration ===== ==== Kamailio (OpenSER) Configuration ==== First, set these configuration options in your kamailio.cfg: debug=3 # debug level, 1 is low and 4 is high (lots of output) log_facility=LOG_LOCAL7 loadmodule "/usr/local/lib/kamailio/modules/xlog.so" ==== Syslog Configuration ==== Next, modify your syslog.conf (should be in /etc/syslog.conf), and add this line: # Kamailio (OpenSER) messages, make sure this spacing is done with tabs, spaces may cause errors local7.* -/var/log/kamailio Remarks: * the '-' before the name of the file means asynchronous writing, it is important to have it not to add performance penalty * if you don't want messages from Kamailio to /var/log/messages anymore, be sure you add local7.none to the line related to that file Create the log file: touch /var/log/kamailio Now, in Kamailio (OpenSER), to do some custom logging within your route (it will still catch all regular output from Kamailio, of course), I like to use xlog. Regular log will work, too. ==== Extra Logging in Kamailio (OpenSER) ==== xlog("L_WARN", "Some message at level WARNING"); The first argument sets the level of the logging, and the next is the message. ===== Log Rotation ===== ==== logrotate.conf ==== Within /etc/logrotate.conf, you can configure general paramters for your log rotation. My Slackware setup by default looks like this. # /etc/logrotate.conf # # logrotate is designed to ease administration of systems that generate large # numbers of log files. It allows automatic rotation, compression, removal, and # mailing of log files. Each log file may be handled daily, weekly, monthly, or # when it grows too large. # # logrotate is normally run daily from root's crontab. # # For more details, see "man logrotate". # rotate log files weekly: weekly # keep 4 weeks worth of backlogs: rotate 4 # create new (empty) log files after rotating old ones: create # uncomment this if you want your log files compressed: #compress # some packages install log rotation information in this directory: include /etc/logrotate.d # Rotate /var/log/wtmp: /var/log/wtmp { monthly create 0664 root utmp rotate 1 } # Note that /var/log/lastlog is not rotated. This is intentional, and it should # not be. The lastlog file is a database, and is also a sparse file that takes # up much less space on the drive than it appears. # system-specific logs may be also be configured below: ==== /etc/logrotate.d/kamailio ==== Each distribution may be different, but in Slackware 10.2, I created a the file /etc/logrotate.d/kamailio I filled it with these parameters: /var/log/kamailio { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true endscript } Finally, restart Kamailio (OpenSER) & syslog and enjoy! Questions and corrections, please email to mikebwilliams@gmail.com, or feel free to correct this Wiki yourself.