2019独角兽企业重金招聘Python工程师标准>>>

实验平台:操作系统:CentOS 7

软件链接(官网):https://www.elastic.co/products

Elasticsearch介绍

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;他们都是开源免费的工具。简述如下:

Elasticsearch是个开源分布式搜索引擎,特点网上一搜到处是:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 。

Logstash可以对你的日志进行收集、分析,并将其存储供以后使用(Cloudera的flume也差不多是这些功能)

kibana 为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面,帮助汇总、分析和搜索重要数据日志

Elasticsearch是一个实时分布式搜索和分析引擎。 它让你以前所未有的速度处理大数据增添可能性。它用于全文搜索、结构化搜索、分析以及将这三者混合使用。

Elasticsearch常常被应用在数据中心的实时协议分析和安全威胁检测,如apache、nginx、操作系统、网络流量等日志的分析,快速定位攻击位置,威胁预警等。

ElasticSearch 提供了一套基于restful风格的全文检索服务组件。前身是compass,直到2010被一家公司接管进行维护,开始商业化,并提供了ElasticSearch 一些相关的产品,包括大家比较熟悉的 kibana、logstash 以及 ElasticSearch 的一些组件,比如 安全组件shield 。当前最新的EElasticSearch 版本为 5.1.1 ,比较应用广泛的为2.X,直到 2016-12 推出了5.x 版本 ,将版本号调为 5.X 。这是为了和 kibana 和 logstash 等产品版本号进行统一 ElasticSearch 。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Filebeat隶属于Beats。目前Beats包含四种工具:

  1. Packetbeat(搜集网络流量数据)
  2. Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
  3. Filebeat(搜集文件数据)
  4. Winlogbeat(搜集 Windows 事件日志数据)

官方文档:

Filebeat:

https://www.elastic.co/cn/products/beats/filebeat
https://www.elastic.co/guide/en/beats/filebeat/5.6/index.html

Logstash:
https://www.elastic.co/cn/products/logstash
https://www.elastic.co/guide/en/logstash/5.6/index.html

Kibana:

https://www.elastic.co/cn/products/kibana

https://www.elastic.co/guide/en/kibana/5.5/index.html

Elasticsearch:
https://www.elastic.co/cn/products/elasticsearch
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

elasticsearch中文社区:
https://elasticsearch.cn/

一个完整的集中式日志系统,需要包含以下几个主要特点:

  • 收集-能够采集多种来源的日志数据
  • 传输-能够稳定的把日志数据传输到中央系统
  • 存储-如何存储日志数据
  • 分析-可以支持 UI 分析
  • 警告-能够提供错误报告,监控机制

ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。

ELK是由kibana、logstash 以及 ElasticSearch 组成

   ElasticSearch 是一个开源分布式搜索引型、特点:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载,官网:https://www.elastic.co/。提供一个分布式日志存储+搜索引型;

    logstash 是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用,负责收集客户端服务器所有的日志(Nginx、内核、mysql、java日志、APP日志);

kibana也是一个完全开源的工具,他可以为Logstash 和ElasticSearch提供的日志分析友好的web界面,提供了一个开源WEB访问平台,供用户、管理员更加便捷操作,基于WEB方式更加的简单;

Logstash 和ElasticSearch是使用Javay语言编写,而kibana使用node.js框架,在配置ELK环境要保证系统有JAVA JDk开发库

     ES集群组件介绍:集群(duster),节点(node), shard(primary, replica)

集群有状态:green, red, yellow各自含义、监 听端口、建立通信机制、节点通信等

Logstash四类API:检查集睬节点、索引等健康与否,以及获取其相应状态;管理 集群、节点、索引及元数据;执行CRUD操作;执行高级操作,例如 Paging, Filtering 等。

Elasticsearch 应用领域

一、是搜索领域,相对于solr,真正的后起之秀,成为很多搜索系统的不二之选。

二、是Json文档数据库,相对于MongoDB,读写性能更佳,而且支持更丰富的地理位置查询以及数字、文本的混合查询等。

三、是时序数据分析处理,目前是日志处理、监控数据的存储、分析和可视化方面做得非常好,可以说是该领域的引领者了。

  1. ELK平台产生背景
  1. 运维日常工作,主要保证WEB网站、数据库服务器、应用服务器高效稳定的运行;
  2. 当WEB网站、数据库、应用服务器宕机或者异常,需要运维、开发去登录服务器后台查看日志;
  3. 当服务器数量很多,日志查看非常不方便,不可能给开发人员root权限,普通查看日志的权限;
  4. 开发想看WEB、JAVA、Nginx、MYSQL、Redis、内核日志,每台服务器创建开发账号,专门用于查看服务器日志;
  5. 引入日志管理服务器,将所有的服务器日志统一的集中管理;
  6. 通过服务器WEB日志,分析用户访问行为,购买商品行为,包括用户喜好;
  7. 构建企业级日志收集平台,ELK日志平台,Rsyslog等;
  1. ELK软件概念
  1. 京东、百度、淘宝、BAT、中小型互联网公司使用ELK平台;
  2. ELK开源免费的实时日志分布式平台,对其二次开发;
  3. 大型互联网公司都是基于ELK做二次开发,满足公司内部的需求;
  4. 个人、中小企业推荐使用原生的ELK平台,满足你的需求;
  5. ELK分布式日志收集、展示平台,是由三个软件组成;
  6. ElasticSearch,提供一个分布式日志存储+搜索引擎;
  7. Logstash,负责收集客户端服务器所有日志(Nginx、内核、MYSQL、JAVA日志、APP日志);
  1. Kibana,提供了一个开源WEB访问平台,供用户、管理员更加便捷操作,基于WEB方式更加的简单;

ELK软件工作原理

ELK工作流程

(1)、通过   Logstash 收集客户端APP的日志数据,将所有的日志过滤出来,存入ElasticSearch搜索引型里,然后通过 kibanaGUI在WEB前端展示给用户,用户也可以加入redis通过队列

(2)、Logstash 包含Index和Agent(shipper),Agent负责客户端监控和过滤日志,而Index负责收集日志并将日志交给ElasticSearch,ElasticSearch将日志存储到本地,建立索引、提供搜索,kibana可以从ES集群中获取想要的日志信息

