在 CentOS 中,常见的“消息模板”包括两类:一是系统日志 syslog 的输出格式模板,二是登录前后显示的欢迎/提示信息模板。下面分别给出可直接落地的配置方法与示例。
一、自定义 syslog 日志格式模板
适用场景:统一日志时间格式、字段顺序、是否显示主机/进程等,便于检索与对接日志平台。
核心思路:在 rsyslog 中通过 $template 定义模板,再把模板应用到指定的设施/优先级规则。
操作步骤:
备份配置
sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
编辑配置,定义模板(示例:包含时间、标签与消息,并去除多余换行)
sudo vi /etc/rsyslog.conf
在文件任意规则之前加入:
$template CustomFormat,“%timegenerated% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n”
应用模板到规则(示例:对所有日志生效,并停止后续处理)
在文件末尾添加:
. ?CustomFormat
& stop
重启服务并验证
sudo systemctl restart rsyslog
tail -f /var/log/messages
常用属性与含义(可按需组合):
提示:若只想影响部分日志,可将规则改为例如 authpriv. ?CustomFormat* 或 local0. ?CustomFormat* 等更精确的选择器。
二、自定义登录前后欢迎与提示信息模板
适用场景:在本地终端或 SSH 登录前后展示公司/项目标识、合规提示、运维公告等。
关键文件与差异:
| 文件 | 显示时机 | 适用连接 | 备注 |
|---|---|---|---|
| /etc/issue | 登录提示符之前(本地终端) | 本地控制台 | 支持转义序列(见下) |
| /etc/motd | 登录成功后 | 本地与 SSH | 简单文本/脚本输出 |
| /etc/ssh/sshd_config 的 Banner | 建立 SSH 连接后、认证前 | 仅 SSH | 适合法律/合规声明 |
配置方法与示例:
本地控制台预登录信息(/etc/issue)
sudo vi /etc/issue
示例内容:
\s \r (\m) \n
Welcome to \n (\o)
Login time: \t
可用转义序列:\d(日期)、\l(终端号)、\m(架构)、\n(主机名)、\o(域名)、\r(内核版本)、\t(时间)、\s(系统名)、\u(当前登录用户数)、\U(用户数与用户)、\v(系统版本日期)。
登录成功后信息(/etc/motd 或 /etc/motd.d)
Unauthorized access is prohibited. All activities are monitored and logged.
在 /etc/ssh/sshd_config 中启用:
sudo vi /etc/ssh/sshd_config
Banner /etc/ssh/ssh_banner
重启服务:
sudo systemctl restart sshd
说明:Banner 在 SSH 握手阶段展示,常用于合规提示;/etc/motd 则在认证成功后展示。
三、验证与排错
验证 syslog 模板:
验证登录信息:
常见问题: