Debian日志与远程监控整合实践
一、方案总览
| 角色 | 主要职责 | 关键配置 | 验证方式 |
|---|---|---|---|
| 日志服务器 | 接收远端日志、按规则落盘、访问控制 | 启用 imudp/imtcp 监听 514;配置模板与路径;可选 AllowedSender 白名单 | 查看 /var/log/syslog 或按主机目录的日志 |
| 客户端 | 将本地日志转发至服务器 | 在 rsyslog 中添加转发规则(@ 为 UDP、@@ 为 TCP) | 执行 logger "test" 后在服务器侧检索 |
二、快速落地步骤
sudo apt update && sudo apt install rsyslogsudo systemctl status rsyslog(Debian 12 通常默认已安装并启用)# 支持 UDP/TCP 接收
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
mkdir -p /var/log/remote && chmod 755 /var/log/remote
$AllowedSender TCP, 192.168.1.0/24
$AllowedSender UDP, 192.168.1.0/24
sudo systemctl restart rsyslog# UDP
*.* @192.0.2.10:514
# 或 TCP
*.* @@192.0.2.10:514
sudo systemctl restart rsyslogsudo ufw allow 514/udpsudo ufw allow 514/tcpsudo ufw reloadlogger "Test log entry from $(hostname)"sudo tail -f /var/log/syslog 或 sudo tail -f /var/log/remote/<客户端主机名>/*.log 查看是否收到三、进阶配置与可靠性
if $fromhost-ip == '192.168.1.50' then /var/log/remote/192.168.1.50.log
& stop
/var/log/remote/**/*.log {
daily
rotate 30
compress
missingok
postrotate
systemctl reload rsyslog >/dev/null 2>&1 || true
endscript
}
四、集中化监控与可视化
input {
udp { port => 514 codec => json_lines }
}
output {
elasticsearch { hosts => ["http://localhost:9200"] index => "syslog-%{+YYYY.MM.dd}" }
}
五、安全与运维要点