溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS8中怎么配置Rsyslog服務器

發布時間:2021-07-12 15:04:05 來源:億速云 閱讀:232 作者:Leah 欄目:互聯網科技
# 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 日志未接收

  • 檢查防火墻設置
  • 驗證網絡連通性
  • 查看/var/log/messages中的錯誤信息

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服務器的完整指南,從基礎安裝到高級配置,并提供了常見問題解決方案和進階建議。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女