如何有效地收集和管理大量服务器的日志一直是企业很头疼的一个问题,部分企业应用shell脚本来管理,部分企业基于hadoop来开发自己的日志管理系统,第一种管理成本巨大,需要大量的人力来维护脚本的正常运行,第二种研发成本高昂,那么如何才能降低这两方面的成本呢。

 答案是fluentd。

Fluentd是一个免费,而且完全开源的日志管理工具,简化了日志的收集、处理、和存储,你可以不需要在维护编写特殊的日志处理脚本。Fluentd的性能已经在各领域得到了证明:目前最大的用户从5000+服务器收集日志,每天5TB的数据量,在高峰时间处理50,000条信息每秒。

1.1宗旨

由于现代网络和移动应用程序生成大量的事件日志(eg:登入、登出、购买、跟踪日志等等。)这些日志能极大的帮助提高用户行为分析。而且如何简单、可靠、可伸缩性的收集这些日志仍然是个巨大的挑战。

Fluent为解决这一问题提供了一个简单的解决方案,具有以下功能:
1.安装方便  
2.占用空间小  
3.半结构化数据日志记录  
4.灵活的插件机制  
5.可靠的缓冲  
6.日志转发

1.2简便安装

Fluentd可以通过一个内置的Ruby解码器以rpm或者deb包安装,几乎没有系统依赖关系。Fluentd也可以作为Ruby gem,并且可以作为一个命令安装

建议使用gem安装

1.3轻巧的结构

由于其简单的结构,Fluentd的核心只包含3000行Ruby。Fluentd收集各种输入源的事件并将它们写入输出接收器。

eg:

输入源:HTTP, Syslog, Apache Log

输出源:Files, Mail, RDBMS databases, NoSQL storages

1.4半结构化数据日志记录

一个收集事件日志包含三个组件:标签(tag),时间(time)和记录(record)。标签由一个字符串’.’隔开(如myapp.access)用于将事件分类。时间记录的是事件发生时UNIX的时间。包含事件信息的记录是一个JSON对象。

1.5灵活的插件机制

Fluentd的输入源和输出目的地可以通过编写适当的Ruby扩展插件。

插件可以通过Ruby gems出版;以下命令显示了可用插件列表::

$ gem search -rd fluent-plugin

1.6 可靠的缓冲

在传统的系统中,事件日志可能会由于出现意外输出情况造成丢失导致写失败发生(例如网络故障)。Fluentd为了解决这个问题,配备了一个可靠的缓冲策略。

Fluentd的缓冲块包含事件日志的队列,暂时存储收集事件:

当Fluentd从输入源接收到一个事件时,事件日志会附加到顶级块缓冲区。这个临时存储操作永远不会阻塞,即使下一个服务挂机。当顶级数据块的大小达到极限或计时器到期时,一个新的空数据块会被推入队列的顶部。一个单独的线程会将数据块从底部写入下一个服务器或存储服务器。如果这个写操作成功,这个数据块会从队列中移除。否则,数据块将在线程队列中等待,稍后再次尝试写操作。Fluentd缓冲区的实现是可插拔的。默认插件,设置‘Memory’,存储块在内存中。这种方式很快速但不持久。另一个插件,设置 ‘File’,将块存储在文件中。

1.7日志转发

Fluentd支持单节点和多节点配置。多节点配置通常用于事件日志转发到一个中心服务器进行分析。

应用程序服务器通过Fluentd节点转发本地日志至中心服务器的Fluentd节点:

fluentd分布式日志管理系统的更多相关文章

  1. rsyslog管理分布式日志

    [TOC] 背景 有一个4台机器的分布式服务,不多不少,上每台机器上查看日志比较麻烦,用Flume,Logstash.ElasticSearch.Kibana等分布式日志管理系统又显得大材小用,所以想 ...

  2. ElasticSearch+NLog+Elmah实现Asp.Net分布式日志管理

    本文将介绍使用NLOG.Elmah结合ElasticSearch实现分布式日志管理. 一.ElasticSearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布 ...

  3. 分布式日志收集框架Flume

    分布式日志收集框架Flume 1.业务现状分析 WebServer/ApplicationServer分散在各个机器上 想在大数据平台Hadoop进行统计分析 日志如何收集到Hadoop平台上 解决方 ...

  4. Centos7 之安装Logstash ELK stack 日志管理系统

    一.介绍 The Elastic Stack - 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来源 ...

  5. 170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用

    安装测试环境:Ubuntu 16.04.2 LTS 前言 (1)ELK是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来 ...

  6. CentOS 7下安装Logstash ELK Stack 日志管理系统(上)

    介绍 The Elastic Stack - 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来源,任 ...

  7. 分布式文件管理系统HDFS

    Hadoop 分布式文件管理系统HDFS可以部署在廉价硬件之上,能够高容错. 可靠地存储海量数据(可以达到TB甚至PB级),它还可以和Yam中的MapReduce 编程模型很好地结合,为应用程序提供高 ...

  8. ELK +Nlog 分布式日志系统的搭建 For Windows

    前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询  SELECT * FROM `LhzxUsers` WHERE UserN ...

  9. 手把手教你用 FastDFS 构建分布式文件管理系统

    说起分布式文件管理系统,大家可能很容易想到 HDFS.GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统.除了这些之外,国内淘宝和腾讯也有自己的分布式文件 ...

随机推荐

  1. JAVA使用经纬度通过腾讯地图API获取详细地址

    官方文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder package com.weixin.map; ...

  2. js-fn函数返回一个引用变量的细节

    1.直接返回一个字面量对象 function fun1() { return { age:10, name:'adain' } a = fun1(); b = fun1(); b.age = 18 ; ...

  3. vc++ 调用winapi调节屏幕亮度

    !!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist ---- 已经更正文章中错误的地方, 时间: 10/10/2020--------- 自己封 ...

  4. 【剑指Offer】旋转数组中的最小数字 解题报告(Python)

    [剑指Offer]旋转数组中的最小数字 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  5. 【LeetCode】831. Masking Personal Information 解题报告(Python)

    [LeetCode]831. Masking Personal Information 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzh ...

  6. 【机器学*】k*邻算法-02

    k邻*算法具体应用:2-2约会网站配对 心得体会: 1.对所有特征值进行归一化处理:将特征值单位带来的距离影响消除,使所有特征同权重--然后对不同的特征进行加权2.对于相互独立的特征,可以通过建立(特 ...

  7. Scale-Invariant Error

    目录 概 主要内容 代码 Eigen D., Puhrsch C. and Fergus R. Depth Map Prediction from a Single Image using a Mul ...

  8. Gradient-based Hyperparameter Optimization through Reversible Learning

    目录 概 主要内容 算法 finite precision arithmic 实验 Maclaurin D, Duvenaud D, Adams R P, et al. Gradient-based ...

  9. Spring Boot 2 中的默认日志管理与 Logback 配置详解

    Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的.在Spring Boot生态中,为Java Util Logging .Log4J2 和Logb ...

  10. Kerberos打开debug日志

    在JVM的启动参数中加入如下配置,打开kerberos的debug开关: -Dsun.security.krb5.debug=true JVM启动后,kerberos的相关日志会打印到控制台中, 因为 ...