11. Ubuntu 伺服器集中式記錄:必讀指南

監控和日誌記錄是管理和維護 Ubuntu Server 22.04 的關鍵層面。無論您執行的是單台伺服器還是管理複雜的基礎架構,有效的監控工具都能讓您追蹤系統效能、排除故障並確保可靠性。本指南將介紹如何使用 rsyslog 或 syslog-ng設定集中式日誌記錄、將日誌轉送到遠端日誌伺服器,以及將 Ubuntu Server 與 Nagios、Zabbix 和 Prometheus 等常用監控平台整合。


01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何設定您的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud

03. 精通 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud

04. 在 Ubuntu Server 上管理使用者和權限:綜合指南 – SysOSX: AI & Cloud

05. Ubuntu Server 網路基礎:綜合指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud

07.修補和更新 Ubuntu Server:綜合指南 – SysOSX: AI & Cloud

08. 保護您的 Ubuntu 伺服器:強化和防護的實用步驟 – SysOSX: AI & Cloud

09. Ubuntu 伺服器稽核和日誌記錄

10. Ubuntu Server 系統監控工具:綜合指南 – SysOSX: AI & Cloud



伺服器監控為何重要

在當今全天候連線的數位環境中, 97% 的組織 認為伺服器監控對業務連續性至關重要(IDC,2024 年)。對於 Ubuntu Server 22.04 使用者而言,有效的監控意味著:

📊 為容量規劃提供可行的見解

🛠️ 透過主動偵測防止 68% 的潛在故障

📈 透過追蹤 CPU/RAM/磁碟使用情況最佳化資源分配

🔍 透過集中式日誌記錄實現快速故障排除

Ubuntu Server 上的集中式日誌記錄

集中式日誌記錄將多台伺服器的日誌整合到一個位置,便於分析基礎架構中的問題並進行故障排除。Ubuntu Server 22.04 支援以下強大的日誌記錄工具: rsyslog 和 syslog-ng。


集中式日誌記錄精通

rsyslog 與 syslog-ng:快速比較

特性rsyslogsyslog-ng
通訊協定支援UDP/TCPUDP/TCP/TLS
篩選基礎進階
效能高非常高
設定簡單複雜

設定 rsyslog 以實現集中式日誌記錄

rsyslog 是一個可靠且廣泛使用的日誌守護行程,Ubuntu Server 預先安裝了該程式。請按以下步驟將其設定為集中式日誌記錄:

  • 安裝 rsyslog(如果尚未安裝):
sudo apt update && sudo apt install rsyslog
  • 編輯 rsyslog 設定檔:
    開啟 /etc/rsyslog.conf ,取消註解以下行以啟用基於 UDP 或 TCP 的日誌轉送:
# For UDP
#module(load="imudp")
#input(type="imudp" port="514")

# For TCP
#module(load="imtcp")
#input(type="imtcp" port="514")
  • 重新啟動 rsyslog 服務:
sudo systemctl restart rsyslog
  • 設定日誌轉送:
    要將日誌轉送到遠端伺服器,請將以下行新增到 /etc/rsyslog.conf:
*.* @@remote-server-ip:514

  • 將 remote-server-ip 替換為日誌伺服器的 IP 位址。請使用 @ 表示 UDP,使用 @@ 表示 TCP。

設定 syslog-ng 以實現集中式日誌記錄

syslog-ng 是另一個強大的日誌記錄工具,提供進階篩選和日誌記錄功能。設定方法如下:

  • 安裝 syslog-ng:
 sudo apt update && sudo apt install syslog-ng
  • 設定 syslog-ng 以實現集中式日誌記錄:
    編輯設定檔 /etc/syslog-ng/syslog-ng.conf:
source s_local {
    system();
    internal();
};

destination d_remote {
    tcp("remote-server-ip" port(514));
};

