ELK项目es+kibana+jdk配置问题

简介ELK

需求背景

业务发展越来越庞大,服务器越来越多

各种访问日志、应用日志、错误日志量越来越多

开发人员排查问题,需要到服务器上查日志,不方便

运营人员需要一些数据,需要我们运维到服务器上分析日志

说白了就是日志那么多我要给你们搞牛逼的系统

如果有机会再搞日志系统加消息列队es+kafka消化来的数据

ELK包含ElasticSearch、Logstash、Kibana(不过这早都是过去式了现在加入很多新东西)

  1. ElasticSearch是一个搜索引擎,用来搜索、分析、存储日志。它是分布式的,也就是说可以横向扩容,可以自动发现,索引自动分片,总之很强大。(这个可以做集群哟一个主节点剩下的全是数据节点,数据节点啊当然是存储数据咯)

    文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

  2. Logstash用来采集日志,把日志解析为json格式交给ElasticSearch。

  3. Kibana是一个数据可视化组件,把处理后的结果通过web界面展示

  4. Beats在这里是一个轻量级日志采集器,其实Beats家族有5个成员(重点说一下这次项目最后采集日志的前端采用Beats后导入kafka再进入logstash和es及kibana成图)

早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计

x-pack对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包,是收费的

 

再贴一下相关内容:消息列队

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。

这里重点说一下后期我们要加入的kafka来解决日志处理相关问题:

日志处理是指将消息队列用在日志处理中,比如Kafka的应用,解决大量日志传输的问题

  • 日志采集客户端,负责日志数据采集,定时写受写入Kafka队列;
  • Kafka消息队列,负责日志数据的接收,存储和转发;
  • 日志处理应用:订阅并消费kafka队列中的日志数据;

  以下是新浪kafka日志处理应用案例(这个很经典的):

  转自(http://cloud.51cto.com/art/201507/484338.htm)

  (1)Kafka:接收用户日志的消息队列。

  (2)Logstash:做日志解析,统一成JSON输出给Elasticsearch。

  (3)Elasticsearch:实时日志分析服务的核心技术,一个schemaless,实时的数据存储服务,通过index组织数据,兼具强大的搜索和统计功能。

  (4)Kibana:基于Elasticsearch的数据可视化组件,超强的数据可视化能力是众多公司选择ELK stack的重要原因。

这里强调一下kafka+es可实现的功能远大于此,kafka的功能后期一定要涉足无线期待

进入正题

角色划分搞三台机器

130安装es+kibana+jdk1.8(主节点上安装可视化组件来搞web展示界面)

132安装es+logstash+jdk1.8(这个数据节点上用来采集日志)

133安装es+jdk1.8(这个上只有es用来存储数据,后面安装beats)

好了打断一下先说说今天出现的问题,安装要聊的还长

jdk安装,测试了老半天yum安装的open-jdk还是靠谱,自己官网下载rz过来的因为变量PATH无法识别/var/log/messages次次报错,搞成open-jdk就解决了没有办法后期需要再深究

附上jdk安装命令:yum install -y java-1.8.0-openjdk

项目中搞Elasticsearch时出现的问题使期始终无法启动,浪费一下午时间研究log才意识到是启动后ps aux可以看到进程后几秒又没了,但是相对应的日志已经生产,思来想去考虑了内存等一系列问题在度娘那也搜了很多解决方案,都算是学习吧,因为。。。因为是自己粗心把配置信息加错了,结果天天跑log里面跟字迹过不去,以后一定用心哇,老哥以后拜托了周末一下午啊心疼。。。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )