rsyslog日志配置

1. syslog主配置文件:/etc/rsyslog.conf

  是以tcp方式接收远程服务发来的日志

# provides TCP syslog reception
module(load="imtcp")        #导入tcp模块
#input(type="imtcp" port="514")    

2. syslog子配置文件:/etc/rsyslog.d/01-tcp-remote.conf
  这个01-tcp-remote.conf是要自己创建的
写入配置内容前创建好日志要保存的位置

sudo mkdir -p /mnt/x/logs   # 创建日志保存的目录
sudo chown syslog:adm /mnt/x/logs  # 修改 /mnt/x/logs 目录的所有者和所属组
sudo chmod 0744 /mnt/x/logs  # 添加权限

 

# TCP输入配置
input(type="imtcp" port="514")

# 定义日志保存模板:按日期目录+小时文件存储
# 路径格式:/mnt/x/logs/年份月份日期/主机名/小时.log
# %$YEAR%%$MONTH%%$DAY%:日期目录(如20250907)
# %$HOUR%:小时文件(如14.log表示14点)
$template HourlyTcpLogs,"/mnt/x/logs/%$YEAR%%$MONTH%%$DAY%/%HOSTNAME%/%$HOUR%.log"

# 应用规则:仅对TCP接收的日志生效
if $inputname == "imtcp" then {
    *.* ?HourlyTcpLogs  # 应用小时分割模板
    & ~                # 不再转发到其他规则
}

# 权限设置
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

# 确保日志按小时滚动(每小时创建新文件)
$ActionQueueFileName queue  # 队列文件名前缀
$ActionQueueMaxDiskSpace 1g  # 队列最大磁盘空间
$ActionQueueSaveOnShutdown on  # 关闭时保存队列
$ActionQueueType LinkedList  # 队列类型
$ActionResumeRetryCount -1  # 无限重试

3. 发送端:

logger -T -n 127.0.0.1 -P 514 "hello syslog" 

4. 接收端:

tail -f 16.log # 动态产看日志变化(重复的日志将不会记录)

 

posted @ 2025-09-07 16:33  liuun  阅读(88)  评论(0)    收藏  举报