elastic search&logstash&kibana 学习历程(一)es基础环境的搭建

elastic search 6.1.x

常用框架:

1Lucene

Apache下面的一个开源项目,高性能的、可扩展的工具库,提供搜索的基本架构;

如果开发人员需用使用的话,需用自己进行开发,成本比较大,但是性能高 

2solr

Solr基于Lucene的全文搜索框架,提供了比Lucene更为丰富的功能,

同时实现了可配置、可扩展并对查询性能进行了优化

建立索引时,搜索效率下降,实时索引搜索效率不高

数据量的增加,Solr的搜索效率会变得更低,适合小的搜索应用,对应java客户端的是solrj

 3elasticSearch

基于Lucene的搜索框架, 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口

上手容易,拓展节点方便,可用于存储和检索海量数据,接近实时搜索,海量数据量增加,搜索响应性能几乎不受影响;

分布式搜索框架,自动发现节点,副本机制,保障可用性

新特性讲解

 16.1.x版本基于Lucene 7.1.0,更快,性能进一步提升,对应的序列化组件,升级到Jackson 2.8

 2、自适应副本选择

  今天在Elasticsearch中,对同一分片的一系列搜索请求将以循环方式转发到主要和每个副本。如果一个节点启动了长时间的垃圾收集,这可能会出现问题 - 搜索请求仍将被转发到缓慢的节点,并且会影响搜索延迟。6.1中,我们添加了一个称为自适应副本选择的实验性功能。每个节点跟踪并比较搜索请求到其他节点的时间,并使用这些信息来调整向特定节点发送请求的频率。在我们的基准测试中,这样可以大大提高搜索吞吐量,降低99%的延迟。这个选项在默认情况下是禁用的

3、推荐使用5.0版本推出的Java REST/HTTP客户端,依赖少,比Transport使用更方便,在基准测试中,性能并不输于Transport客户端,5.06.0版本中,每次有对应的API更新, 文档中也说明,推荐使用这种方式进行开发使用,所有可用节点间的负载均衡,在节点故障和特定响应代码的情况下进行故障转移,失败的连接处罚(失败的节点是否重试取决于失败的连续次数;失败的失败次数越多,客户端在再次尝试同一节点之前等待的时间越长

在centos7下安装elastic search

安装java环境:

我的java安装目录是/usr/local/java  所以修改/etc/profile文件
vim /etc/profile
 JAVA_HOME=/usr/local/java
 PATH=$JAVA_HOME/bin:$PATH
 export JAVA_HOME PATH
修改完文在当前终端生效命令 source /etc/profile

测试java环境是否正常命令   java -version   显示如下(正常)

安装elasticsearch:

官网是:www.elastic.co   下载

mkdir /temp   #新建安装elastic目录
cd /temp
tar -xvf elasticsearch-6.2.4.tar.gz   #解压elastic文件
cd ..
chmod -R 777 /temp    #给目录权限
useradd -m elastic -G wheel   #因为elastic不能用root用户去启动,创建新用户
su - elastic     #切换用户
注意事项:
修改系统参数,确保系统有足够资源启动ES
设置内核参数
vim /etc/sysctl.conf
#增加以下参数
vm.max_map_count = 655360
执行以下命令,确保生效配置生效:
sysctl –p
 
设置资源参数
vim /etc/security/limits.conf
#修改
* soft nofile 65536   #警告设定所有用户最大打开文件数
* hard nofile 131072  #严格设定所有用户最大打开文件数
* soft nproc 65536   #警告设定所有用户最大打开进程数为65535
* hard nproc 131072 #严格设定所有用户最大打开进程数为131072

vim /etc/security/limits.d/20-nproc.conf #设置elk用户参数 elk soft nproc 65536

es集群配置参数

vim /etc/elasticsearch
cluster.name: aubin-cluster                                 # 集群名称
node.name: els1                                             # 节点名称,仅仅是描述名称,用于在日志中区分

path.data: /var/lib/elasticsearch                           # 数据的默认存放路径
path.logs: /var/log/elasticsearch                           # 日志的默认存放路径

network.host: 192.168.0.1                                   # 当前节点的IP地址
http.port: 9200                                             # 对外提供服务的端口,9300为集群服务的端口

discovery.zen.ping.unicast.hosts: ["172.18.68.11", "172.18.68.12","172.18.68.13"]       
# 集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析

discovery.zen.minimum_master_nodes: 2                       # 为了避免脑裂,集群节点数最少为 半数+1

注意:集群所用的端口是9300防火墙要打开
原文地址:https://www.cnblogs.com/both/p/9067803.html