log {
    source(s_local);
    destination(d_remote);
};

  • 將 remote-server-ip 替換為日誌伺服器的 IP 位址。
  • 重新啟動 syslog-ng:
 sudo systemctl restart syslog-ng

    將日誌轉送到遠端日誌伺服器

    在分散式環境中,將日誌轉送到遠端伺服器對於集中監控至關重要。 rsyslog 和 syslog-ng 都支援透過 UDP 或 TCP 轉送日誌。請確保遠端日誌伺服器已設定為接受指定連接埠(例如 514)上的傳入日誌。

    設定遠端日誌伺服器

    在遠端日誌伺服器上,請確保 rsyslog 或 syslog-ng 已設定為接收日誌:

    • 對於 rsyslog,將以下行新增到 /etc/rsyslog.conf:
    module(load="imtcp")
    input(type="imtcp" port="514")
    
    
    • 對於 syslog-ng,請定義一個用於接收傳入日誌的來源:
    source s_remote {
        tcp(port(514));
    };
    
    

    將 Ubuntu Server 與監控平台整合

    Nagios、Zabbix 和 Prometheus 等監控平台可即時了解伺服器的健康狀態、效能和資源利用率。以下是將 Ubuntu Server 22.04 與這些工具整合的方法。

    Nagios:經典解決方案

    Nagios 是一款強大的監控工具,可追蹤伺服器效能並提醒您注意潛在問題。要將 Nagios 與 Ubuntu Server 整合:

    • 安裝 Nagios 代理程式:
     sudo apt update && sudo apt install nagios-nrpe-server nagios-plugins
    
    • 設定 NRPE:
      編輯 /etc/nagios/nrpe.cfg 以定義 Nagios 將監控的命令:
    command[check_load]=/usr/lib/nagios/plugins/check_load -w 5,4,3 -c 10,8,6
    command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
    
    
    • 重新啟動 NRPE:
     sudo systemctl restart nagios-nrpe-server
    

      Zabbix:企業級監控

      Zabbix 是一個企業級監控平台,具有豐富的自訂選項。要將 Zabbix 與 Ubuntu Server 整合:

      • 安裝 Zabbix 代理程式:
       sudo apt update && sudo apt install zabbix-agent
      
      • 設定 Zabbix 代理程式:
        編輯 /etc/zabbix/zabbix_agentd.conf 並設定伺服器和主機名稱:
      Server=your-zabbix-server-ip
      Hostname=UbuntuServer22.04
      
      
      • 重新啟動 Zabbix 代理程式:
      sudo systemctl restart zabbix-agent
      

        Prometheus + Grafana:現代監控堆疊

        Prometheus 是一款現代監控工具,專為可擴展性和彈性而設計。要將 Prometheus 與 Ubuntu Server 整合:

        • 安裝 Node Exporter:
          Node Exporter 是一個輕量級代理程式,用於向 Prometheus 公開指標。
        wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
        tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
        sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
        
        
        • 執行 Node Exporter:
         sudo nohup /usr/local/bin/node_exporter &
        
        • 設定 Prometheus:
          透過編輯 prometheus.yml 檔案將 Ubuntu 伺服器新增到 Prometheus:
        scrape_configs:
          - job_name: 'ubuntu_servers'
            scrape_interval: 15s
            static_configs:
              - targets: ['server1:9100', 'server2:9100']
        
        

        Grafana 儀表板點子:

        1. 叢集範圍資源熱點圖
        2. 預測性磁碟空間預測
        3. 異常偵測警示

        專業監控策略

        1. 日誌保留原則
          • 7 天 – 關鍵系統
          • 30 天 – 一般伺服器
          • 1 年 – 合規系統
        2. 警示閾值最佳實務
          • 🟢 警告:磁碟使用率 75%
          • 🔴 嚴重:磁碟使用率 90%
          • 📈 自動擴縮觸發器:CPU 持續 70%
        3. 成本最佳化
          • 使用 VictoriaMetrics 實現 10 倍於原生 Prometheus 的儲存壓縮
          • 對偵錯層級項目實施日誌採樣

        現代解決方案:分層日誌管理

        聰明的團隊會結合多種保留策略:

        層保留期限儲存類型使用案例
        熱層7 天NVMe/SSD主動故障排除
        溫層30 天HDD/雲端儲存事後分析
        冷層1 年以上Glacier/S3 Deep Archive合規/稽核

        實作範例:

        # Use logrotate with AWS S3 lifecycle rules
        /var/log/nginx/*.log {
            daily
            rotate 7
            compress
            postrotate
                /usr/bin/aws s3 sync /var/log/nginx/ s3://logs-hot/
                find /var/log/nginx/ -type f -mtime +7 -exec aws s3 cp {} s3://logs-cold/ \;
            endscript
        }
        
        

        重新評估保留期限的關鍵因素

        1. 合規要求
          • GDPR:個人資料最長 6 年
          • SOX:金融系統 7 年
          • PCI-DSS:1 年,其中 3 個月可立即存取
        2. 事件調查需求
          • APT 攻擊通常在外洩 6 個月以上後才被發現(Mandiant M-Trends 2024)
        3. 成本最佳化策略
          • 7 天後壓縮日誌: zstd --ultra -22 (壓縮率 80% 以上)
          • 使用欄式格式(Parquet/ORC)使分析儲存縮小 60%

        修訂建議

        對於 大多數生產關鍵系統:

        • 熱層存取:7-14 天(SSD/NVMe)
        • 合規封存:1 年以上(冷儲存)
        • 安全性日誌:最少 180 天(CIS Benchmark v4)

        合規設定範例:

        # Auditd rules for PCI-DSS
        -a always,exit -F arch=b64 -S all -F path=/var/log/payment.log -F perm=wa -k payment_logs
        

        常見問題:Ubuntu Server 監控

        Q:我應該多久檢查一次伺服器指標?
        A:– 生產系統每 15 秒檢查一次

        • 非關鍵工作負載每 1 分鐘檢查一次

        Q:我可以監控 Docker 容器嗎?
        A:可以!請使用:

        • cAdvisor(用於容器指標)
        • Prometheus Docker Swarm exporter

        Q:企業監控的成本是多少?
        A:開源方案免費。企業版:

        • Nagios XI:約 $1,995/年
        • Zabbix Enterprise:約 $1,700/年
        • Grafana Cloud:約 $50+/月

        參考文件:

        Syslog-ng: https://syslog-ng.github.io/

        Rsyslogd: https://www.rsyslog.com/doc/index.html


        結論

        監控和日誌記錄對於維護 Ubuntu Server 的健康狀態和效能至關重要。透過使用 rsyslog 或 syslog-ng設定集中式日誌記錄、將日誌轉送到遠端伺服器,並與 Nagios、Zabbix 和 Prometheus 等平台整合,您可以深入了解基礎架構並確保平穩運作。

        敬請期待: Ubuntu 伺服器稽核與合規最佳實務

        有效的系統監控只是維護安全合規伺服器環境的一部分。在下一篇文章中,我們將深入探討 稽核與合規最佳實務 (適用於 Ubuntu Server),涵蓋 PCI-DSS 和 GDPR 等合規標準概述、使用 auditctl設定稽核規則,以及產生稽核報告以識別可疑活動等主題。不要錯過!

        3 thoughts on “11. Centralized Logging for ubuntu server: a must read guide”

        發表留言