在ububtu22.04上配置kamailio的日志【记录来自deepseek】

根据我们之前的讨论,以下是 Kamailio 日志存储的完整配置方案,包括:

  1. 日志输出到文件(带日期文件名)。
  2. 日志轮转(使用 logrotate)。
  3. 日志级别控制
  4. 日志格式优化

一、Kamailio 日志配置

1. 修改 kamailio.cfg

kamailio.cfg 中配置日志级别和输出方式:

####### Global Parameters #########
debug=3  # 设置调试级别(0=无调试,3=最详细)
log_stderror=no  # 关闭控制台日志输出
log_facility=LOG_LOCAL4  # 使用 local4 设施

####### Modules Section ########
loadmodule "logger.so"  # 加载 logger 模块
modparam("logger", "log_name", "/var/log/kamailio/kamailio.log")  # 默认日志文件
modparam("logger", "log_level", 3)  # 记录所有级别日志
2. 配置带日期的日志文件名

通过 rsyslog 模板生成带日期的日志文件名:

# /etc/rsyslog.d/10-kamailio-dated-logfile.conf
template(name="KamailioDatedFile" type="string" string="/var/log/kamailio/%$YEAR%-%$MONTH%-%$DAY%-kamailio.log")

# 将 local4 的日志写入带日期的文件
local4.*    ?KamailioDatedFile
3. 重启 rsyslog 和 Kamailio
sudo systemctl restart rsyslog
sudo systemctl restart kamailio

二、日志轮转配置

使用 logrotate 管理 Kamailio 日志文件,避免日志文件过大。

1. 创建 logrotate 配置文件

编辑 /etc/logrotate.d/kamailio

# /etc/logrotate.d/kamailio
/var/log/kamailio/*.log {
    daily
    rotate 30
    compress
    missingok
    notifempty
    create 640 kamailio kamailio
    postrotate
        systemctl restart rsyslog
    endscript
}
2. 配置说明
  • daily:每天轮转一次。
  • rotate 30:保留最近 30 天的日志。
  • compress:压缩旧日志文件。
  • missingok:如果日志文件不存在,忽略错误。
  • notifempty:如果日志文件为空,不轮转。
  • create 640 kamailio kamailio:创建新日志文件时,设置权限和所有者。
  • postrotate:轮转后重启 rsyslog 以重新打开日志文件。
3. 手动测试 logrotate
sudo logrotate -vf /etc/logrotate.d/kamailio

三、日志格式优化

通过 rsyslog 模板优化日志格式,使其更易读。

1. 配置日志格式

编辑 /etc/rsyslog.d/10-kamailio-format.conf

# /etc/rsyslog.d/10-kamailio-format.conf
template(name="KamailioFormat" type="string" string="%timegenerated% %HOSTNAME% %syslogtag%%msg%\n")

# 应用格式到 Kamailio 日志
local4.*    ?KamailioDatedFile;KamailioFormat
2. 格式说明
  • %timegenerated%:日志生成时间。
  • %HOSTNAME%:主机名。
  • %syslogtag%:日志标签(如 kamailio)。
  • %msg%:日志消息内容。
3. 示例日志
2023-10-15T14:30:45 server1 kamailio: INFO: 
                    
                    

你可能感兴趣的:(VOIP那些事,kamailio)