基于日志处理的ElasticSearch的学(gen)习(feng)
最近学了点solr,然后有听说了ElasticSearch,就想着也学一下ElasticSearch,然后看见了ElasticSearch用于日志的收集的分析,这里就来学习一下。
百度一下ElasticSearch 日志这个关键词组,会出现一下的搜索结果:
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- Flume+Elasticsearch搭建实时日志分析系统
- 基于 Kafka 和 ElasticSearch,LinkedIn是如何构建实时日志分析系统的?
- 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
- 开源实时日志分析ELK平台部署
- 用ElasticSearch存储日志
- 使用Elasticsearch + Logstash + Kibana搭建日志集中分析平台实践
- Logstash+ElasticSearch+Kibana4日志分析系统安装详解
- elasticsearch logstash kibana日志分析监控套件部署使用
- 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
就直接从博客开始学习,看下别人是怎么用这玩意儿的。
之前处理日志的有Log4j+Kafka,然后又出来了一个叫ELK的,也就是ElasticSearch,Logstash和Kibana的结合。
日志主要包括系统日志、应用程序日志和安全日志。平常用System.out.println的我忍不住捂脸,涉及到日志的处理少,主要是看控制台。但是其实日志的作用很大的:
系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
其实,日志还有一个作用啊,比如说你在处理数据的时候,由于某些原因,导致了和你预期冲突的事件发生,导致数据遗失,这时候还可以通过日志找回来,几乎是最后一种方法了。
日志是很重要的,但是不就是输出了“几行”信息么,需要花这么大力气去搜索和分析日志?其实这个不是别人问的,正是我啊!因为没接触过淘宝京东那么大的系统,也没有经历过在小一点的公司工作的经历,所以对日志的印象还停留在一个比较初级的阶段(我归结为环境陷阱,没有参考别的,这个是我自创的,表述的含义是:因为没经历过,所以认知和境界没达到)。
但是事实上,在稍具规模的系统中,日志都是分散在不同的设备当中(Thinking about that you start up a five tomcats cluster,这他妈就有五个地方出日志,不要信我,我猜的)。再拓展一下,假如你要管理数十台乃至上百台的服务器,除了问题,你还得一台一台地去找,这得多麻(要)烦(命)啊。
问题一:我们要对日志的管理集中化
此外,当日志进行集中化处理之后就是查找分析,linux玩的很溜的你说,尼玛,这不简单,linux那么多好用的命令,譬如三贱客,哦不,三剑客grep,sed和awk,随你用啊。你说啥,不会用?滚一边玩蛋去(某明经常搞这句,反正别人看不到)。呵呵呵,突然来一个10G的PV(就是pageview,经常看见PV这个简写,以为有多高大上)的日志,来来来(此处应有MMP)看你的命令用的多熟!其实说了这么多要引出的就是,以前的方法已经玩不溜的(怕玩的溜的打我的脸),我们要有新工具了。
问题二:要有高效的工具完成日志的:统计、检索和排序
当,当,当,那么是“当,当,当”呢,就是今天要学习的ELK。
下面的介绍是借(潮)鉴(汐)的:
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它(Kibana)可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
来丰富一下词汇量:
- elastic:弹性的,可伸缩的,灵活的
- stash:隐(贮)藏物; (旧) 藏身处
- Kibana:野蛮人(来自google翻译的)
Logstash和ElasticSearch我觉得都还好理解,Logstash就像一个漏斗一样收集来自不同地方放的日志,ElasticSearch刚好可以来对日志进行检索,但是Kibana(基巴拉,我自己翻译的,这个锅就不给google了,想歪了的自己敲100遍hello world)是来干哈的?
这个图画得比较清晰,也很好理解,原图在这儿。
P. S. 我知道盗图可耻,但是画图真的费时间