ELK架构图:

架构图一:

这是最简单的一种ELK架构方式。优点是搭建简单,易于上手。缺点是Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。

此架构由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web方便的对日志查询,并根据数据生成报表。

架构图二:

此种架构引入了消息队列机制,位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

架构图三:

此种架构将收集端logstash替换为beats,更灵活,消耗资源更少,扩展性更强。同时可配置Logstash 和Elasticsearch 集群用于支持大集群系统的运维日志数据监控和查询。

Filebeat工作原理:

Filebeat由两个主要组件组成:prospectors 和 harvesters。这两个组件协同工作将文件变动发送到指定的输出中。

Harvester(收割机):负责读取单个文件内容。每个文件会启动一个Harvester,每个Harvester会逐行读取各个文件,并将文件内容发送到制定输出中。Harvester负责打开和关闭文件,意味在Harvester运行的时候,文件描述符处于打开状态,如果文件在收集中被重命名或者被删除,Filebeat会继续读取此文件。所以在Harvester关闭之前,磁盘不会被释放。默认情况filebeat会保持文件打开的状态,直到达到close_inactive(如果此选项开启,filebeat会在指定时间内将不再更新的文件句柄关闭,时间从harvester读取最后一行的时间开始计时。若文件句柄被关闭后,文件发生变化,则会启动一个新的harvester。关闭文件句柄的时间不取决于文件的修改时间,若此参数配置不当,则可能发生日志不实时的情况,由scan_frequency参数决定,默认10s。Harvester使用内部时间戳来记录文件最后被收集的时间。例如:设置5m,则在Harvester读取文件的最后一行之后,开始倒计时5分钟,若5分钟内文件无变化,则关闭文件句柄。默认5m)。

Prospector(勘测者):负责管理Harvester并找到所有读取源。

1

2

3

4

filebeat.prospectors:

