Ubuntu 16.4 LTS中无法从syslog分离DHCPD日志问题咨询
Hey there! 权限问题确实是这类日志分离失败的常见元凶,但咱们得一步步排查,先从权限入手,再核对配置细节:
排查Ubuntu 16.04 LTS中DHCPD日志分离失败的问题
1. 先确认日志目录与文件的权限
Ubuntu 16.04里rsyslog默认以syslog用户运行,你创建的/var/log/dhcp/目录和dhcp.log文件必须让syslog拥有读写权限,否则rsyslog没法写入日志:
- 先检查当前权限情况:
ls -ld /var/log/dhcp/ ls -l /var/log/dhcp/dhcp.log - 如果权限不正确,执行以下命令修正:
sudo chown syslog:adm /var/log/dhcp/ sudo chown syslog:adm /var/log/dhcp/dhcp.log sudo chmod 755 /var/log/dhcp/ sudo chmod 644 /var/log/dhcp/dhcp.log
2. 核对dhcpd.conf的日志设施配置
确保你在/etc/dhcp/dhcpd.conf里添加了正确的日志定向配置,这是让DHCPD把日志发送到syslog指定设施的关键:
log-facility local7;
3. 检查rsyslog的过滤规则是否正确
你可以在/etc/rsyslog.conf里添加规则,或者更推荐在/etc/rsyslog.d/目录下新建一个专门的配置文件(比如dhcp.conf),内容如下:
local7.* /var/log/dhcp/dhcp.log & stop
这里的& stop是为了避免这些DHCP日志同时写入默认的syslog文件,确保日志只定向到你指定的dhcp.log。
4. 重启相关服务生效配置
所有配置修改完成后,必须重启DHCP服务和rsyslog服务才能让新配置生效:
sudo systemctl restart isc-dhcp-server sudo systemctl restart rsyslog
5. 验证日志是否正常生成
你可以触发一个DHCP事件(比如让局域网内的客户端重新获取IP地址),然后实时查看日志:
tail -f /var/log/dhcp/dhcp.log
如果还是没有日志输出,检查rsyslog服务状态看有没有报错信息:
sudo systemctl status rsyslog
另外补充:如果你的系统手动开启了SELinux(Ubuntu 16.04默认是禁用的),也可能会影响日志写入,可以用sestatus命令查看状态,若为Enforcing模式,可能需要调整SELinux策略,但这种情况比较少见。
内容的提问来源于stack exchange,提问作者Henry
相关产品推荐
相关产品推荐

