Linux 系统 rsyslog 配置

news2025/6/6 17:37:39

Linux 系统 rsyslog 配置指南

rsyslog 是 Linux 系统的下一代日志处理系统,功能强大且高效。以下是从基础到高级的全面配置指南:

1. 安装与基础配置

安装 rsyslog

# Ubuntu/Debian
sudo apt update
sudo apt install rsyslog

# CentOS/RHEL
sudo yum install rsyslog

基础配置

配置文件:/etc/rsyslog.conf

# 查看默认配置
sudo vim /etc/rsyslog.conf

# 启用的模块
module(load="imuxsock") # 提供本地系统日志支持
module(load="imklog")   # 提供内核日志支持
module(load="immark")  # 提供标记消息支持

# 标准日志规则
*.info;mail.none;authpriv.none;cron.none  /var/log/messages
authpriv.*                               /var/log/secure
mail.*                                   -/var/log/maillog
cron.*                                   /var/log/cron
*.emerg                                 :omusrmsg:*

重启服务

sudo systemctl restart rsyslog
sudo systemctl enable rsyslog

2. 关键配置功能详解

日志分级

级别优先级描述
debug7调试信息
info6一般信息
notice5正常但重要的事件
warning4警告
err3错误
crit2严重情况
alert1需要立即采取行动
emerg0系统不可用

常用日志路径

日志文件描述
/var/log/messages系统级常规日志
/var/log/secure认证相关日志
/var/log/cron计划任务日志
/var/log/maillog邮件系统日志
/var/log/boot.log系统启动日志

3. 高级配置功能

3.1 远程日志集中管理

日志发送端配置
sudo vim /etc/rsyslog.conf

# 添加在文件底部
# UDP方式(快速但不保证送达)
*.* @192.168.1.100:514

# TCP方式(可靠传输)
*.* @@192.168.1.100:514

# 重试队列(如果服务器离线)
$ActionQueueFileName queue   # 唯一名称
$ActionQueueMaxDiskSpace 1g  # 最大磁盘空间
$ActionQueueSaveOnShutdown on # 关机保存
$ActionQueueType LinkedList  # 队列类型
$ActionResumeRetryCount -1   # 无限重试
日志接收端配置
sudo vim /etc/rsyslog.conf

# 启用TCP/UDP接收
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
& ~  # 停止进一步处理

3.2 日志过滤与路由

# 将sshd日志保存到单独文件
:programname, isequal, "sshd" /var/log/ssh.log

# 丢弃指定程序的日志
:msg, contains, "debug" ~

# 按严重级别过滤
*.emerg /var/log/critical.log

# 自定义时间格式
$template MyFormat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"

3.3 性能优化配置

# /etc/rsyslog.conf 顶部添加
$MaxMessageSize 64k  # 最大日志大小
$WorkDirectory /var/lib/rsyslog  # 工作目录
$MainMsgQueueSize 50000  # 主队列大小

# 批量处理
$ActionQueueSize 100000   # 队列大小
$ActionQueueTimeoutEnqueue 500 # 超时(毫秒)
$ActionDequeueBatchSize 2000 # 批量处理数

4. 日志轮转配置

配置文件:/etc/logrotate.d/rsyslog

/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/cron
/var/log/spooler
/var/log/boot.log
{
    daily            # 按天轮转
    rotate 30        # 保留30份
    size 100M        # 或达到100MB轮转
    missingok        # 文件不存在不报错
    compress         # 压缩旧日志
    delaycompress    # 延迟压缩
    sharedscripts    # 所有文件处理完后运行脚本
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

5. 安全增强配置

5.1 TLS加密传输

# 生成证书
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/rsyslog-key.pem \
-out /etc/ssl/certs/rsyslog-cert.pem -days 365 -nodes

# 发送端配置
$DefaultNetstreamDriver gtls
$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-cert.pem
$DefaultNetstreamDriverCertFile /etc/ssl/certs/client-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/private/client-key.pem
*.* @@(o)192.168.1.100:6514  # 使用TLS端口6514

# 接收端配置
global(
    DefaultNetstreamDriver="gtls"
    DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-cert.pem"
    DefaultNetstreamDriverCertFile="/etc/ssl/certs/server-cert.pem"
    DefaultNetstreamDriverKeyFile="/etc/ssl/private/server-key.pem"
)

5.2 访问控制

# 接收端限制访问
$AllowedSender UDP, 192.168.1.0/24
$AllowedSender TCP, 192.168.1.0/24
$AllowedSender TLS, 192.168.1.0/24

5.3 SELinux策略

# 开放rsyslog端口
sudo semanage port -a -t syslogd_port_t -p udp 514
sudo semanage port -a -t syslogd_port_t -p tcp 514

# 允许写入远程日志目录
sudo semanage fcontext -a -t var_log_t "/var/log/remote(/.*)?"
sudo restorecon -Rv /var/log/remote

6. 监控与故障排除

检查服务状态

sudo systemctl status rsyslog
sudo rsyslogd -N1  # 测试配置文件语法

日志分析工具

# 实时监控日志
sudo tail -f /var/log/messages

# 筛选特定时间范围日志
journalctl --since "2023-01-01 00:00:00" --until "2023-01-02 00:00:00"

# 查看最后100条错误
sudo grep -i error /var/log/messages | tail -100

网络诊断

# 测试UDP发送
echo "Test message" | nc -u -w1 192.168.1.100 514

# 检查端口监听
sudo netstat -tulnp | grep rsyslog
sudo tcpdump -i any port 514 -vv

7. 高级集成方案

与Elastic Stack集成

# 安装Logstash转发模块
sudo apt install logstash

# /etc/logstash/conf.d/rsyslog.conf
input {
  udp {
    port => 514
    type => "syslog"
  }
  tcp {
    port => 514
    type => "syslog"
  }
}
output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "syslog-%{+YYYY.MM.dd}"
  }
}

