如何有效地收集和管理大量服务器的日志一直是企业很头疼的一个问题,部分企业应用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. xcode导出手机的崩溃日志

    1.第一步将手机连接xcode 点击window 2.选择 Device and Simulators 3.选择View Device Logs 4.导出文件 右键鼠标选择Export Logs 5. ...

  2. 网络编程之新函数inet_pton和inet_ntop

    1.头文件 1 #include <arpe/inet.h> 2.inet_pton 函数 A.原型 1 int inet_pton(int family, const char *str ...

  3. SuperPixel

    目录 SLIC Superpixel algorithm 距离函数的选择 代码 Gonzalez R. C. and Woods R. E. Digital Image Processing (For ...

  4. SNGAN

    目录 概 主要内容 Miyato T., Kataoka T., Koyama M & Yoshida Y. SPECTRAL NORMALIZATION FOR GENERATIVE ADV ...

  5. CS5213demoboard设计电路|DMI转VGA带II2S音频输出转接线|CS5213方案

    CS5213是台湾CAPSTONE瑞奇达推出的一款HDMI(高清多媒体接口)到VGA转换芯片. CS5213设计HDMI转VGA带II2S转接线产品特性: ◇将完整的HDMI信号转换为VGA输出◇支持 ...

  6. JSP中使用<c:forEach>标签循环遍历元素

    1.forEach标签元素 <c:forEach items="接收集合对象" var="迭代参数名称" varStatus="迭代状态,可访问 ...

  7. 目录-Bug集锦

    <Bug集锦>主要是收集一些较有回顾意义的Bug以及Bug的处理思路,方便大家互相学习. 目录 BUG-Nuget包版本不一致导致程序行为与预期不符

  8. java运算符2

    续: 位运算符(<<,>>,>>>) 1.<<: 3<<2,二进制左移2位,右边用0补齐       3的二进制:00000000 0 ...

  9. unittest_skip跳过用例执行(3)

    在执行测试用例时,有时候有些用例是不需要执行的,比如版本迭代用例弃用,测试周期短只需要执行优先级高的用例,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作 ...

  10. lombok不支持enum类型

    今天在使用枚举时想着少写getter方法和构造方法,结果加上注解后说是只支持class类型 来自为知笔记(Wiz)