如何有效地收集和管理大量服务器的日志一直是企业很头疼的一个问题,部分企业应用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. 再谈多线程模型之生产者消费者(总结)(c++11实现)

    0.关于 为缩短篇幅,本系列记录如下: 再谈多线程模型之生产者消费者(基础概念)(c++11实现) 再谈多线程模型之生产者消费者(单一生产者和单一消费者)(c++11实现) 再谈多线程模型之生产者消费 ...

  2. 【LeetCode】349. Intersection of Two Arrays 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:Java解法,HashSet 方法二:Pyt ...

  3. codeforces 624C Graph and String

    C. Graph and String time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. Codeforces 1076G Array Game 题解

    目录 题目大意 做法 代码 不想写昨天晚上cf的比赛题目所以来写题解摸摸鱼 题目大意 有一个在长度为\(k\)的正整数序列\(b\)上进行的游戏,一开始一个棋子放在位置\(1\),假如当前棋子的位置为 ...

  5. Wiener Filtering

    目录 基本 滤波的推导 特别的情况 特别的例子 Signals, Systems and Inference, Chapter 11: Wiener Filtering (mit.edu) 基本 在图 ...

  6. UML的定义和组成详细介绍

    目录 1.UML 1.1概述 1.2 UML是一种建模语言 1.3 UML语言包含三方面 2.UML支持软件体系结构建模 2.1 逻辑视图 2.2 实现(开发)视图 2.3 部署视图 2.4 过程视图 ...

  7. MATLAB 设置示波器颜色和行列

    设置颜色 设置行列和图例 放大缩小显示

  8. spring boot --- 注解 @Bean 和@Component

    1.前言 @Bean是给方法注册bean @Component是给不好归类的类注册bean 2.可以达到一样的效果 (1)@Component 直接注册即可 完整源码 package com.exam ...

  9. 使用 try-catch

    ECMA-262 第 3 版引入了 try-catch 语旬,当 try-catch 语句中发生错误时, 浏览器会认为错误已经被处理了 ,因而不会报告错误.对于那些不要求用户懂技术,也不需要用户理解错 ...

  10. PPT2010初识

    原文链接:https://www.toutiao.com/i6486689592241029645/ 一.认识PPT PPT是PowerPoint简称,主要用于演示文稿的创建,即幻灯片的制作演示软件. ...