如何有效地收集和管理大量服务器的日志一直是企业很头疼的一个问题,部分企业应用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. summernote富文本图片上传,增加视频上传功能、批量上传方法

    Summernote 是一个简单灵活的所见即所得的 HTML 在线编辑器,基于 jQuery 和 Bootstrap 构建,支持快捷键操作,提供大量可定制的选项. 但是却只有图片上传功能,没有视频上传 ...

  2. 【LeetCode】663. Equal Tree Partition 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcode ...

  3. 【九度OJ】题目1445:How Many Tables 解题报告

    [九度OJ]题目1445:How Many Tables 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1445 题目描述: ...

  4. 【LeetCode】376. Wiggle Subsequence 解题报告(Python)

    [LeetCode]376. Wiggle Subsequence 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.c ...

  5. HDU 4355:Party All the Time(三分模板)

    Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...

  6. Codeforces 339B:Xenia and Ringroad(水题)

    time limit per test : 2 seconds memory limit per test : 256 megabytes input : standard input output ...

  7. [数据结构]常见数据结构的typedef类型定义总结

    目录 数据结构类型定义: 1.线性表 线性表(顺序存储类型描述): 线性表(动态存储类型描述) 2.线性表的链式表示 双链表的结点类型描述: 静态链表结点类型的描述: 3.栈的数据结构 顺序栈的数据结 ...

  8. CS229 机器学习课程复习材料-概率论

    本文是斯坦福大学CS229机器学习课程的基础材料,原始文件下载 原文作者:Arian Maleki , Tom Do 翻译:石振宇 审核和修改制作:黄海广 备注:请关注github的更新. CS229 ...

  9. JDK HttpClient 单次请求的生命周期

    HttpClient 单次请求的生命周期 目录 HttpClient 单次请求的生命周期 1. 简述 2. uml图 3. Http连接的建立.复用和降级 3.1 调用流程及连接的建立和复用 3.2 ...

  10. 快看!❤️又一超实用浏览器插件!常用网站自动整合,JSON格式化,CSDN全站去广告!多种工具一键调用。开发者的福音!

    其实这个插件才出来的时候博主也下载了使用过,并没有什么亮点,那时候甚至觉得有点多余,因为CSDN全站去广告啥的,早就安装了油猴脚本,广告?不存在的嘿嘿.. 就在前几天看见CSDN的活动在推荐这款插件, ...