- input_type: log

  paths:

    - /apps/logs/*/info.log

Prospector会找到/apps/logs/*目录下的所有info.log文件,并为每个文件启动一个Harvester。Prospector会检查每个文件,看Harvester是否已经启动,是否需要启动,或者文件是否可以忽略。若Harvester关闭,只有在文件大小发生变化的时候Prospector才会执行检查。只能检测本地的文件。

Filebeat如何记录文件状态:

将文件状态记录在文件中(默认在/var/lib/filebeat/registry)。此状态可以记住Harvester收集文件的偏移量。若连接不上输出设备,如ES等,filebeat会记录发送前的最后一行,并再可以连接的时候继续发送。Filebeat在运行的时候,Prospector状态会被记录在内存中。Filebeat重启的时候,利用registry记录的状态来进行重建,用来还原到重启之前的状态。每个Prospector会为每个找到的文件记录一个状态,对于每个文件,Filebeat存储唯一标识符以检测文件是否先前被收集。

Filebeat如何保证事件至少被输出一次:

Filebeat之所以能保证事件至少被传递到配置的输出一次,没有数据丢失,是因为filebeat将每个事件的传递状态保存在文件中。在未得到输出方确认时,filebeat会尝试一直发送,直到得到回应。若filebeat在传输过程中被关闭,则不会再关闭之前确认所有时事件。任何在filebeat关闭之前为确认的时间,都会在filebeat重启之后重新发送。这可确保至少发送一次,但有可能会重复。可通过设置shutdown_timeout 参数来设置关闭之前的等待事件回应的时间(默认禁用)。

Logstash工作原理:

Logstash事件处理有三个阶段:inputs → filters → outputs。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。

Input:输入数据到logstash。

一些常用的输入为:

file:从文件系统的文件中读取,类似于tial -f命令

syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析

redis:从redis service中读取

beats:从filebeat中读取

Filters:数据中间处理,对数据进行操作。

一些常用的过滤器为:

grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。内置120多个解析语法。

官方提供的grok表达式:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
grok在线调试:https://grokdebug.herokuapp.com/

mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。

drop:丢弃一部分events不进行处理。

clone:拷贝 event,这个过程中也可以添加或移除字段。

geoip:添加地理信息(为前台kibana图形化展示使用)

Outputs:outputs是logstash处理管道的最末端组件。一个event可以在处理过程中经过多重输出,但是一旦所有的outputs都执行结束,这个event也就完成生命周期。

一些常见的outputs为:

elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。

file:将event数据保存到文件中。

graphite:将event数据发送到图形化组件中,一个很流行的开源存储图形化展示的组件。

Codecs:codecs 是基于数据流的过滤器,它可以作为input,output的一部分配置。Codecs可以帮助你轻松的分割发送过来已经被序列化的数据。

一些常见的codecs:

json:使用json格式对数据进行编码/解码。

multiline:将汇多个事件中数据汇总为一个单一的行。比如:java异常信息和堆栈信息。

更多介绍:http://www.cnblogs.com/aresxin/p/8035137.html

使用案例:

1.维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-youmean)等搜索建议功能。

2.英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表 的文章的回应。

3.StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。

4.Github使用Elasticsearch检索1300亿行的代码。

Elasticsearch 集群架构

节点(Node):物理概念,一个运行的Elasticearch实例,一般是一台机器上的一个进程。

索引(Index),逻辑概念,包括配置信息mapping和倒排正排数据文件,一个索引的数据文件可能会分布于一台机器,也有可能分布于多台机器。索引的另外一层意思是倒排索引文件。

分片(Shard):为了支持更大量的数据,索引一般会按某个维度分成多个部分,每个部分就是一个分片,分片被节点(Node)管理。一个节点(Node)一般会管理多个分片,这些分片可能是属于同一份索引,也有可能属于不同索引,但是为了可靠性和可用性,同一个索引的分片尽量会分布在不同节点(Node)上。分片有两种,主分片和副本分片。

副本(Replica):同一个分片(Shard)的备份数据,一个分片可能会有0个或多个副本,这些副本中的数据保证强一致或最终一致。

图形表示:

Index 1:蓝色部分,有3个shard,分别是P1,P2,P3,位于3个不同的Node中,这里没有Replica。

Index 2:绿色部分,有2个shard,分别是P1,P2,位于2个不同的Node中。并且每个shard有一个replica,分别是R1和R2。基于系统可用性的考虑,同一个shard的primary和replica不能位于同一个Node中。这里Shard1的P1和R1分别位于Node3和Node2中,如果某一刻Node2发生宕机,服务基本不会受影响,因为还有一个P1和R2都还是可用的。因为是主备架构,当主分片发生故障时,需要切换,这时候需要选举一个副本作为新主,这里除了会耗费一点点时间外,也会有丢失数据的风险。

Index流程

建索引(Index)的时候,一个Doc先是经过路由规则定位到主Shard,发送这个doc到主Shard上建索引,成功后再发送这个Doc到这个Shard的副本上建索引,等副本上建索引成功后才返回成功。

在这种架构中,索引数据全部位于Shard中,主Shard和副本Shard各存储一份。当某个副本Shard或者主Shard丢失(比如机器宕机,网络中断等)时,需要将丢失的Shard在其他Node中恢复回来,这时候就需要从其他副本(Replica)全量拷贝这个Shard的所有数据到新Node上构造新Shard。这个拷贝过程需要一段时间,这段时间内只能由剩余主副本来承载流量,在恢复完成之前,整个系统会处于一个比较危险的状态,直到failover结束。

这里就体现了副本(Replica)存在的一个理由,避免数据丢失,提高数据可靠性。副本(Replica)存在的另一个理由是读请求量很大的时候,一个Node无法承载所有流量,这个时候就需要一个副本来分流查询压力,目的就是扩展查询能力。

角色部署方式

接下来再看看角色分工的两种不同方式:

Elasticsearch支持上述两种方式:

混合部署(左图):

1.默认方式。

2.不考虑MasterNode的情况下,还有两种Node,Data Node和Transport Node,这种部署模式下,这两种不同类型Node角色都位于同一个Node中,相当于一个Node具备两种功能:Data和Transport。

3.当有index或者query请求的时候,请求随机(自定义)发送给任何一个Node,这台Node中会持有一个全局的路由表,通过路由表选择合适的Node,将请求发送给这些Node,然后等所有请求都返回后,合并结果,然后返回给用户。一个Node分饰两种角色。

4.好处就是使用极其简单,易上手,对推广系统有很大价值。最简单的场景下只需要启动一个Node,就能完成所有的功能。

5.缺点就是多种类型的请求会相互影响,在大集群如果某一个Data Node出现热点,那么就会影响途经这个Data Node的所有其他跨Node请求。如果发生故障,故障影响面会变大很多。

6.Elasticsearch中每个Node都需要和其余的每一个Node都保持13个连接。这种情况下,每个Node都需要和其他所有Node保持连接,而一个系统的连接数是有上限的,这样连接数就会限制集群规模。

7.还有就是不能支持集群的热更新。

分层部署(右图):

1.通过配置可以隔离开Node。

2.设置部分Node为Transport Node,专门用来做请求转发和结果合并。
其他Node可以设置为DataNode,专门用来处理数据。

3.缺点是上手复杂,需要提前设置好Transport的数量,且数量和Data Node、流量等相关,否则要么资源闲置,要么机器被打爆。

4.好处就是角色相互独立,不会相互影响,一般Transport Node的流量是平均分配的,很少出现单台机器的CPU或流量被打满的情况,而DataNode由于处理数据,很容易出现单机资源被占满,比如CPU,网络,磁盘等。独立开后,DataNode如果出了故障只是影响单节点的数据处理,不会影响其他节点的请求,影响限制在最小的范围内。

5.角色独立后,只需要Transport Node连接所有的DataNode,而DataNode则不需要和其他DataNode有连接。一个集群中DataNode的数量远大于Transport Node,这样集群的规模可以更大。另外,还可以通过分组,使Transport Node只连接固定分组的DataNode,这样Elasticsearch的连接数问题就彻底解决了。

6.可以支持热更新:先一台一台的升级DataNode,升级完成后再升级Transport Node,整个过程中,可以做到让用户无感知。

上面介绍了Elasticsearch的部署层架构,不同的部署方式适合不同场景,需要根据自己的需求选择适合的方式。

                                  Elasticsearch 数据层架构

数据存储

Elasticsearch的Index和meta,目前支持存储在本地文件系统中,同时支持niofs,mmap,simplefs,smb等不同加载方式,性能最好的是直接将索引LOCK进内存的MMap方式。默认,Elasticsearch会自动选择加载方式,另外可以自己在配置文件中配置。这里有几个细节,具体可以看官方文档。

索引和meta数据都存在本地,会带来一个问题:当某一台机器宕机或者磁盘损坏的时候,数据就丢失了。为了解决这个问题,可以使用Replica(副本)功能。

副本(Replica)

可以为每一个Index设置一个配置项:副本(Replicda)数,如果设置副本数为2,那么就会有3个Shard,其中一个是PrimaryShard,其余两个是ReplicaShard,这三个Shard会被Mater尽量调度到不同机器,甚至机架上,这三个Shard中的数据一样,提供同样的服务能力。

副本(Replica)的目的有三个:

  1. 保证服务可用性:当设置了多个Replica的时候,如果某一个Replica不可用的时候,那么请求流量可以继续发往其他Replica,服务可以很快恢复开始服务。

  2. 保证数据可靠性:如果只有一个Primary,没有Replica,那么当Primary的机器磁盘损坏的时候,那么这个Node中所有Shard的数据会丢失,只能reindex了。

  3. 提供更大的查询能力:当Shard提供的查询能力无法满足业务需求的时候, 可以继续加N个Replica,这样查询能力就能提高N倍,轻松增加系统的并发度。

问题

上面说了一些优势,这种架构同样在一些场景下会有些问题。

1.Elasticsearch采用的是基于本地文件系统,使用Replica保证数据可靠性的技术架构,这种架构一定程度上可以满足大部分需求和场景,但是也存在一些遗憾:

2.Replica带来成本浪费。为了保证数据可靠性,必须使用Replica,但是当一个Shard就能满足处理能力的时候,另一个Shard的计算能力就会浪费。

3.Replica带来写性能和吞吐的下降。每次Index或者update的时候,需要先更新Primary Shard,更新成功后再并行去更新Replica,再加上长尾,写入性能会有不少的下降。

4.当出现热点或者需要紧急扩容的时候动态增加Replica慢。新Shard的数据需要完全从其他Shard拷贝,拷贝时间较长。

5.上面介绍了Elasticsearch数据层的架构,以及副本策略带来的优势和不足,下面简单介绍了几种不同形式的分布式数据系统架构。

                                                   分布式系统

第一种:基于本地文件系统的分布式系统

图中是一个基于本地磁盘存储数据的分布式系统。Index一共有3个Shard,每个Shard除了Primary Shard外,还有一个Replica Shard。当Node 3机器宕机或磁盘损坏的时候,首先确认P3已经不可用,重新选举R3位Primary Shard,此Shard发生主备切换。然后重新找一台机器Node 7,在Node7 上重新启动P3的新Replica。由于数据都会存在本地磁盘,此时需要将Shard 3的数据从Node 6上拷贝到Node7上。如果有200G数据,千兆网络,拷贝完需要1600秒。如果没有replica,则这1600秒内这些Shard就不能服务。

为了保证可靠性,就需要冗余Shard,会导致更多的物理资源消耗。

这种思想的另外一种表现形式是使用双集群,集群级别做备份。

在这种架构中,如果你的数据是在其他存储系统中生成的,比如HDFS/HBase,那么你还需要一个数据传输系统,将准备好的数据分发到相应的机器上。

这种架构中为了保证可用性和可靠性,需要双集群或者Replica才能用于生产环境,优势和副作用在上面介绍Elasticsearch的时候已经介绍过了,这里就就不赘述了。

Elasticsearch使用的就是这种架构方式。

第二种:基于分布式文件系统的分布式系统(共享存储)

针对第一种架构中的问题,另一种思路是:存储和计算分离。

第一种思路的问题根源是数据量大,拷贝数据耗时多,那么有没有办法可以不拷贝数据?为了实现这个目的,一种思路是底层存储层使用共享存储,每个Shard只需要连接到一个分布式文件系统中的一个目录/文件即可,Shard中不含有数据,只含有计算部分。相当于每个Node中只负责计算部分,存储部分放在底层的另一个分布式文件系统中,比如HDFS。

上图中,Node 1 连接到第一个文件;Node 2连接到第二个文件;Node3连接到第三个文件。当Node 3机器宕机后,只需要在Node 4机器上新建一个空的Shard,然后构造一个新连接,连接到底层分布式文件系统的第三个文件即可,创建连接的速度是很快的,总耗时会非常短。

这种是一种典型的存储和计算分离的架构,优势有以下几个方面:

  1. 在这种架构下,资源可以更加弹性,当存储不够的时候只需要扩容存储系统的容量;当计算不够的时候,只需要扩容计算部分容量。

  2. 存储和计算是独立管理的,资源管理粒度更小,管理更加精细化,浪费更少,结果就是总体成本可以更低。

  3. 负载更加突出,抗热点能力更强。一般热点问题基本都出现在计算部分,对于存储和计算分离系统,计算部分由于没有绑定数据,可以实时的扩容、缩容和迁移,当出现热点的时候,可以第一时间将计算调度到新节点上。

这种架构同时也有一个不足:

访问分布式文件系统的性能可能不及访问本地文件系统。在上一代分布式文件系统中,这是一个比较明显的问题,但是目前使用了各种用户态协议栈后,这个差距已经越来越小了。

HBase使用的就是这种架构方式。

Solr也支持这种形式的架构。

需要三台机器:ES、kibana、logstash,分别在三台机器上面下载,

ES上面操作

[root@localhost ~]# tar xzf jdk-8u121-linux-x64.tar.gz

[root@localhost ~]# mkdir -p /usr/java/

[root@localhost ~]# mv jdk1.8.0_121/ /usr/java/

[root@localhost ~]# ll /usr/java/jdk1.8.0_121/

[root@localhost ~]# /usr/java/jdk1.8.0_121/bin/java -version             #查看安装版本,

[root@localhost ~]# du -sh jdk-8u121-linux-x64.tar.gz

[root@localhost ~]# du -sh  jdk-8u121-linux-x64

上面的操作,在Logstash操作

在文件末尾,添加红色字

[root@localhost ~]# source /etc/profile

[root@localhost ~]# java -version

ES上面操作

[root@localhost ~]# cd elk/

[root@localhost ~]# ls

[root@localhost ~]# tar -zxf elasticsearch-5.3.0.tar.ga

[root@localhost ~]#  rm -rf /usr/local/elasticsearch/

[root@localhost ~]# ls

[root@localhost ~]# mv elasticsearch-5.3.0 /usr/local/elasticsearch

[root@localhost ~]# cd /usr/local/elasticsearch

[root@localhost ~]# ll

[root@localhost ~]#cd

[root@localhost ~]# useradd elk -s

[root@localhost ~]# chown -R elk.elk /usr/local/elasticsearch/

[root@localhost ~]# cd /usr/local/elasticsearch/

[root@localhost ~]# ls

[root@localhost ~]# su elk

[root@localhost ~]# pwd

[root@localhost ~]# ls

[root@localhost ~]# cd bin/

[root@localhost ~]#ls

[root@localhost ~]# ./elasticsearch -d                     #启动

原因内存不足

解决办法:

[root@localhost ~]# cd ..

[root@localhost ~]# ls

[root@localhost ~]# cd config/

[root@localhost ~]# ls

[root@localhost ~]# pwd

[root@localhost ~]# vim jvm.options

修改成一个G

[root@localhost ~]# /usr/local/elasticsearch/bin/elasticsearch/ -d             #启动

[root@localhost ~]# ps -ef | ggrep java                    #说明elk启动了

[root@localhost ~]# tail -fn 10 logs/elasticsearch.log      显示两个端口,9200和9300

[root@localhost ~]# ps -ef | grep java

[root@localhost ~]# pkill -9  1336

[root@localhost ~]# ps -ef | grep java             #查看有没有杀掉

[root@localhost ~]# cd config/

[root@localhost ~]# vim elasticsearch.yml

搜索/bind,把192修改成四个零

[root@localhost ~]# /usr/local/elasticsearch/bin/elasticsearch/ -d             #启动

[root@localhost ~]#!tail                     #发现很多模块

在kib上面操作

[root@localhost ~]# cd elk/

[root@localhost ~]# ls

[root@localhost ~]# tar zxf kibana-5.3.0-linux-x86_64.tar.gz

[root@localhost ~]# ls

[root@localhost ~]# rm -rf /usr/local/kibana/

[root@localhost ~]# mv libana-5.3.0-linux-x86_64 /usr/local/kibana

[root@localhost ~]# cd /usr/local/libana

[root@localhost ~]#ls

[root@localhost ~]# cd config/

[root@localhost ~]# vim kibana.yml

localhost修改成四个零

[root@localhost ~]# cd ..

[root@localhost ~]# cd bin/

[root@localhost ~]# ls

[root@localhost ~]# nohup ./kibana &                #放到后台

[root@localhost ~]# tail -fn 100 nohup.out

在Logstash

[root@localhost ~]# cd elk/

[root@localhost ~]#ls

[root@localhost ~]# tar zxf logstash-5.3.0.tar.gz

[root@localhost ~]# rm -rf /usr/local/logstach/

[root@localhost ~]# mv logstash-5.3.0 /usr/local/logstatsh

[root@localhost ~]# cd /usr/local/logstash/

[root@localhost ~]# ls

[root@localhost ~]# ll

[root@localhost ~]# cd bin/

[root@localhost ~]# cd ..

[root@localhost ~]# ls

[root@localhost ~]# mkdir etc

[root@localhost ~]# cd etc/

[root@localhost ~]# ls

[root@localhost ~]# vim 1.conf           #在配置文件中,写一个收集日志,

input {

stdin{ }

}

output {

stdout {

codec => rubydebug {}

}

elasticsearch {

hosts => "192.168.1.161"}                          #IP是ES的

}

[root@localhost ~]# ll

[root@localhost ~]# ../bin/logstash -f 1.conf

在kibana上面操作

[root@localhost ~]# netstat -lntp | grep 5601

[root@localhost ~]# netstat -lntp | grep 5601 --color

在Logstash

[root@localhost ~]# ../bin/logstash -f 1.conf                #启动配置i文件

在浏览器里面输入lkibana的IP 192.168.1.162

在配置文件里面输入hellod world,然后回车,然后刷新页面

在ES

[root@localhost ~]# tail -fn 100 /usr/local/elasticsearch/log/elasticsearch.log

[root@localhost ~]#cd elasticsearch-head/

[root@localhost ~]# netstat lnt | grep 9100

[root@localhost ~]# nohup./node_modules/grunt/bin/grunt server &

刷新页面,IP是ES的

[root@localhost ~]# netstat lnt | grep 9200

[root@localhost ~]#  /etc/init.d/iptables stop

[root@localhost ~]# sestatus

[root@localhost ~]# date

[root@localhost ~]# ntpdate cn.pool.ntp.org                #同步时间,如果时间都不相同,都执行这一条目命令

[root@localhost ~]# ps -ef | grep java

[root@localhost ~]# kill -9  1495

[root@localhost ~]# !ps

[root@localhost ~]# su -elk

[root@localhost ~]# /usr/local/elasticsearch/elasticsearch -d

[root@localhost ~]#                             #看日志

kib操作

[root@localhost ~]# ps -ef | grep node

[root@localhost ~]# kill -9 1138

[root@localhost ~]# cd /ussr/local/kibana/bin/

[root@localhost ~]#ls

[root@localhost ~]# nohup ./kibana &

在Log

[root@localhost ~]# ../bin/logstash -f 1.conf

在浏览器刷新一下,如果连不上,说明有问题

[root@localhost ~]#

[root@localhost ~]#

[root@localhost ~]#

[root@localhost ~]#

[root@localhost ~]#

ELK安装

1

环境说明

操作系统:Centos 7

软件链接(官网):https://www.elastic.co/products

2

安装步骤

创建账号

1.linux创建新用户

相关命令:adduser elkstack  、 passwd elkstack输入两次密码

2.为elkstack用户添加sudo权限

相关命令:visudo

3、安装jdk1.8

4、安装elasticsearch

0.以普通用户登陆

1.解压elasticseach

2.解压文件移动到/opt目录下

3.更改elasticsearch目录所有者为elkstack

5、安装elasticsearch-servicewrapper

下载地址: https://github.com/elastic/elasticsearch-servicewrapper

0.解压elasticsearch-servicewrapper

1.移动到elasticsearch/bin/ 目录下

2.验证

a.启动elasticsearch

b. 测试ElasticSearch服务是否正常,预期返回200的状态码:

6、安装Logstash

0.安装

1.更改logstash所有权

2.简单测试Logstash服务是否正常,预期可以将输入内容以简单的日志形式打印在界面上:

/opt/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

7、安装Kibana

0.安装

1.更改logstash所有权

2.修改配置文件kibana/config/kibana.yml

elasticsearch.url: "http://localhost:9200"

server.host:"0.0.0.0"

3.运行

4.访问http://IP:5601,安装完成。

常见问题:

2、

参考链接:https://mp.weixin.qq.com/s/gqxeNWjiVs2p0H9TCKWnEg

链接:

安装Elasticsearch及其遇到的坑 : https://mp.weixin.qq.com/s/vyBkKe9BNut6ocrGsnde9A

Elasticsearch 权威指南(中文版)  :http://www.voidcn.com/course/project/mluqbg

ELK日志分析系统简介       :   https://mp.weixin.qq.com/s/C0wldeFrHHQtLWJdgS0ryw

Elasticsearch 入门教程      :    https://mp.weixin.qq.com/s/c_kJwGTYY6yJlULVCAhTlw

如何解决centos下root运行Elasticsearch异常  : https://www.jb51.net/os/RedHat/514009.html

ElasticSearch ——单台服务器部署多个节点:https://mp.weixin.qq.com/s/2wFT31RqGBRTIuVQy_wz3Q

用Elasticsearch构建电商搜索平台:https://mp.weixin.qq.com/s/QoLQXZqi4P0VC3C7Ea86tA

ELK系列:https://www.aliyun.com/jiaocheng/topic_23933_1.html

通过ELK快速搭建一个你可能需要的集中化日志平台l: https://mp.weixin.qq.com/s/kAwpekl-DGCIulWoLCedxw

10 分钟快速搭建 ELK 日志分析系统:http://mp.weixin.qq.com/s/CBSoBXmQbRsJZs2N5-qjyg

快速搭建企业级ELK日志分析系统:http://mp.weixin.qq.com/s/VBl45xLZq0l1_0bj7s-epQ

ELK日志分析集群部署笔记           :      http://blog.51cto.com/zlyang/1737622

Elasticsearch快速搭建食谱搜索系统 : https://mp.weixin.qq.com/s/kB_BDQKE8rhQq1TmpKPbFA

Elasticsearch面试题 : https://mp.weixin.qq.com/s/XEYsgYOcI7Wv0PZq4Sf-Hw

用Ansible部署ELK STACK:http://mp.weixin.qq.com/s/hnAv5lrAHR-IZesPeOvLGA

保护好你的Elasticsearch全文检索库 : https://www.csharpkit.com/2017-11-29_58506.html

基于Elasticsearch搜索平台设计 : https://www.csharpkit.com/2017-10-15_51699.html

【通天塔之日志分析平台】壹 ELK 环境搭建 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-1/

【通天塔之日志分析平台】贰 Kafka 缓冲区 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-2/

【通天塔之日志分析平台】叁 监控、安全、报警与通知 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-3/

【通天塔之日志分析平台】肆 从单机到集群 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-4/

【通天塔之日志分析平台】伍 Logstash 技巧指南 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-5/

【通天塔之日志分析平台】陆 Elasticsearch 技巧指南 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-6/

【通天塔之日志分析平台】柒 Kibana 技巧指南 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-7/

【通天塔之日志分析平台】捌 实例:接入外部应用日志 : https://wdxtub.com/2016/11/19/babel-log-analysis-platform-8/

Elasticsearch 集群指南 : https://wdxtub.com/2016/09/28/elasticsearch-cluster-guide/

Logstash 连接 Kafka 指南 : https://wdxtub.com/2016/08/18/logstash-kafka-guide/

Rsyslog 连接 Kafka 指南 : https://wdxtub.com/2016/08/17/rsyslog-kafka-guide/

Kafka 指南 : https://wdxtub.com/2016/08/15/kafka-guide/

Rsyslog + Logstash 日志传输指南 : https://wdxtub.com/2016/08/12/rsyslog-logstash-guide/

ELK 指南 : https://wdxtub.com/2016/07/26/elk-guide/

Elasticsearch 的聚合查询及过滤 :  http://techlog.cn/article/list/10182851

kibana4 的安装、配置和使用 : http://techlog.cn/article/list/10182920

ELK在广告系统监控中的应用 及 Elasticsearch简介:https://mp.weixin.qq.com/s/i5DEmU7WKiQs-xa4COC6zQ

ELK日志分析系统简介:https://mp.weixin.qq.com/s/C0wldeFrHHQtLWJdgS0ryw

Elasticsearch 入门教程https://mp.weixin.qq.com/s/c_kJwGTYY6yJlULVCAhTlw

Elasticsearch基础教程(上):https://mp.weixin.qq.com/s/WKR2kboG-rjOdmjuMw4AhA

Elasticsearch基础教程(下):https://mp.weixin.qq.com/s/d88IXKd0L6VLwsGJK7cEfA

ELKstack 入门及使用 : http://techlog.cn/article/list/10182847

Elasticsearch专栏 : https://blog.csdn.net/column/details/elasticsearch-action.html

elasticsearch(一)---开始 : https://juejin.im/post/5b78e9606fb9a019d80a878f

elasticsearch(二)---基本数据操作 : https://juejin.im/post/5b79090d51882542f25a4de5

elasticsearch(三)---分布式集群 : https://juejin.im/post/5b7948c3e51d45388f7436b7

elasticsearch(四)---分布式文档存储 :  https://juejin.im/post/5b796ea7e51d4538e018d55d

elasticsearch(五)---分布式搜索 : https://juejin.im/post/5b7b8268e51d4538a01ea7b6

elasticsearch(六)---索引管理 :https://juejin.im/post/5b7c10e7f265da436e74cadf

elasticsearch(七)---深入分片 : https://juejin.im/post/5b7e2a2c51882543113d80cc

全文检索引擎

全文检索引擎(一)---准备入坑 :  https://juejin.im/post/5b768a12f265da28004ad632

全文检索引擎(二)---为何入坑 :   https://juejin.im/post/5b768e3b6fb9a009820daf1c

全文检索引擎(三)---原理剖析 : https://juejin.im/post/5b7692b9518825330d64dade

全文检索引擎(四)---solr初体验  :  https://juejin.im/post/5b77ac1a518825431079c3ee

全文检索引擎(五)---solr与mongodb同步 :  https://juejin.im/post/5b77befcf265da4320088ba7

全文检索引擎(六)---elasticsearch初体验 : https://juejin.im/post/5b780db96fb9a019b8699a49

全文检索引擎(七)---solr vs es  : https://juejin.im/post/5b783fd2f265da4328162eba

Elasticsearch 安装就这么简单  :  https://juejin.im/post/5ab4496e518825556d0e0713

Kibana 简单入门教程 :https://mp.weixin.qq.com/s/eT1xrWDMmoqlZkEHqRcIuw

Logstash 简单入门教程 :   https://mp.weixin.qq.com/s/Xfa73phV1fhYyN1wO4CNtw

大而全面|Logstash技术入门   :  https://mp.weixin.qq.com/s/CrmDAkmoHWaC1uKDML0sDw

kibana 加安全校验 :  https://mp.weixin.qq.com/s/FMB_c9rWvj7XsqXMQAzIYg

Service详解  :   https://mp.weixin.qq.com/s/eCaquPSYTnVUTaD1YGxPbQ

(阿里云)ELK日志分析系统简介 :   https://mp.weixin.qq.com/s/C0wldeFrHHQtLWJdgS0ryw

springboot 发送业务日志到elk :  https://mp.weixin.qq.com/s/1AS3PWFnS1g7qNSFlS5LrA

使用Kibana 分析Nginx 日志并在 Dashboard上展示 : https://www.cnblogs.com/hanyifeng/p/5860731.html

利用 ELK系统分析Nginx日志并对数据进行可视化展示   : https://www.cnblogs.com/hanyifeng/p/5857875.html

Centos7 之安装Logstash ELK stack 日志管理系统 :    https://www.cnblogs.com/hanyifeng/p/5509985.html

博森瑞  系列:

Kafka的安装与配置    :   http://t.bosenrui.com/dev/da3be54fa6b1816486888aa73ab44b16.html

Kafka基本原理 :  https://mp.weixin.qq.com/s/ZnWeFphfFF1hdltoRKmwGQ

Flume安装使用实录   :    http://t.bosenrui.com/dev/a928ad4d34ce40f47763305859d46a6c.html

Sqoop安装与使用实录  :   http://t.bosenrui.com/dev/a02f31ccbed134ac6d13fec24b016f1e.html

Azkaban安装实录  :   http://t.bosenrui.com/dev/1c90859ca5a6af651ee7c3ae7166993d.html

亿级 Elasticsearch 性能优化荐      : http://blog.51cto.com/13527416/2132270

使用ElasticSearch踩过的坑  :   https://www.jianshu.com/p/fa31f38d241e

用ElasticSearch监控MySQL  :  https://www.jianshu.com/p/8d25f02535f0

阿里云 ElasticSearch (2134篇) 系列:  https://yq.aliyun.com/search?q=ElasticSearch

ElasticSearch ——结构化查询   :  https://www.jianshu.com/p/e4f3f94728b1

ElasticSearch ——单台服务器部署多个节点  :  https://www.jianshu.com/p/1ccc59dde56a

在 Python 中使用 Elasticsearch   :   https://www.jianshu.com/p/29dbcb4bfb0e

Elasticsearch + Kibana 集群环境搭建   :  https://www.jianshu.com/p/1c8ba75b72c8

logstash mysql 准实时同步到 elasticsearch   :  https://www.jianshu.com/p/62433b9c5c96

ElasticSearch + xpack 使用.md  :  https://www.jianshu.com/p/0ab1741fd4bc

灵雀云到生产实践之ELK Stack    :  https://www.jianshu.com/p/9d83ad0cb65b

部署分布式ES-Kibana Server-Centos7    :    http://www.pangxie.space/docker/1104

Kubernetes双向TLS配置-Centos7       : http://www.pangxie.space/docker/1164

搭建swarm集群(docker v1.12)-Centos7         : http://www.pangxie.space/docker/1061

部署分布式kubernetes(v1.3.x)-Centos7    :      http://www.pangxie.space/docker/1055

搭建swarmkit集群-Centos7    :      http://www.pangxie.space/docker/971

部署ELK-centos7    : http://www.pangxie.space/docker/527

互联网亿级日志实时分析平台ELK    : https://mp.weixin.qq.com/s/BPUECpBGGIdOJ9CwprdS1g

ELKstack-Elasticsearch各类安装部署方法            :       http://blog.51cto.com/vekergu/1784370

ElKstack-解决nginx日志url链接包含中文logstash报错问题      :          http://blog.51cto.com/vekergu/1784562

ELKstack-logstash yum安装部署方法         :         http://blog.51cto.com/vekergu/1784718

ELKstack-kibana yum安装部署方法   :     http://blog.51cto.com/vekergu/1784719

ELKstack-logstash 使用技巧小计          :     http://blog.51cto.com/vekergu/1785279

ELKstack-基于java工程tomcat应用日志处理过程-01    :         http://blog.51cto.com/vekergu/1787449

ELKstack-基于java工程tomcat应用日志处理过程-02        :       http://blog.51cto.com/vekergu/1787459

ES报错Result window is too large问题处理 荐          :      http://blog.51cto.com/nolinux/1786656

ES使用脚本进行局部更新的排错记录 荐      :      http://blog.51cto.com/nolinux/1775232

Elasticsearch6.2、head插件、x-pack安全模块(security机制)安装            :  http://blog.51cto.com/ityunwei2017/2071014

ElasticSearch ——单台服务器部署多个节点    :  https://www.jianshu.com/p/1ccc59dde56a

ElasticSearch + xpack 使用.md         :   https://www.jianshu.com/p/0ab1741fd4bc

logstash mysql 准实时同步到 elasticsearch         :  https://www.jianshu.com/p/62433b9c5c96

Elasticsearch + Kibana 集群环境搭建   :           https://www.jianshu.com/p/1c8ba75b72c8

ELK安装文档及相关优化         : http://blog.51cto.com/youerning/1726338

使用kibana和elasticsearch日志实时绘制图表 荐 :    http://blog.51cto.com/rfyiamcool/1421049

ElasticSearch      :   https://www.cnblogs.com/atomicbomb/tag/ElasticSearch/

原  ElasticSearch分片不均匀,集群负载不均衡     : https://blog.csdn.net/qq_20545159/article/details/80549335

从零开始搭建ELK+GPE监控预警系统 荐  : http://blog.51cto.com/itstyle/1983296

ELK之filebeat详解     :      https://www.ixdba.net/archives/2018/01/1111.htm

Elastic stack ——X-Pack安装 :       https://www.ixdba.net/archives/2017/11/822.htm

KAFKA 调优笔记  :          https://www.ixdba.net/archives/2017/11/803.htm

ElasticSearch 5学习(1)——安装Elasticsearch、Kibana和X-Pack : https://www.ixdba.net/archives/2017/11/818.htm

http://blog.51cto.com/xpleaf/category33.html

ElasticSearch笔记整理(一):简介、REST与安装配置 : http://blog.51cto.com/xpleaf/2096306

ElasticSearch笔记整理(二):CURL操作、ES插件、集群安装与核心概念  : http://blog.51cto.com/xpleaf/2096385

ElasticSearch笔记整理(三):Java API使用与ES中文分词 : http://blog.51cto.com/xpleaf/2096854

ElasticSearch笔记整理(四):ElasticSearch Rest与Settings、M    : http://blog.51cto.com/xpleaf/2096863

Elasticsearch:RestClient+SearchSourceBuilder使用案例 http://blog.51cto.com/xpleaf/2294268 :

elasticsearch入门    : https://mp.weixin.qq.com/s/g1w_UU7yk7jQO5pduBY_ew

ELK环境部署+监控Nginx日志 : https://mp.weixin.qq.com/s/X4nG8ysjHS16lnxwlR3tAw

ELK构架图 : https://www.processon.com/view/5cab6c95e4b031d02261289e

利用 ELK 搭建 Docker 容器化应用日志中心 :   https://mp.weixin.qq.com/s/4XI2BaThlcVR8_z4f9AbbA

你头疼的ELK难题,本文几乎都解决了 : https://mp.weixin.qq.com/s/7gYVC9TsuoV4LYPGwJ5UHQ

搜索是神器Elasticsearch入门介绍 : https://mp.weixin.qq.com/s/PlQRorBV03oqcnjWvE-uRg

ELK日志平台高级案例,360企业内部监控实战!! : https://mp.weixin.qq.com/s/Sp7FvSrvp3aC3sUYsTmErA

转载于:https://my.oschina.net/u/3803405/blog/1827395

大数据搜索引擎之ElasticSearch安装篇(资源)相关推荐

  1. 大数据学习之路 JUC篇

    大数据学习之路 JUC篇(1) 前提说明 本人是一名学生,茫茫it行业的一名卑微的小白,这是我第一次写博客.其原因是学着学着知识发现回顾的时候差不多全忘记了!!为了总结.复习自己以往学到过的有关大数据 ...

  2. 大数据搜索引擎技术_网络数据搜索技术

    大数据搜索引擎技术 Nowadays this is a very big problem to search appropriate data on web search engines. This ...

  3. 大数据常见面试题 Hadoop篇(2)

    大数据常见面试题 Hadoop篇(1)_后季暖的博客-CSDN博客1)序列化和反序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输.反序列化就是将收到字 ...

  4. 大数据常见面试题 Hadoop篇(1)

    目录 1.描述一下hdfs的写流程 读流程? 2.详细讲解一下hdfs的体系结构 3.如果一个datanode出现宕机,恢复流程是什么样的? 4.通常你是如何解决Haddop的NameNode宕机的, ...

  5. 大数据技术之Canal入门篇

    大数据技术之Canal入门篇 文章目录 大数据技术之Canal入门篇 写在前面 第 1 章 Canal 入门 1.1 什么是 Canal 1.2 MySQL 的Binlog 1.2.1 什么是 Bin ...

  6. 大数据产业 能否带领内蒙古跨越资源陷阱?

    "十三五"开局的脚步日益临近,对重化工占比较高.矿产资源富庶的内蒙古而言,如何在增速变挡.结构调整和动力转换的新常态下谋求发展,成为决胜全面小康的重要命题.眼下,内蒙古自治区新一届 ...

  7. 大数据开发:ElasticSearch 索引设置

    提起ElasticSearch,大家首先会联想到的往往是其特殊的索引机制,带来的快速查询性能优势.前面我们也对ElasticSearch的索引机制做了简单的介绍,今天的大数据开发分享,我们来讲讲Ela ...

  8. 2017年全球大数据产业报告之海外篇(第八集)

    本文作者│吴极 微信号│wujiwuji1023 本文转载自公众号星河融快(rongkuai888)  ,作者吴极(微信ID:wujiwuji1023)   中国软件网获授权转载. " 在上 ...

  9. 2017年全球大数据产业报告之海外篇(第七集)

    本文作者│吴极 微信号│wujiwuji1023 本文转载自公众号星河融快(rongkuai888)  ,作者吴极(微信ID:wujiwuji1023)   中国软件网获授权转载. " 在上 ...

最新文章

  1. getTasksWithCompletionHandler的用法
  2. log4j用法http://zengjinliang.javaeye.com/blog/171550
  3. Android MTK平台最完备的开机动画修改教程
  4. curl命令java_让 Bug 无处藏身,Java 线上问题排查思路、常用工具
  5. 在linux设置回收站 - 防止失误操作造成数据清空,并定期清理
  6. PHP 收货地址:添加、修改、删除
  7. 关于微信小程序图标icon的五种实现方案
  8. Mac版pages快捷键大全
  9. R语言---ggplot图片边缘空白设置和ggplot映射的shape值多余6个
  10. 系统的用户分析方法及分析内容
  11. 情商和逆商比智商更重要
  12. 微信表情的字符编号完整版【图文并茂哦 】
  13. 雷达感应模组技术,存在感应雷达传感器,智能电视开关机应用
  14. JAVA知识体系之JVM篇(新)
  15. 定时清理docker image
  16. Objective C 类别(Category)与类扩展(Extensions)
  17. 计算机教学反思杂文,懒教学反思随笔
  18. SPDY 是什么?如何部署 SPDY?
  19. 如何通过ssh远程连接自己的主机(Linux)?
  20. 草图溜溜到底是如何进行草图大师建模的呢?

热门文章

  1. 9000字通俗易懂的讲解下Java注解,你还看不明白?
  2. rime切换全角标点和半角标点
  3. 物体自动绕XYZ旋转
  4. 网页添加Live2D看板娘简易教程
  5. MacBookAir 2020——年轻人的第一台 Mac 使用体验
  6. 【转载】C++跑酷小游戏
  7. 北京智和信通:IT资产全生命周期运维监控管理方案
  8. MQTT学习之树莓派安装mosquito 服务器
  9. 温湿度监控设备在化妆品仓库中的应用
  10. html如何使多张图片滑动不卡顿,Web端大量图片同时加载卡顿问题的优化方案