Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3155

Rsyslog日志系统配置指南

$
0
0

Rsyslog日志系统配置指南


一、核心架构与组件

1.1 系统架构图

graph TD
    A[日志源] -->|发送消息| B[Rsyslog接收器模块]
    B --> C[过滤规则处理]
    C --> D[输出模块]
    D --> E[存储/转发目标]

二、基础配置步骤

2.1 安装与配置文件路径

# 系统安装命令
sudo apt install rsyslog  # Debian/Ubuntu
sudo yum install rsyslog  # CentOS/RHEL

# 主配置文件路径
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf  # 扩展配置目录

关键目录说明

  • /etc/rsyslog.d/:存放模块和自定义规则
  • /var/log/:默认日志存储路径

2.2 配置文件结构解析

# 主配置文件核心部分
module(load="imuxsock")  # 本地日志模块
module(load="imklog")    # 内核日志模块

# 全局参数
$WorkDirectory /var/spool/rsyslog  # 缓存目录
$ActionQueueFileName queue         # 队列文件名前缀

模块类型说明表

模块名称功能描述配置示例
imuxsock监听本地Unix套接字module(load="imuxsock")
imfile读取文件日志input(type="imfile" File="/var/log/nginx/access.log")
omelasticsearch发送到ES集群module(load="omelasticsearch")

三、日志过滤与路由规则

3.1 基础过滤语法

# 按服务类型过滤
if $programname == 'nginx' then /var/log/nginx.log
& stop    # 停止后续处理

# 按优先级过滤
if $syslogpriority >= 'err' then /var/log/errors.log

条件语法说明

  • $programname:日志来源程序名(如nginx)
  • $syslogpriority:日志级别(emerg,alert,crit,err,warn,notice,info,debug)

3.2 正则表达式匹配

# 匹配特定模式的日志
if $msg startswith 'ERROR' then /var/log/custom_errors.log
& stop

# 匹配IP地址
if $fromhost-ip == '192.168.1.100' then /var/log/server1.log

四、输出目标配置

4.1 本地文件输出

# 基础文件输出格式
auth,authpriv.* /var/log/auth.log
cron.* /var/log/cron.log

高级配置参数

  • $FileCreateMode 0640:文件权限设置
  • $ActionFileEnableCheckpointing on:启用检查点机制

4.2 远程日志服务器

# 发送到TCP服务器
*.* @@192.168.1.200:514  # 安全传输(TCP)
*.* @192.168.1.200:514   # 非安全传输(UDP)

传输协议对比

协议特点适用场景
TCP可靠传输,低延迟重要日志场景
UDP高性能,无确认机制高吞吐量场景

4.3 数据库存储

# 存入MySQL示例
action(type="ommysql"
    server="localhost"
    serverport="3306"
    db="logs"
    user="rsyslog"
    password="your_password"
    query="INSERT INTO messages (host, message) VALUES (?, ?)"
)

五、高级配置功能

5.1 加密传输配置

# TLS加密配置
module(load="omrelp")  # 加密模块
*.* action(
    type="omrelp"
    target="192.168.1.200"
    port="20514"
    protocol="tcp"
    template="RSYSLOG_TraditionalFileFormat"
    queue.type="LinkedList"
)

加密参数说明

  • protocol="tcp":强制使用TCP传输
  • queue.type="LinkedList":队列类型确保消息不丢失

5.2 负载均衡配置

# 多服务器轮询
global(
    queue.type="LinkedList"
    queue.size="10000"
)

template(name="jsonTemplate" type="list" option.json="on"){
    constant(value="{\"host\":\"")
    property(name="hostname")
    constant(value="\",\"message\":\"")
    property(name="msg")
    constant(value="\"}")
}

action(
    type="omfwd"
    server=["192.168.1.200","192.168.1.201"]
    port="514"
    protocol="tcp"
    template="jsonTemplate"
    loadbalance="on"
)

六、监控与故障排查

6.1 日志查看命令

# 实时查看日志
tail -f /var/log/syslog

# 查看服务状态
systemctl status rsyslog

# 日志文件权限检查
ls -l /var/log/nginx.log

6.2 常见问题处理

问题现象可能原因解决方案
日志不记录权限不足或路径错误检查 $FileCreateMode和目录权限
远程传输失败防火墙阻断或端口未开放检查防火墙规则和 telnet端口测试
配置语法错误模块未加载或语法格式错误使用 rsyslogd -N1验证配置

七、性能优化建议

7.1 缓存与队列配置

# 提升吞吐量配置
$ActionQueueType LinkedList   # 链表队列
$ActionQueueSize 10000       # 队列最大条目
$ActionResumeRetryCount -1   # 无限重试

7.2 日志轮转配置

# 结合logrotate工具
/var/log/nginx.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root adm
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

八、配置示例与对比表

8.1 完整配置示例

# /etc/rsyslog.d/10-nginx.conf
module(load="imfile" PollingInterval="10")
input(
    type="imfile"
    File="/var/log/nginx/access.log"
    Tag="nginx-access"
    StateFile="nginx-access"
    Severity="info"
)

if $programname == 'nginx' then {
    action(
        type="omfile"
        file="/var/log/nginx/nginx.log"
    )
    action(
        type="omelasticsearch"
        server="localhost"
        searchIndex="nginx-logs"
    )
}

8.2 模块对比表

模块名称适用场景配置复杂度性能影响
imfile文件日志监控
omelasticsearch发送到ES集群
omfwd远程日志转发

九、总结

通过以上配置,可实现以下核心功能:
多维度日志过滤(服务类型、优先级、正则匹配)
多目标输出(本地文件、远程服务器、数据库)
高可用架构(加密传输+负载均衡)

🔥 关键配置项 🔥

$ActionQueueType LinkedList
$ActionResumeRetryCount -1
module(load="omelasticsearch")

建议结合Prometheus+Grafana建立监控看板,实时跟踪日志吞吐量和丢弃率。生产环境推荐使用 rsyslog 8.32+版本以获得最佳性能。


Viewing all articles
Browse latest Browse all 3155

Trending Articles