老哥们,今天咱们来聊一个 ESXi 日常运维中非常重要的话题——远程 Syslog 配置。很多人可能在部署 ESXi 主机时,对日志的处理不够重视,等到出现问题需要排查时才发现本地日志早就被覆盖了,悔之晚矣。今天就结合 VMware KB 318939,给大家详细讲讲 ESXi 7.x/8.x/9.x 版本中如何正确配置远程 Syslog,以及一些容易踩到的坑。
为什么需要配置远程 Syslog
其实呢,ESXi 主机默认会把日志保存在本地的 scratch 卷或者内存盘中。这种方式有两个致命的问题:一是内存盘的日志在重启后会丢失,二是本地存储的日志容量有限,时间长了就会被覆盖。尤其是当主机出现 PSOD(紫色屏幕死机)等严重故障时,本地日志很可能来不及保存就消失了。
配置远程 Syslog 就能完美解决这些问题。通过将日志实时发送到专门的 Syslog 服务器,我们可以实现日志的长期保存、集中管理和实时分析,大大提高了故障排查的效率。
核心配置方法详解
1. 命令行配置(esxcli)
直接开干,最快捷的方法就是使用 esxcli 命令行工具。先登录到 ESXi 主机的 shell 或者通过 vCLI 连接:
# 查看当前 Syslog 配置
esxcli system syslog config get
# 配置远程 Syslog 服务器(TCP 协议,端口 514)
esxcli system syslog config set --loghost='tcp://10.11.12.13:514'
# 加载新配置
esxcli system syslog reload
# 测试 Syslog 服务器连通性
nc -z 10.11.12.13 514
# 测试日志发送功能
esxcli system syslog mark --message "Syslog Test Message"
2. 主机配置文件(Host Profiles)
如果你的环境中有多台 ESXi 主机,使用主机配置文件(Host Profiles)可以实现批量配置,提高效率:
1. 连接到 vCenter Server
2. 点击“主页”→“主机配置文件”
3. 创建新配置文件或编辑现有配置文件
4. 在“编辑配置文件”对话框中,找到“高级配置选项”部分
5. 配置 Syslog 相关的五个高级选项(下面会详细介绍)
6. 保存配置文件并应用到主机集群
3. 高级配置选项
ESXi 提供了五个核心的 Syslog 高级配置选项:
- Syslog.global.logDir:设置本地或远程存储上的日志保存路径(格式:[DatastoreName]/DirectoryName)
- Syslog.global.logHost:配置远程 Syslog 服务器列表(格式:tcp://hostname:port, udp://hostname:port, ssl://hostname:port)
- Syslog.global.logDirUnique:是否为每台主机创建唯一的日志目录(默认为 false)
- Syslog.global.defaultRotate:本地日志文件的最大保留数量(默认为 8)
- Syslog.global.defaultSize:单个日志文件的最大大小(默认为 1024 KB)
避坑指南与注意事项
1. 本地日志目录的坑
对于 ESXi 6.7 及更高版本,配置本地日志目录时,必须确保目录已存在,否则会报错:“Logdir must exist and be a directory”。所以在配置之前,一定要先创建好对应的目录。
2. 防火墙配置的坑
默认情况下,ESXi 防火墙会阻止 Syslog 流量。必须手动开启 Syslog 防火墙规则:
esxcli network firewall ruleset set --ruleset-id=syslog --enabled=true
esxcli network firewall refresh
不过,从 ESXi 8.0 Update 2b 开始,当配置非标准端口的远程 Syslog 时,vmsyslogd 服务会自动创建持久化的动态防火墙规则,不需要手动配置了。
3. 服务重启的坑
如果 ESXi 主机与远程 Syslog 服务器的通信中断,日志发送会停止,直到重启 syslogd 服务。可以通过以下命令重启:
esxcli system syslog reload
4. 连通性测试的重要性
配置完成后,一定要测试 Syslog 服务器的连通性和日志发送功能。使用 nc 命令测试端口连通性,使用 esxcli system syslog mark 命令发送测试日志。
总结
远程 Syslog 配置是 ESXi 主机运维的基础工作之一,正确的配置可以为故障排查提供有力的支持。通过本文的介绍,大家应该已经掌握了 ESXi 7.x/8.x/9.x 版本中配置远程 Syslog 的三种方法,以及常见的坑点和解决方法。希望大家在实际运维中能够重视日志的管理,避免因日志问题导致故障排查困难。
Reference: VMware KB 318939






