CentOS8中怎么配置Rsyslog服务器

发布时间:2021-07-12 15:04:05 作者:Leah
来源:亿速云 阅读:220
# CentOS8中怎么配置Rsyslog服务器

## 前言

Rsyslog是Linux系统中最常用的日志管理工具之一,它提供了高性能、高安全性的日志处理能力。在CentOS8中配置Rsyslog服务器可以帮助我们集中管理多台服务器的日志,便于监控和故障排查。本文将详细介绍在CentOS8系统中配置Rsyslog服务器的完整步骤。

## 一、Rsyslog简介

### 1.1 什么是Rsyslog
Rsyslog("Rocket-fast SYStem for LOG processing")是syslog协议的增强实现,具有以下特点:
- 支持TCP、UDP、TLS加密传输
- 支持MySQL、PostgreSQL等数据库存储
- 支持日志内容过滤和重定向
- 高性能,每秒可处理百万级日志消息

### 1.2 Rsyslog基本架构

[客户端] –> (网络传输) –> [Rsyslog服务器] –> (存储/转发)


## 二、环境准备

### 2.1 系统要求
- CentOS8操作系统
- 至少1GB可用内存
- root或sudo权限

### 2.2 检查系统版本
```bash
cat /etc/centos-release

2.3 关闭防火墙或开放端口

# 临时关闭防火墙
systemctl stop firewalld

# 或开放514端口(UDP/TCP)
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload

三、安装Rsyslog

3.1 检查是否已安装

CentOS8默认已安装Rsyslog,可通过以下命令验证:

rsyslogd -v

3.2 安装最新版本(可选)

dnf install rsyslog

3.3 启动服务并设置开机自启

systemctl start rsyslog
systemctl enable rsyslog

四、配置Rsyslog服务器

4.1 主配置文件位置

/etc/rsyslog.conf
/etc/rsyslog.d/*.conf

4.2 基本服务器配置

编辑主配置文件:

vim /etc/rsyslog.conf

取消以下注释以启用TCP/UDP监听:

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

4.3 配置日志接收规则

在文件末尾添加:

# 接收所有设备的日志
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~

4.4 高级配置示例

# 按IP地址分类存储
$template IpTemplate,"/var/log/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?IpTemplate

# 过滤特定程序的日志
if $programname == 'nginx' then /var/log/nginx/access.log

五、客户端配置

5.1 编辑客户端rsyslog配置

vim /etc/rsyslog.conf

添加以下内容(替换192.168.1.100为服务器IP):

*.* @192.168.1.100:514  # UDP传输
*.* @@192.168.1.100:514 # TCP传输

5.2 重启客户端服务

systemctl restart rsyslog

六、日志轮转配置

6.1 安装logrotate

dnf install logrotate

6.2 创建自定义轮转配置

vim /etc/logrotate.d/remote_logs

添加以下内容:

/var/log/*/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

七、安全加固

7.1 启用TLS加密传输

  1. 生成证书:
openssl req -x509 -newkey rsa:2048 -keyout /etc/rsyslog.key -out /etc/rsyslog.crt -days 365 -nodes
  1. 服务器端配置:
module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1")
input(type="imtcp" port="6514" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="anon")
  1. 客户端配置:
*.* @@(o)server.example.com:6514;RSYSLOG_TLS

7.2 访问控制

# 只允许特定IP访问
$AllowedSender UDP, 192.168.1.0/24
$AllowedSender TCP, 192.168.1.0/24

八、测试与验证

8.1 测试日志发送

logger "This is a test message from client"

8.2 检查服务器日志

ls /var/log/client-hostname/
tail -f /var/log/client-hostname/root.log

8.3 查看Rsyslog状态

systemctl status rsyslog
netstat -tulnp | grep rsyslog

九、常见问题解决

9.1 日志未接收

9.2 权限问题

chmod -R 755 /var/log/
semanage fcontext -a -t var_log_t "/var/log/.*"
restorecon -Rv /var/log

9.3 性能优化

# 启用批量处理
$ActionQueueSize 100000
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

十、进阶配置

10.1 日志存入MySQL

  1. 安装MySQL模块:
dnf install rsyslog-mysql
  1. 配置数据库输出:
module(load="ommysql")
*.* :ommysql:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD

10.2 使用Elasticsearch存储

module(load="omelasticsearch")
template(name="json-template" type="list" option.json="on") {
    constant(value="{")
    constant(value="\"timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
    constant(value="\",\"message\":\"")    property(name="msg")
    constant(value="\",\"host\":\"")       property(name="hostname")
    constant(value="\",\"severity\":\"")   property(name="syslogseverity-text")
    constant(value="\"}")
}
action(type="omelasticsearch"
       server="elasticsearch.example.com"
       serverport="9200"
       template="json-template"
       searchIndex="syslog"
       bulkmode="on")

结语

通过本文的详细指导,您应该已经成功在CentOS8上配置了Rsyslog服务器。Rsyslog的强大功能可以帮助您构建企业级的日志管理系统,结合其他工具如Logstash、Grafana等可以打造完整的监控解决方案。

附录

参考资源

相关命令速查

命令 说明
systemctl status rsyslog 查看服务状态
rsyslogd -N1 测试配置文件
logger "test message" 发送测试日志
tail -f /var/log/messages 实时查看日志

”`

这篇文章共计约2100字,采用Markdown格式编写,包含了CentOS8中配置Rsyslog服务器的完整指南,从基础安装到高级配置,并提供了常见问题解决方案和进阶建议。

推荐阅读:
  1. 日志管理-rsyslog
  2. syslog和rsyslog有什么不同?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rsyslog centos8

上一篇:Asp.Net程序目录下文件夹或文件操作导致Session失效怎么办

下一篇:CentOS中怎么配置ssh系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》