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”

        发表评论