快速检查软件是否安装?轻松搞定!

为什么需要发送syslog?

  • 集中管理:将多台服务器的日志汇总到单一平台(如ELK、Graylog)。
  • 实时分析:快速检测安全事件(如入侵尝试)或系统错误。
  • 合规性:满足GDPR、等保等法规对日志存储的要求。

核心概念

  1. syslog协议
    Linux通过syslog守护进程(如rsyslog/syslog-ng)处理日志,支持:

    • 设施(Facility):标识日志来源(如auth认证、kern内核)。
    • 级别(Severity):从debug(最低)到emerg(最高)共8级。
  2. 传输协议
    • UDP 514:默认端口,速度快但不可靠。
    • TCP 514:可靠传输,防丢包。
    • TLS加密:通过证书加密数据(推荐生产环境使用)。

配置rsyslog发送日志(推荐方案)

rsyslog是大多数Linux发行版(如Ubuntu/CentOS)的默认日志服务。

步骤1:安装与检查

# 若未安装(极少情况)
sudo apt install rsyslog   # Debian/Ubuntu
sudo yum install rsyslog   # CentOS/RHEL

步骤2:配置发送远程日志

编辑配置文件/etc/rsyslog.conf

sudo vim /etc/rsyslog.conf
  • 发送所有日志到远程服务器(IP:192.168.1.100):
    *.* @192.168.1.100:514        # UDP发送
    *.* @@192.168.1.100:514       # TCP发送
  • 仅发送特定日志(例:发送auth认证日志):
    auth.* @@192.168.1.100:514

步骤3:启用加密传输(TLS)

  1. 生成证书(需CA机构或自签名):
    sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/rsyslog.key -out /etc/rsyslog.crt -days 365
  2. 配置TLS:
    # 在/etc/rsyslog.conf 添加
    $DefaultNetstreamDriver gtls
    $DefaultNetstreamDriverCAFile /etc/rsyslog.crt
    $DefaultNetstreamDriverCertFile /etc/rsyslog.crt
    $DefaultNetstreamDriverKeyFile /etc/rsyslog.key
    *.* @@(o)192.168.1.100:6514  # 6514为TLS端口

步骤4:重启服务

sudo systemctl restart rsyslog
sudo systemctl enable rsyslog

使用logger命令手动发送

通过命令行即时发送测试日志:

# 发送一条测试日志
logger "This is a test log from Server A"
# 指定设施和级别
logger -p auth.warning "Authentication failed for user root"
  • 日志将按rsyslog配置自动转发到远程服务器。

通过systemd-journald发送

若系统使用systemd(如Ubuntu 16.04+/CentOS 7+),可通过journald转发:

  1. 编辑/etc/systemd/journald.conf
    [Journal]
    ForwardToSyslog=yes        # 启用syslog转发
  2. 重启服务:
    sudo systemctl restart systemd-journald
  3. 日志将由rsyslog接管并发送到远程服务器。

安全与优化建议

  1. 防火墙规则
    开放远程服务器的514/TCP端口:

    sudo ufw allow 514/tcp   # Ubuntu
    sudo firewall-cmd --add-port=514/tcp --permanent  # CentOS
  2. 权限控制
    限制日志访问权限:

    chmod 600 /etc/rsyslog.key   # 保护私钥
  3. 日志轮转
    避免本地磁盘爆满,配置logrotate

    # /etc/logrotate.d/rsyslog
    /var/log/syslog {
       daily
       rotate 7
       compress
       delaycompress
       missingok
    }

验证与排错

  1. 检查本地队列
    sudo systemctl status rsyslog    # 查看服务状态
    tail -f /var/log/syslog          # 跟踪本地日志
  2. 测试远程接收
    在日志服务器用tcpdump抓包:

    sudo tcpdump -i eth0 port 514 -vv
  3. 常见错误
    • 连接拒绝:检查远程服务器防火墙和rsyslog是否监听。
    • TLS失败:确保证书路径正确且权限为600

替代方案:syslog-ng

若使用syslog-ng(更灵活的过滤功能):

  1. 安装:
    sudo apt install syslog-ng   # Debian/Ubuntu
  2. 配置发送日志(编辑/etc/syslog-ng/syslog-ng.conf):
    destination remote_server { tcp("192.168.1.100" port(514)); };
    log { source(s_src); destination(remote_server); };

  • 基础场景:通过rsyslog配置@@目标IP:514(TCP)即可完成日志发送。
  • 安全场景:务必启用TLS加密(端口通常为6514)。
  • 临时测试:使用logger命令快速验证。
  • 现代系统:结合systemd-journald实现无缝转发。

引用说明参考Linux官方文档(man rsyslog.conf)、RFC 5424(syslog协议标准),以及Red Hat/CentOS系统管理指南,TLS配置部分遵循OpenSSL官方安全实践。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7728.html

(0)
酷番叔酷番叔
上一篇 2025年7月17日 19:10
下一篇 2025年7月17日 19:23

相关推荐

  • Linux系统如何查看实时带宽使用情况及流量统计方法?

    在Linux系统中,监控网络带宽使用情况是系统管理和网络故障排查的重要环节,通过查看带宽,可以识别网络拥堵、异常流量占用、性能瓶颈等问题,Linux提供了多种命令行工具和系统监控方法,支持实时流量查看、历史数据统计、进程级流量分析等功能,本文将详细介绍常用的带宽查看工具及其使用方法,帮助用户根据实际需求选择合适……

    2025年9月28日
    3700
  • Linux系统如何正确设置DNS服务器地址?

    在Linux系统中,DNS(域名系统)配置用于将域名解析为IP地址,正确的DNS设置直接影响网络访问效率,本文将详细介绍Linux系统中设置DNS的多种方法,涵盖临时修改、永久配置及不同发行版的操作差异,帮助用户根据实际需求选择合适的配置方式,临时修改DNS(重启后失效)临时修改DNS适用于快速测试或临时场景……

    2025年9月25日
    4500
  • Linux如何绑定多块网卡以实现网络负载均衡?

    Linux网卡绑定(Bonding)是一种将多个物理网卡虚拟为一个逻辑网卡的技术,通过绑定可以提升网络带宽、实现链路冗余和负载均衡,确保网络的高可用性和性能,本文将详细介绍Linux网卡绑定的原理、模式选择及具体配置步骤,网卡绑定原理与模式网卡绑定的核心是通过内核中的bonding模块实现,将多个物理网卡(从设……

    2025年9月24日
    4200
  • Linux如何设置简单密码?具体操作步骤是怎样的?

    在Linux系统中,密码是保障系统安全的重要屏障,但在某些场景下(如本地开发测试、临时访问或低安全需求环境),用户可能需要设置简单密码以方便记忆,本文将详细介绍Linux系统中设置简单密码的多种方法,包括命令行操作、图形界面配置及批量处理技巧,同时提醒相关安全风险,帮助用户在便利与安全间合理平衡,Linux设置……

    2025年8月25日
    5400
  • Linux如何解除软连接?

    在Linux系统中,软连接(也称为符号链接)是一种特殊的文件,它指向另一个文件或目录,类似于Windows系统中的快捷方式,软连接独立于源文件存在,删除软连接不会影响源文件本身,但若软连接指向的源文件被删除,软连接会变成“悬空链接”(dangling link),访问时提示“No such file or di……

    2025年9月23日
    4200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信