rsyslog|模板和属性的使用

模版格式化日志

下面这两行配置表示将所有日志消息按照MyFormat模板格式写入/var/log/mylogfile.log文件

$template MyFormat, "%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n"
*.* /var/log/mylogfile.log;MyFormat
  • $template:开始使用模板的关键字
  • MyFormat:模板的名字
  • %%:百分号包含的是属性名,每个属性名相当于一段正则
  • %timegenerated%:生成日志的时间
  • %HOSTNAME%:主机名
  • %syslogtag%:syslog 标签
  • %msg%:日志消息内容
  • %msg:::drop-last-lf%:日志消息内容,去掉最后一个换行符
  • *.*:事件类型和等级
  • /var/log/mylogfile.log:写入路径

除上面之外的属性,常用的还有

  • %pri%:优先级
  • %protocol-version%:协议版本
  • %timestamp%:时间戳
  • %app-name%:应用名称
  • %procid%:进程ID
  • %msgid%:消息ID
  • %structured-data%:结构化数据
  • %rawmsg%:原始消息内容
  • %syslogfacility-text%:syslog 设施文本
  • %syslogseverity-text%:syslog 严重性文本
  • %syslogfacility%:syslog 设施编号
  • %syslogseverity%:syslog 严重性编号
  • %fromhost-ip%:发送日志的主机IP地址
  • %programname%:程序名称
  • %syslogtag%:syslog 标签
  • %msg%:日志消息内容

更多属性请查看官方文档:https://www.rsyslog.com/doc/configuration/properties.html

模版动态文件名生成

$template DynamicFile,"/var/log/%$YEAR%-%$MONTH%-%$DAY%.log"
*.* ?DynamicFile

这段配置会将所有日志写入以当前日期命名的文件中,例如/var/log/2024-09-09.log

设定过滤规则

if $fromhost-ip == '192.168.1.1' then /var/log/host1.log
if $msg contains 'error' then /var/log/error.log
#可以组合条件过滤
if ($fromhost-ip == '192.168.1.1' and $msg contains 'error') then /var/log/host1_error.log
if $timegenerated contains '2024-09-09' then /var/log/today.log

  • fromhost-ip :过滤日志来源IP
  • msg:过滤日志报文包含的内容
  • timegenerated:过滤事件
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!