一个被忽略的日志采集框架Rsyslog

      说起日志采集框架,大家动辄使用Logstash和Fluentd, 却忽略了Linux系统内置的日志框架Rsyslog,而且日常大家的应用服务都是部署在Linux服务器,可以减少三方组件的依赖。接下来首先对比一下各日志框架,并讲解一下Rsyslog的部署和配置方法:

      Rsyslog、Logstash、Fluentd、Graylog、Splunk、Filebeat和Metricbeat都是日志管理和分析工具,各自有其独特的优势。下面是Rsyslog与这些工具的比较:
Rsyslog:
轻量级:Rsyslog是原生的Linux服务,不需要额外的依赖,因此在资源消耗上相对较低。
广泛支持:大多数Linux发行版默认支持,配置简单,适合快速部署。
模块化:支持插件系统,可以通过添加模块扩展功能,如发送到Kafka或MySQL。
实时性:能够处理大量日志消息,每秒处理百万级别的消息。
灵活性:通过模板和规则可以灵活配置日志路由和格式。
Logstash:
强大处理:提供丰富的过滤和转换能力,适合复杂的日志数据处理。
Elastic Stack集成:与Elasticsearch和Kibana集成,提供强大的搜索和可视化。
社区支持:拥有庞大的社区和众多插件,适用于各种数据源和目标。
事件驱动:通过管道模型处理数据流,可扩展性强。
Fluentd:
简单配置:使用JSON格式配置,易于理解和维护。
容器友好:在容器化环境中表现优秀,常用于Docker和Kubernetes。
插件丰富:支持大量输入和输出插件,适应多种场景。
高效:内存和CPU使用率较低,适合大规模部署。
Graylog:
企业级:提供全面的日志管理、搜索和分析功能,适合企业级部署。
可视化:内置强大的日志分析和可视化界面。
可扩展:支持水平扩展,可以处理大量日志数据。
集成:支持与其他系统集成,如SIEM工具。
Splunk:
商业支持:提供官方支持,有强大的商业功能和服务。
分析能力:强大的日志分析和机器学习功能,适用于安全和性能监控。
可视化:用户友好的界面和强大的仪表板功能。
生态系统:拥有丰富的应用市场,支持各种集成。
Filebeat 和 Metricbeat:
轻量级shippers:专注于收集日志和指标,资源占用低。
易部署:与Elasticsearch和Kibana紧密集成,适合分布式环境。
自动发现:在Kubernetes和Docker环境下可以自动发现容器日志。
每个工具都有其特定的适用场景。Rsyslog在日志收集和基础路由方面表现出色,而Logstash、Fluentd、Graylog和Splunk更侧重于日志的处理、分析和可视化。Filebeat和Metricbeat作为Beats的一部分,专注于轻量级的日志和指标收集。选择哪种工具取决于具体需求,如资源限制、规模、分析复杂度和预算。

一、 Rsyslog安装与部署指南

1. 引言
Rsyslog是一款广泛使用的日志收集系统,它能够从多个源接收日志消息并将其存储在中央位置,便于管理和分析。在这篇博文中,我们将详细介绍如何在Linux系统上安装和配置Rsyslog。
2. 系统要求
确保你的系统是基于Linux的,例如Ubuntu、CentOS或Debian。Rsyslog支持多种Linux发行版。
3. 安装Rsyslog
3.1 Ubuntu/Debian

sudo apt-get update
sudo apt-get install rsyslog

3.2 CentOS/RHE

#
sudo yum install rsyslog

# 使用DNF:

sudo dnf install rsyslog

4. 配置Rsyslog
Rsyslog的配置文件通常位于/etc/rsyslog.conf。打开这个文件并根据你的需求进行编辑。

sudo nano /etc/rsyslog.conf

5. 开启Rsyslog服务

sudo systemctl start rsyslog
# 为了使Rsyslog在系统启动时自动运行,执行:
sudo systemctl enable rsyslog

6. 配置远程日志收集
如果你想让Rsyslog收集远程服务器的日志,你需要在配置文件中启用网络监听,并设置适当的输入和输出模块。例如,启用UDP监听:

$ModLoad imudp
$InputUDPServerRun 514

*.* @remote-server-ip:514

# 重启Rsyslog服务
sudo systemctl restart rsyslog

7. 测试与验证
创建一个测试日志文件并观察Rsyslog是否正确处理它:

echo "Test log message" | logger
sudo cat /var/log/syslog

8. 安全与最佳实践
保护Rsyslog端口,只允许特定IP访问。
定期备份和审核配置文件。
使用SSL/TLS加密传输敏感日志数据。

二、 Rsyslog的日志持久化(Kafka、clickhouse、mysql)

1)  Rsyslog 向 Kafka 发送数据
要配置Rsyslog将日志发送到Kafka,你需要安装omkafka输出模块。以下是基本步骤:
1. 安装omkafka插件:

   sudo apt-get install rsyslog-gnutls # 如果需要SSL/TLS支持
   sudo apt-get install libmsgpackc2-dev # 依赖项
   git clone https://github.com/rsyslog/liblognorm.git
   cd liblognorm
   ./configure && make && sudo make install
   git clone https://github.com/rsyslog/rainer-script-parser.git
   cd rainer-script-parser
   ./autogen.sh
   ./configure && make && sudo make install
   git clone https://github.com/rsyslog/rsyslog-docker.git
   cd rsyslog-docker/omkafka
   ./autogen.sh
   ./configure && make && sudo make install
   

2. 编辑/etc/rsyslog.conf,添加如下配置:

   $ModLoad omkafka
   $KafkaBroker "localhost:9092"
   $KafkaTopic "syslog"
   *.* @@localhost:9092

3. 重启Rsyslog服务:

 sudo systemctl restart rsyslog

 

2) Rsyslog 向 ClickHouse 发送数据
发送日志到ClickHouse需要一个中间组件,因为Rsyslog不直接支持ClickHouse。一种常见方法是结合使用omstdout模块和一个脚本或工具(如clickhouse-client)来转发数据:
1. 编辑/etc/rsyslog.conf,添加omstdout模块配置:

   $ModLoad omstdout
   local7.* /usr/local/bin/forward-to-clickhouse.sh

2. 创建forward-to-clickhouse.sh脚本,使用ClickHouse客户端将日志插入到表中。

3)   Rsyslog 向 MySQL 发送数据

Rsyslog可以使用ommysql模块直接将日志写入MySQL数据库:
1. 安装ommysql模块:

  sudo apt-get install rsyslog-mmdblookup
   git clone https://github.com/rsyslog/rsyslog-modules.git
   cd rsyslog-modules/ommysql
   ./autogen.sh
   ./configure && make && sudo make install

2. 编辑/etc/rsyslog.conf,添加MySQL配置:

   $ModLoad ommysql
   $ActionOMMySQLServer "localhost"
   $ActionOMMySQLDatabase "syslogs"
   $ActionOMMySQLUser "syslog_user"
   $ActionOMMySQLPassword "syslog_password"
   $ActionOMMySQLTable "syslog_events"
   *.* :ommysql:

3. 重启Rsyslog服务:

 sudo systemctl restart rsyslog

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT 行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值