26 rsyslog 安装及 修改 sshd 服务日志记录 – 进阶篇
1 | https://www.bndstone.com/1233.html |
8-1. 不用local5模块,换别的模块 [3-1 步骤换下面的] 例如: 127.0.0.1-20190901.log
1 | vi /etc/rsyslog.conf |
然后在GLOBAL DIRECTIVE块 追加以下的模板
1 2 3 | $template Remotelogs,"/var/log/%FROMHOST-IP%-%$YEAR%%$MONTH%%$DAY%.log" * *.* ?Remotelogs & ~ |
备注:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $template 表示模板 Remotelogs 表示描述,可以修改为任何其他的描述性的名称 /var/log/ 表示日志保存的路径 %FROMHOST-IP%.log 表示日志名称以设备的IP地址开始,127.0.0.1.log /var/log/%FROMHOST-IP%.log %FROMHOST-IP%-%$YEAR%%$MONTH%%$DAY%.log 表示日志名称以设备的IP地址开始,后面加上年月日,例如:127.0.0.1-20190901.log /var/log/%FROMHOST-IP%-%$YEAR%%$MONTH%%$DAY%.log %HOSTNAME%/%PROGRAMNAME%.log 表示日志名称 以设备HOSTNAME名称 建个文件,里面保存各个programname.log /var/log/%HOSTNAME%/%PROGRAMNAME%.log *.* ?Remotelogs 表示我们将RemoteLogs模板应用到所有接收到的日志上 & ~ 表示了一个重定向规则,被用来告知rsyslog守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重定向规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。 |
8-2. 如果你想要的话,也可以使用下面的模式对特定的设备或严重性级别使用新的模板直接来记录日志消息
1 | [facility-level].[severity-level] ?RemoteLogs |
例如:
8-2-1. 将全部优先级别的所有内部用户验证消息指定为RemoteLogs模板:
1 | authpriv.* ?Remotelogs |
8-2-2. 将所有系统进程中除开mail、用户验证和cron消息之外的进程产生的消息级别的日志指定为RemoteLogs模板:
1 | *.info,mail.none,authpriv.none,cron.none ?Remotelogs |
8-2-3. 如果我们想要将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中,可以使用以下的模板。在此我们为该模板赋予了“IpTemplate”名称
1 2 3 | $template IPtemplate,"/var/log/%FROMHOST-IP%.log" *.* ?IPtemplate & ~ |