Linux

Rsyslog 详解

2021-07-02  本文已影响0人  082e63dc752b

Rsyslog 详解


日志整理

对日志进行分析,首先第一步要规整日志。

vim /etc/rsyslog.conf

# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

# 个人建议,将所有的rule都配置在该目录下,在/etc/rsyslog.conf中不写rule

日志类别


rsyslog Properties

模板元素属性

| 属性 | 释义| |
| --- | --- |
| msg | 日志的信息内容,message。 |
| rawmsg | 不转义的日志内容。转义是默认开启的(EscapecontrolCharactersOnReceive),所以它有可能与socket中接收到的内容不同。 |
| rawmsg-after-pri | 几乎与rawmsg相同,但是删除了syslog PRI。 |
| hostname | 打印该日志的主机名。 |
| source | hostname属性的别名。 |
| fromhost | 接收的信息来自于哪个节点。这里是DNS解析的名字。 |
| fromhost-ip | 接收的信息来自于哪个节点,这里是IP,本地的是127.0.0.1。 |
| syslogtag | 信息标签。大致形如 programed[14321] 。 |
| programname | tag的一部分,就是上面的programed那个位置。 |
| pri | 消息的PRI部分-未解码(单值) |
| pri-text | 文本形式的消息的PRI部分,并在括号中添加数值PRI(例如“local0.err<133>”) |
| iut | InfoUnitType 一款监视器软件,在与监视器后端通信的时候使用 |
| syslogfacility | 设备信息,数字形式表示 |
| syslogfacility-text | 设备信息,文本形式表示 |
| syslogseverity | 日志严重性等级,数字形式表示 |
| syslogseverity-text | 日志严重性等级,文本形式表示 |
| syslogpriority | 同 syslogseverity |
| syslogpriority-text | 同 syslogseverity-text |
| timegenerated | 高精度时间戳 |
| timereported | 日志中的时间戳。精度取决于日志中提供的内容(在大多数情况下,为秒级) |
| timestamp | 同 timereported |
| protocol-version | IETF draft draft-ietf-syslog-protocol 中的 PROTOCOL-VERSION 字段的内容 |
| structured-data | IETF draft draft-ietf-syslog-protocol 中的 STRUCTURED-DATA 字段的内容 |
| app-name | IETF draft draft-ietf-syslog-protocol 中的 APP-NAME 字段的内容 |
| procid | IETF draft draft-ietf-syslog-protocol 中的 PROCID 字段的内容 |
| msgid | IETF draft draft-ietf-syslog-protocol 中的 MSGID 字段的内容 |
| inputname | 生成日志的输入模块的名称(如“imuxsock”、“imudp”) |
| jsonmesg | 整个日志对象作为json表示。可能出现数据重复,譬如syslogtag包含着programname,但两者都会分别表示。所以这个属性有一些额外开销,建议只有在实际需要的时候再用。 |


Time-Related System Properties

与时间相关的系统属性(以 2020-07-08 16:57:36 为例)

属性 释义
$now 当前日期时间戳,格式为YYYY-MM-DD (2020-07-08)
$year 当前年份, 四位数 (2020)
$month 当前月份, 两位数 (07)
$day 当前月份的日期,两位数 (08)
$wday 当前天数周几 :0=Sunday,...6=Saturday
$hour 当前小时(24小时机制),两位数(16)
$hhour 半小时机值,就是0-29分钟显示0,30-59分钟显示1。
$qhour 一刻钟机值,通过0-3显示,每15分钟一截。
$minute 当前分钟数,两位数(57)

通过模板修改日志

vim /etc/rsyslog.conf

# 创建一个名为cky_format的模板,其中 TIMESTAMP:8:15 表示timestamp属性值切片第八位到第十五位。
$template cky_format, "%$NOW% %TIMESTAMP:8:15% %hostname% %syslogseverity-text% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate cky_format

#重启rsyslog
systemctl restart rsyslog

日志格式效果样例

# NOW | timestamp:8:15| hostname| syslogseverity-text | syslogtag | msg
2020-07-09 09:59:54 mycomputer    info    systemd:  Started System Logging Service.
#    时间戳         |   主机名   | 日志等级 | 服务进程 |   日志内容

尚有不足,有错误的地方望看客指出,后续会逐步补全。

RSyslog官方文档传送门

上一篇下一篇

猜你喜欢

热点阅读