使用Prometheus监控日志速率

# 安装promtail
curl -s https://api.github.com/repos/grafana/loki/releases/latest | \
grep browser_download_url | grep promtail-linux-amd64 | cut -d '"' -f 4 | wget -i -

# 配置promtail.yaml
server:
  http_listen_port: 9080
  grpc_listen_port: 0
positions:
  filename: /tmp/positions.yaml
clients:
  - url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlog
      __path__: /var/log/*.log

8. 最佳实践

  1. 最小权限原则

    • 使用专用日志账户
    • 限制配置文件权限 chmod 640 /etc/rsyslog.conf
  2. 结构化日志

    template(name="jsonfmt" type="list") {
         property(name="timestamp" dateFormat="rfc3339")
         constant(value=",")
         property(name="hostname")
         constant(value=",")
         property(name="syslogtag")
         constant(value=",")
         property(name="msg" format="json")
    }
    
  3. 日志分级存储

    • /var/log/ 使用高性能 SSD
    • /archive/logs/ 使用大容量机械硬盘
  4. 定期审计

    # 检查日志完整性
    sudo auditctl -w /var/log/ -p wa -k syslog_audit
    
  5. 监控告警

    • 设置日志速率告警
    • 监控日志磁盘空间使用率
    • 检测关键词告警 (ERROR, CRITICAL)

通过以上全面配置,您可以构建一个高效、安全且可扩展的日志管理系统,满足从小型服务器到大型数据中心的各种需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于rpc框架Dubbo实现的微服务转发实战

目录 rpc微服务模块 导入依赖 配置dubbo 注解 开启Dubbo Dubbo的使用 特殊点 并没有使用 Reference 注入 微服务之间调用 可以选用Http 也可以Dubbo 我们 Dubbo 的实现需要一个注册中心 我作为一个服务的提供者 我需要把我的服务注册到注册中心去 调用方需要注册中心…

深度学习N2周:构建词典

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 本周任务:使用N1周的.txt文件构建词典,停用词请自定义 1.导入数据 from torchtext.vocab import build_vocab_from_iterator from co…

贪心算法应用:装箱问题(FFD问题)详解

贪心算法应用:装箱问题(FFD问题)详解 1. 装箱问题概述 装箱问题(Bin Packing Problem)是计算机科学和运筹学中的一个经典组合优化问题。问题的描述如下: 给定一组物品,每个物品有一定的体积,以及若干容量相同的箱子&#xff0c…

操作系统学习(九)——存储系统

一、存储系统 在操作系统中,存储系统(Storage System) 是计算机系统的核心组成部分之一,它负责数据的存储、组织、管理和访问。 它不仅包括物理设备(如内存、硬盘),还包括操作系统提供的逻辑抽…

服务器安装软件失败或缺依赖怎么办?

服务器在安装软件时失败或提示缺少依赖,是运维中非常常见的问题。这个问题大多发生在 Linux 云服务器环境,原因和解决方法也有共性。以下是详细说明和解决建议: 🧠 一、常见原因分析 问题类型描述🔌 软件源不可用服务器…

006网上订餐系统技术解析:打造高效便捷的餐饮服务平台

网上订餐系统技术解析:打造高效便捷的餐饮服务平台 在数字化生活方式普及的当下,网上订餐系统成为连接餐饮商家与消费者的重要桥梁。该系统以菜品分类、订单管理等模块为核心,通过前台展示与后台录入的分工协作,为管理员和会员提…

[10-2]MPU6050简介 江协科技学习笔记(22个知识点)

1 2 3 欧拉角是描述三维空间中刚体或坐标系之间相对旋转的一种方法。它们由三个角度组成,通常表示为: • 偏航角(Yaw):绕垂直轴(通常是z轴)的旋转,表示偏航方向的变化。 • 俯仰角&a…

Spring Boot 3.X 下Redis缓存的尝试(二):自动注解实现自动化缓存操作

前言 上文我们做了在Spring Boot下对Redis的基本操作,如果频繁对Redis进行操作而写对应的方法显示使用注释更会更高效; 比如: 依之前操作对一个业务进行定入缓存需要把数据拉取到后再定入; 而今天我们可以通过注释的方式不需要额外…

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡 一、项目背景与转型原因 1.1 原定计划的变更 本系列教程最初规划是开发即构美颜SDK的UTS插件,但由于甲方公司内部战略调整,原项目被迫中止。考虑到: 技术…

C:\Users\中文名修改为英文名

C:\Users\中文名修改为英文名 背景操作步骤 背景 买了台新电脑,初始化好不知道啥操作把自己的登录用户名改成了中文,有些安装的软件看见有中文直接就水土不服了。 操作步骤 以下称中文用户名为张三。 正常登录张三用户 进入用户管理页面修改用户名&a…

购物商城网站 Java+Vue.js+SpringBoot,包括商家管理、商品分类管理、商品管理、在线客服管理、购物订单模块

购物商城网站 JavaVue.jsSpringBoot,包括商家管理、商品分类管理、商品管理、在线客服管理、购物订单模块 百度云盘链接:https://pan.baidu.com/s/10W0kpwswDSmtbqYFsQmm5w 密码:68jy 摘 要 随着科学技术的飞速发展,各行各业都在…

在word中点击zotero Add/Edit Citation没有反应的解决办法

重新安装了word插件 1.关掉word 2.进入Zotero左上角编辑-引用 3.往下滑找到Microsoft Word,点重新安装加载项

整合swagger,以及Knife4j优化界面

因为是前后端项目&#xff0c;需要前端的参与&#xff0c;所以一个好看的接口文档非常的重要 1、引入依赖 美化插件其中自带swagger的依赖了 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-spring-boot-starter&…

Unity | AmplifyShaderEditor插件基础(第四集:简易shader)

一、&#x1f44b;&#x1f3fb;前言 大家好&#xff0c;我是菌菌巧乐兹~本节内容主要讲一下&#xff0c;第一个用ASE的shader。 我们用通用的光照模版吧。&#xff08;universal-通用/Lit-光照&#xff09; 通用的光照模版 如果你尝试建设了&#xff0c;会发现Universal这个…

linux C语言中的动态库 静态库说明

静态库 gcc -fpic -c add.c sub.c 这个命令之后会得到 add.o 于 sub.o (-c 只编译不链接) ar rcs mymath.a add.o sub.o 将编译好的文件编译成.a静态库用于调用 在使用中 gcc main.c -I../include ../lib/mymarh.a -0 mytest 需要这个函数的声明放在include文件下&#xf…

Flash烧录速度和加载配置速度(纯FPGA ZYNQ)

在工程综合完成或者implement完成后&#xff0c;打开综合设计或者实现设计。 toots--->Edit Device Properties--->打开比特流设置 将bitstream进行压缩 上图中&#xff0c;时钟频率选择的档位有限&#xff0c;最大为66MHZ io的bus width可以设置为x1,x2,x4 vivado在设计…

解构与重构:PLM 系统如何从管理工具进化为创新操作系统?

在智能汽车、工业物联网等新兴领域的冲击下&#xff0c;传统产品生命周期管理&#xff08;PLM&#xff09;系统正在经历前所未有的范式转换。当某头部车企因 ECU 软件与硬件模具版本失配导致 10 万辆智能电车召回&#xff0c;损失高达 6 亿美元时&#xff0c;这场危机不仅暴露了…

Redis:介绍和认识,通用命令,数据类型和内部编码,单线程模型

介绍和认识 Redis是一个基于内存的&#xff0c;高性能的&#xff0c;支持许多数据类型的NoSQL数据库&#xff0c;可以持久化&#xff0c;也支持分布式。 在许多的互联网产品中&#xff0c;对于数据库的访问速度要求很高&#xff0c;例如Mysql数据库无法满足其要求&#xff0c…

嵌入式开发之STM32学习笔记day20

STM32F103C8T6 PWR电源控制 1 PWR简介 PWR&#xff08;Power Control&#xff09;电源控制单元是STM32微控制器中一个重要的组成部分&#xff0c;它负责管理系统的电源管理功能&#xff0c;以优化功耗并提高效率。PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编…

专业级PDF转CAD解决方案

PDF 文件因其出色的便携性和稳定性&#xff0c;已成为许多用户的首选格式。但在涉及图像编辑或精细调整时&#xff0c;CAD 文件显然更具优势。 这款 CAD 图纸转换工具&#xff0c;界面清爽、操作直观&#xff0c;是处理图纸文件的理想助手。 它不仅支持不同版本 CAD 文件之间…