我有一个在 Ubuntu (22.04.2) 上运行的 ryslog 服务器 (V8.2112.0),它具有非常基本的设置,用于接收来自 Cisco 交换机的日志。该服务器和所有交换机都在同一个域中。
我尝试使用%hostname%
变量来指定日志文件位置,特别是使用短主机名。从我在网上找到的信息来看,如果 rsyslog 服务器与客户端位于同一域中,则应该使用短主机名。
hostname
当我在服务器上运行命令时,我得到rsyslogserver
,而当我运行hostname --fqdn
我得到rsyslogserver.domain.local
。
所有向服务器发送日志的设备都在同一个 中.domain.local
,并在其 FQDN 中使用它。
由于我的所有客户端都在同一个域中,因此我希望服务器使用短主机名,因为我不需要.domain.local
,但它始终使用 FQDN。
我进行了一些搜索,但我能找到的唯一相关内容与我遇到的问题完全相反。
答案1
要将 rsyslog 服务器配置为在保存日志时使用短主机名而不是完全限定域名 (FQDN),请按照以下步骤操作:
编辑Rsyslog配置文件:打开 Rsyslog 配置文件进行编辑。在 Ubuntu 上,默认配置文件通常位于
/etc/rsyslog.conf
或/etc/rsyslog.d/50-default.conf
。sudo nano /etc/rsyslog.conf
修改模板:在配置文件中,找到定义日志模板的部分。您可以创建一个使用
%hostname%
所需格式的变量的自定义模板。例如:$template MyCustomTemplate, "%HOSTNAME:1:$%\t%msg%\n"
在此示例中,
%HOSTNAME:1:$%
将使用短主机名。配置日志文件:更新您的日志文件定义以使用自定义模板:
local0.* /var/log/myapp.log;MyCustomTemplate
用您的实际日志设施和文件路径替换
local0.*
和。/var/log/myapp.log
重启 Rsyslog:进行这些更改后,重新启动 Rsyslog 服务以应用新配置:
sudo systemctl restart rsyslog