配置 Rsyslog 模板:如何实现按主机和应用分类存储日志

酷伟小哥_2193

酷伟小哥_2193

2026-06-30

489人浏览

原创

rsyslog可通过动态模板按主机和应用分类存储日志:远程日志用%fromhost-ip%+%programname%,本地日志用%hostname%+%programname%,支持自动建目录与日期子目录,无需外部脚本。

配置 rsyslog 模板:如何实现按主机和应用分类存储日志

直接用 Rsyslog 模板按主机和应用分类存储日志,核心是定义带动态变量的路径模板,并绑定到匹配规则。不需要额外脚本或外部工具,rsyslog 自身就能实时解析属性、自动建目录、分文件写入。

关键变量:选对属性才能精准分类

分类依赖两个核心属性:

  • %FROMHOST-IP%:日志来源 IP(服务端接收远程日志时有效)
  • %HOSTNAME%:本机主机名(本地日志或已正确设置 $LocalHostName 的场景)
  • %PROGRAMNAME%:生成日志的程序名(如 sshd、nginx、dockerd)
  • %APP-NAME%:RFC5424 格式日志中的应用名字段(比 %PROGRAMNAME% 更规范,推荐用于结构化日志)

注意:%FROMHOST-IP% 在本地日志中为空,仅适用于远程接收场景;若需统一处理本地+远程,建议在客户端显式添加 HOSTNAME 字段或使用 $!hostname 等自定义变量(需配合 mmjsonparse 或 imfile 提取)。

一览运营宝
一览运营宝

一款面向视频内容运营的AI创作工具,可辅助进行视频内容策划、创作和运营工作,帮助内容团队提高视频生产效率。

下载

基础模板配置:按 IP + 应用名分离

适用于集中式日志服务器,接收多台机器日志:

$template HostAppLog,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?HostAppLog
& ~
  • 路径含义:自动创建 /var/log/remote/192.168.1.10/sshd.log、/var/log/remote/192.168.1.11/nginx.log 等
  • & ~ 表示匹配后终止处理,避免日志重复写入默认文件
  • 确保 /var/log/remote/ 目录存在且 rsyslog 用户(通常是 syslog)有写权限

增强型模板:支持自动建目录与日期子目录

避免手动 mkdir,利用新版 rsyslog(v8.33+)的 dirCreateMode:

template(name="DailyHostApp" type="string" string="/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%/%$year%-%$month%-%$day%.log")
if $syslogfacility-text == 'local6' then {
  action(type="omfile" template="DailyHostApp" dirCreateMode="0755" fileCreateMode="0644")
  stop
}
  • 每条 local6 设施的日志,自动存入 /var/log/remote/10.0.2.5/redis/2026-06-13.log
  • dirCreateMode="0755" 启用自动创建多级目录(如 remote/10.0.2.5/redis/)
  • 时间宏 %$year%、%$month%、%$day% 是内置变量,无需插件

本地日志也分类:用 HOSTNAME 替代 FROMHOST-IP

单机多服务场景(如 Docker 容器或多个应用共存),可用主机名+程序名区分:

$template LocalAppLog,"/var/log/apps/%HOSTNAME%/%PROGRAMNAME%.log"
*.info;mail.none;authpriv.none;cron.none ?LocalAppLog
  • 假设本机 hostname 是 web-prod-01,sshd 日志将写入 /var/log/apps/web-prod-01/sshd.log
  • 需确认 /etc/hostname 设置合理,且 rsyslog 已加载 imuxsock 和 imklog
  • 如需更细粒度(如区分容器名),可配合 imfile + mmjsonparse 提取日志体字段,再用 %$!container_name% 动态路由

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3990

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2573

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6230

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5882

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3433

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2925

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3159

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习