如图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。
我觉得这个架构看上去还挺简单的,继续看吧。
ELK平台搭建
系统环境
System: CentOS 版本暂定
ElasticSearch: 2.1.0
Logstash: 2.1.1
Kibana: 4.3.0
Java: openjdk version 版本暂定
注:由于Logstash的运行依赖于Java环境, 而Logstash 1.5以上版本不低于java 1.7,因此推荐使用最新版本的Java。因为我们只需要Java的运行环境,所以可以只安装JRE,不过这里我依然使用JDK,请自行搜索安装。
啥时候给整出了一套意见部署安装的脚本再PO上来,我表示干这种事还挺有趣。
原文地址:
ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
P. S. 字放大一点,免得被人说~
基于日志处理的ElasticSearch的学(gen)习(feng)的更多相关文章
- kafka日志同步至elasticsearch和kibana展示
kafka日志同步至elasticsearch和kibana展示 一 kafka consumer准备 前面的章节进行了分布式job的自动计算的概念讲解以及实践.上次分布式日志说过日志写进kafka, ...
- 通过Filebeat把日志传入到Elasticsearch
学习的地方:配置文件中预先处理字段数据的用法 通过Filebeat把日志传入到Elasticsearch Elastic Stack被称之为ELK (Elasticsearch,Logstash an ...
- Windows 系统下json 格式的日志文件发送到elasticsearch
Windows 系统下json 格式的日志文件发送到elasticsearch配置 Nxlog-->logstash-->ElasticSearch Logstash https://ww ...
- ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程
ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...
- 使用log4net将C#日志发送到Elasticsearch
一.安装Elasticsearch 参考前面写的文章:https://www.cnblogs.com/songxingzhu/p/7909486.html 安装完Elasticsearch后,修改/e ...
- MySQL5.6主从复制搭建基于日志(binlog)
什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟 ...
- (转)MySQL 主从复制搭建,基于日志(binlog
原文:http://blog.jobbole.com/110934/ 什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数 ...
- Mysql5.7基于日志转为基于事务主从复制
将基于日志的复制变更为基于事务的复制 mysql版本要高于5.7.6 gtid_mode要设为off 处理步骤 详细步骤 1.查看主从mysql版本是否高于5.7.6 show variables l ...
- Mysql5.7基于日志主从复制
主从同步概念 主从同步是异步复制 Mysql两种复制类型: 基于二进制日志 使用GTID完成基于事务的复制 基于日志三种方式: Mysql5.7需要注意的问题: 老版本方法创建mysql用户 #mys ...
随机推荐
- springMVC笔记:@ResponseBody
使用@ResponseBody的方式,将Map形返回值转为json,用作POST请求的返回值.为了解决406 Not Acceptable错误,需要检查以下几项: 1. 依赖包中包含jackson-m ...
- 解读TDD的五大误区
所谓TDD简单地说就是以下两个步骤:确保所有的需求都能被照顾到:在代码不断增加和重构的过程中,可以检查所有的功能是否正确.本文我们一起来看下关于TDD的五大误区. TDD(全称Test Driven ...
- 【spring boot】spring boot 2.0 项目中使用mysql驱动启动创建的mysql数据表,引擎是MyISAM,如何修改启动时创建数据表引擎为【spring boot 2.0】
默认创建数据表使用的引擎是MyISAM 2018-05-14 14:16:37.283 INFO 7328 --- [ restartedMain] org.hibernate.dialect.Dia ...
- [置顶]
kubernetes资源对象--limitranges
概念 LimitRange(简称limits)基于namespace的资源管理,包括pod和container的最小.最大和default.defaultrequests等. 一旦创建limits,以 ...
- DB2中查询前十数据的sql
select * from A fetch first 10 rows only
- Linux查看目录大小
du -ah --max-depth=1 a表示显示目录下所有的文件和文件夹(不含子目录) h表示以人类能看懂的方式 max-depth表示目录的深度
- 【温故知新】—— React/Redux/React-router4基础知识&独立团Demo
前言:React专注View层,一切皆组件:全部使用ES6语法,最新版本为React16. Redux是专注于状态管理的库,和react解耦:单一状态,单向数据流.[独立团github地址] 一.Re ...
- 【重点突破】—— Easy Mock的使用及Mock.js规范
前言:在线使用Easy Mock可视化工具,可以提供快速生成“模拟数据”的持久化服务: Mock.js是一个JS插件,指定了一套规范,而Easy Mock工具就遵循这些规范. 一.Easy Mock ...
- 【HTML 元素】标记文字
1.用基本的文字元素标记内容 先看显示效果: 对应HTML代码: <!DOCTYPE html> <html lang="en"> <head> ...
- 改进xutils下载管理器,使其,在随意地方进行进度更新,以及其它状态监听操作
1.前面在做下载进度监听.尝试过,通过加入 弱引用的View进度条,到相应的集合. 等到要进行更新进度的时候.通过Key 获取相应的VIew来进行更新 进度条.效果是达到了,可是我们怎样来监听其它的状 ...