日志服务部署

在 Linux 环境中,将多台服务器的日志汇总到一台日志服务器,核心是通过 rsyslog 或 syslog-ng 实现日志的集中采集与存储,这种架构适合运维人员统一监控多台服务器的网络、系统、应用日志。

一、架构说明

  • 日志服务器:一台固定 IP 的服务器,负责接收并存储所有客户端服务器的日志。
  • 客户端服务器 :多台需要上传日志的服务器,配置 rsyslog 将日志转发到日志服务器。
  • 传输协议 :默认使用 UDP 514 (轻量、高效),若需确保日志不丢失,可使用 TCP 514(可靠传输)。

二、配置日志服务器(接收端)

1.编辑 rsyslog 主配置文件

bash 复制代码
vi /etc/rsyslog.conf

2.启用 UDP/TCP 监听模块

取消以下配置的注释(根据需求选择协议):

bash 复制代码
# 启用 UDP 监听(推荐,轻量)
module(load="imudp")
input(type="imudp" port="514")

# (可选)启用 TCP 监听(可靠,适合重要日志)
module(load="imtcp")
input(type="imtcp" port="514")

3.配置日志分类存储规则

为了区分不同客户端的日志,按客户端 IP日志类型 划分存储路径,添加以下配置:

bash 复制代码
# 规则1:按客户端 IP 分类存储(所有日志)
$template RemoteLog,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemoteLog

# 规则2:单独存储 SSH 日志(来自所有客户端)
auth.* /var/log/remote/ssh-all.log

%FROMHOST-IP%:客户端服务器的 IP 地址。

%PROGRAMNAME%:产生日志的程序名(如 sshd、nginx)。

$template:定义日志存储的模板路径。

4.创建日志存储目录并设置权限

bash 复制代码
mkdir -p /var/log/remote
chown root:root /var/log/remote
chmod 700 /var/log/remote # 限制权限,防止敏感日志泄露

5.重启 rsyslog 服务生效

bash 复制代码
systemctl restart rsyslog
systemctl enable rsyslog

# 检查监听端口是否生效
ss -unlp | grep 514 # 查看 UDP 514
ss -tnlp | grep 514 # 查看 TCP 514

三、配置客户端服务器(发送端)

1.编辑客户端 rsyslog 配置文件

bash 复制代码
vi /etc/rsyslog.conf

2.添加日志转发规则

在文件末尾添加以下内容,替换 <日志服务器IP> 为实际 IP

bash 复制代码
# 方案1:转发所有日志到日志服务器(UDP)
*.* @<日志服务器IP>:514

# 方案2:转发所有日志到日志服务器(TCP,可靠传输)
# *.* @@<日志服务器IP>:514

# 方案3:只转发指定类型日志(如 SSH+防火墙日志)
# auth.*;kern.* @<日志服务器IP>:514

3.重启客户端 rsyslog 服务

bash 复制代码
systemctl restart rsyslog

四、验证配置是否生效

1.在客户端触发日志生成

bash 复制代码
# 执行 SSH 登录操作,生成 auth 日志
ssh root@localhost

# 或手动生成测试日志
logger -p auth.info "Test remote log from $(hostname -I)"

2.在日志服务器查看接收的日志

bash 复制代码
# 查看按 IP 分类的日志
ls /var/log/remote/

# 实时查看客户端日志
tail -f /var/log/remote/<客户端IP>/sshd.log

# 查看所有客户端的 SSH 汇总日志
tail -f /var/log/remote/ssh-all.log
相关推荐
懂软件的胡子个哥8 分钟前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝29 分钟前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea36 分钟前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链
小葱运维44 分钟前
命名与环境规范
运维·开源·云计算
xbzb1 小时前
Linux 文件查找命令 locate 与 find 完全指南
linux·运维
ITxiaobing20231 小时前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5551 小时前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
Julien20041 小时前
Docker 容器存储原理(一)
linux·运维·服务器·ssh·学习方法
邪修king1 小时前
Re:Linux 系统篇(三十四):进程间通信开篇Chapter1 —— 匿名管道 pipe 深度拆解与代码实战
android·linux·运维·开发语言
筝筝ba1 小时前
GUI 测试之只读用户恢复BMC出厂设置
服务器