「elkjava开发」ELK搭建
本篇文章给大家谈谈elkjava开发,以及ELK搭建对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
elk怎么恢复被删数据
恢复被删数据方法:
输入指令,curl-XPOST http: //192 .168.10.49:9200 /_snapshot/my_backup/snapshot_20160812/_restore,就可以恢复了。
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
软件简介:
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。
Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
ELK日志分析系统
随着软件行业的发展,软件系统的生产部署结构日趋复杂。对于一个分布式的系统,同一应用通常部署在不同的节点上,通过负载均衡的方式将请求分发到各个不同的节点进行处理。此时就会相对增加生产运维的复杂度,在进行问题查询的时候很难判断本次请求是在哪台机器上执行的,也就无法快速的对日志进行查询从而定位问题,因此,就需要对日志进行统一的处理和分析,以便方便开发和运维人员的问题处理速度。
本文介绍的是elastic stack开源的ELK组件,主要包括elasticsearch(简称es),logstash,kibana三个核心组件。
es是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能,对外提供REST和java api,可扩展性的分布式系统。
Logstash是一个用来搜集、分析、过滤日志的工具,几乎支持所有类型的日志,能够接收多种来源的日志,包括syslog、mq,并且能够输出到多种介质中,包括es,邮件等等。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户定制仪表板视图,还允许用户使用es语法进行操作。
但是,在实际使用的过程中发现,logstash会占用很多系统资源,因此决定加入一个更轻量的日志收集组件(也是elastic stack的组件之一)filebeat。因此在加入filebeat之后,整个部署架构变成了如下图所示。
安装包:
elasticsearch-6.6.2.tar.gz
kibana-6.6.2-linux-x86_64.tar.gz
logstash-6.6.2.tar.gz
filebeat-6.6.0-linux-x86_64.tar.gz
jdk-8u192-linux-x64.tar.gz
机器:
192.168.45.174,192.168.45.175,192.168.45.176(ES集群)
192.168.45.2(logstash,kibana)
192.168.45.136(应用服务器,安装filebeat)
注(1):由于ELK组件都是使用java开发的,因此需要安装1.8以上版本的jdk
jdk的安装方法:
注(2):Elasticsearch不能使用root用户运行,需要单独创建用户
1)为es创建一个目录
2)创建一个elk用户,并为elk用户授权elasticsearch目录
3)上传es的安装包,并解压到elasticsearch目录
4)切换到root用户,修改以下文件
5)执行sysctl –p ,使配置生效
6)切换回elk用户,进入 elasticsearch/config/目录下,修改es的配置文件elasticsearch.yml
1)将filebeat上传到要进行日志收集的服务器上192.168.45.136,并解压
2)修改配置文件
a. 修改其中的enabled为true,并配置paths(要收集的日志路径,可以使用* 代替)。也可以根据exclude_lines和include_lines来做一些过滤日志的行为。
b. filebeat的配置文件路径,以及是否允许重新加载配置文件。并设置索引的分片数量
c. 配置kibana地址
d. 配置logstash地址
1)将logstash安装包上传到192.168.45.2服务器并解压
tar -xvf logstash-6.6.2.tar.gz
2)修改logstash输入输出的配置文件logstash-sample.yml
a.input中配置filebeat的监听端口
b.filter中可以增加过滤条件对所有或者指定索引进行过滤
c.output中可以配置filebeat输出之后的索引
1)将kibana安装包kibana-6.6.2-linux-x86_64.tar.gz上传到192.168.45.2,并解压
tar -xvf kibana-6.6.2-linux-x86_64.tar.gz
2)修改配置文件
1)分别在对应的bin目录下执行下列操作
2)启动后可以在浏览器中输入192.168.45.2:5601来进入kibana界面进行日志查询
一图看懂ELK架构
ELK是一个免费开源的日志分析架构技术栈总称,官网 。包含三大基础组件,分别是Elasticsearch、 Logstash、 Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景,日志分析和收集只是更具有代表性、并非唯一性。
Elasticsearch 是使用java开发,基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful风格接口,多数据源,自动搜索负载等。
Logstash 基于java开发,是一个数据抽取转化工具。一般工作方式为c/s架构, client端安装在需要收集信息的主机上, server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch或其他组件上去。
Kibana 基于nodejs,也是一个开源和免费的可视化工具。 Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。
Beats 平台集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch发送数据。
Beats由如下组成:
基于 Elasticsearch 的软件即服务(SaaS)解决方案。通过 Elastic 的官方合作伙伴使用托管的Elasticsearch 服务。
为什么要用java重写logstash
现在ELK很流行,能快速搭建一套日志采集系统。其实自己一开始就不理解为什么后端日志采集这一层logstash 是用ruby来编写的,大家都知道像ruby这样的动态语言其实比较适合做web网站的快速开发(ror),像日志采集的后端应用,需要负者日志的采集和解析,尤其像解析日志会很耗cpu的,这样数据量一大很容易碰天花板。自己负者袋鼠云后端日志的采集和解析工作,前期用ruby版本的logstash,在4g 4core 的虚拟机上每小时只能处理800w条数据,这样的性能已经是自己做了很多优化的结果。后来在git上发现了hangout一个ITjob的实习生写的一个项目也是模仿ruby版本的logstash,用java重写,但是自己认为这个项目只是个demo,说白了只能自己玩玩,所以就萌生了自己用java重写logstash的想法。java版本的logstash基本的思路是每个input插件单独维护一个线程,filter和output公用一个线程,filter和output的线程数用户都可以自定义,默认跟机器的cpu核数相同,大部分的cpu消耗都在filter这层,所以filter线程数可以自定义,只要你的机器cpu够多,就能尽可能调大。而且java版本的logstash能保证数据的强一致性,举个列子从kafka消费数据,写入elasticsearch,有可能elasticsearch集群挂了,不能写入了,ruby版本是不能写入重复几次还是不行就扔掉了,这样就导致数据的丢失,但是java版本可以通过开关打开数据强一致性的判断,如果数据是由于elasticsearch集群挂了导致数据不能写入的,就会不断的重试这个数据直到成功,不会在消费队列里面新数据,这样就不会有数据的丢失。现在的java版本的logstash插件还是比较少,不像ruby版本的这么丰富,希望有更多的人参与进来。
关于elkjava开发和ELK搭建的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。