找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7235|回复: 0

服务器日志服务rsyslog安装与日志收集配置

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 08:03:58 | 显示全部楼层 |阅读模式
Rsyslog 安装与日志收集配置指南

Rsyslog 是一个强大的日志处理系统,广泛用于 Linux 服务器上的日志收集和管理。以下是安装和配置 rsyslog 的详细步骤。

一、安装 rsyslog

在基于 Debian/Ubuntu 的系统上
  1. sudo apt update
  2. sudo apt install rsyslog -y
复制代码

在基于 RHEL/CentOS 的系统上
  1. sudo yum install rsyslog -y
  2. # 或对于较新版本
  3. sudo dnf install rsyslog -y
复制代码

二、基本配置

rsyslog 的主要配置文件位于
  1. /etc/rsyslog.conf
复制代码
,模块配置可能在
  1. /etc/rsyslog.d/
复制代码
目录下。

1. 启用网络接收(可选)
如果需要从其他服务器接收日志:
  1. # 编辑配置文件
  2. sudo vim /etc/rsyslog.conf
  3. # 取消以下两行的注释(通常在文件末尾附近)
  4. module(load="imudp")
  5. input(type="imudp" port="514")
  6. module(load="imtcp")
  7. input(type="imtcp" port="514")
复制代码

2. 配置日志收集规则
  1. /etc/rsyslog.conf
复制代码
或新建
  1. /etc/rsyslog.d/custom.conf
复制代码
文件中添加规则:
  1. # 示例:收集所有设施(facility)的 info 及以上级别的日志
  2. *.info /var/log/all-info.log
  3. # 示例:收集特定应用的日志
  4. authpriv.* /var/log/secure.log
  5. # 示例:按设施和优先级分开存储
  6. mail.* -/var/log/mail.log
  7. *.*;mail.none;news.none -/var/log/messages
复制代码

3. 配置远程日志收集(作为服务器)
如果作为日志服务器接收其他主机的日志:
  1. # 在 /etc/rsyslog.conf 或单独配置文件中
  2. $template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
  3. *.* ?RemoteLogs
  4. & ~
复制代码

4. 配置发送日志到远程服务器(作为客户端)
在客户端机器上配置
  1. /etc/rsyslog.conf
复制代码
或新建配置文件:
  1. *.* @@remote-server-ip:514  # 使用TCP
  2. # 或
  3. *.* @remote-server-ip:514   # 使用UDP
复制代码

三、常用配置选项

  • 日志轮转:通常与 logrotate 配合使用,rsyslog 本身不处理轮转
  • 队列配置:对于高负载环境,可以配置内存或磁盘队列

  
  1. $ActionQueueFileName queue   # 磁盘队列文件名
  2.    $ActionQueueMaxDiskSpace 1g  # 最大磁盘空间
  3.    $ActionQueueSaveOnShutdown on # 关机时保存队列
复制代码

  • 模板配置:自定义日志格式和存储路径

  
  1. $template MyTemplate,"/var/log/myapp/%$YEAR%-%$MONTH%-%$DAY%/log.log"
复制代码

四、启动与测试

1. 重启 rsyslog 服务
  1. # Debian/Ubuntu
  2. sudo systemctl restart rsyslog
  3. # RHEL/CentOS
  4. sudo systemctl restart rsyslog
  5. # 或旧版本
  6. sudo service rsyslog restart
复制代码

2. 验证配置
  1. # 检查语法
  2. sudo rsyslogd -N1
  3. # 查看服务状态
  4. sudo systemctl status rsyslog
  5. # 实时查看日志(测试用)
  6. sudo tail -f /var/log/syslog  # 或其他日志文件
复制代码

3. 测试日志发送
  1. # 在客户端测试发送日志
  2. logger "This is a test message from client"
  3. # 在服务器端检查是否收到
  4. sudo tail -f /var/log/remote/客户端主机名/相关日志文件
复制代码

五、安全注意事项

  • 如果启用网络接收,考虑配置防火墙只允许可信IP访问514端口
  • 考虑使用TLS加密传输敏感日志
  • 定期清理旧日志,防止磁盘填满
  • 设置适当的文件权限(通常640,属主root:adm)


六、高级功能

  • 数据库存储:使用 ommysql 或 ompostgresql 模块将日志存入数据库
  • 过滤与重写:使用属性比较器和重写规则处理日志内容
  • 负载均衡:配置多个远程日志服务器实现高可用


通过以上配置,您可以建立一个灵活可靠的日志收集系统,满足不同规模的服务器环境需求。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 18:11 , Processed in 0.069977 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表