菜鸟笔记
提升您的技术认知

elk第一篇:elasticsearch安装-ag真人游戏

elasticsearch(简称es)是一个分布式、restful的搜索及分析服务器,设计用于分布式计算;能够达到实时搜索,稳定,可靠,快速。和apache solr一样,它也是基于lucence的索引服务器,而elasticsearch对比solr的优点在于:

  • 轻量级:安装启动方便,下载文件之后一条命令就可以启动。
  • schema free:可以向服务器提交任意结构的json对象,solr中使用schema.xml指定了索引结构。
  • 多索引文件支持:使用不同的index参数就能创建另一个索引文件,solr中需要另行配置。
  • 分布式:solr cloud的配置比较复杂。

大事件:
2013年初,github抛弃了solr,采取elasticsearch 来做pb级的搜索。

近年elasticsearch发展迅猛,已经超越了其最初的纯搜索引擎的角色,现在已经增加了数据聚合分析(aggregation)和可视化的特性,如果你有数百万的文档需要通过关键词进行定位时,elasticsearch肯定是最佳选择。当然,如果你的文档是json的,你也可以把elasticsearch当作一种“nosql数据库”, 应用elasticsearch数据聚合分析(aggregation)的特性,针对数据进行多维度的分析。

elasticsearch一些国内外的优秀案例:

  • github:“github使用elasticsearch搜索20tb的数据,包括13亿文件和1300亿行代码”。
  • soundcloud:“soundcloud使用elasticsearch为1.8亿用户提供即时而精准的音乐搜索服务”。

  • 百度:百度目前广泛使用elasticsearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个es节点,每天导入30tb 数据。

jdk和环境变量必装,需要先下载jdk 1.7以上的版本,对于2.0来说,要求jdk1.8以上。
elasticsearch下载安装包:https://www.elastic.co/downloads/elasticsearch

可以在mac,windows和linunx环境安装

本文环境:centos7.0,jdk1.8.03,elasticsearch6.0

下载并解压

1.download and unzip elasticsearch

[root@localhost elasticsearch-6.0.0]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz
tar -xvf elasticsearch-6.0.0.tar.gz

note

elasticsearch can also be installed from our package repositories using apt or yum, or installed on windows using an msi installer package. see repositories in the guide.
也可以使用yum安装,或者在windows下使用msi安装

目录结构

home—这是elasticsearch解压的目录
  bin—这里面是es启动的脚本
  conf—elasticsearch.yml为es的配置文件
  data—这里是es得当前节点的分片的数据,可以直接拷贝到其他的节点进行使用
  logs—日志文件
  plugins—这里存放一些常用的插件,如果有一切额外的插件,可以放在这里使用。

centos下创建用户并配置文件权限

创建一个工作组为 elsearch用户名为els的用户,默认密码为123456
并把该文件下所有权赋予该账号

groupadd elsearch
[root@localhost elasticsearch-6.0.0]# useradd els -g elsearch -p 123456
[root@localhost elasticsearch-6.0.0]# chown -r els:elasticsearch  elasticsearch-6.0.0

修改系统配置

以下修改都使用root权限

limits.conf

vi /etc/security/limits.conf

添加如下内容到文件末尾

*               soft    nofilee   65536
*               hard    nofile    131072
*               soft    nproc     2048
*               hard    nproc     4096

*-nproc.conf

这里你需查看系统生成的文件名是什么(每个系统生成的数字各不一样),可以看到我这里是20-nproc.conf,然后编辑它

ls /etc/security/limits.d/
20-nproc.conf
vi /etc/security/limits.d/20-nproc.conf

添加如下内容:

soft nproc 2048

如果你的文件里面本身已经有了这个配置,如果比2048小则修改为2048否则不变

###sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl -p

###elasticsearch.yml
修改elasticsearch绑定的ip地址

 vi config/elasticsearch.yml

找到network相关的配置天添加如下内容,ip修改为你自己的ip

 network.host: 192.168.0.91

注:如果你是配置的计算机访127.0.0.1则不需要修改,否则如果是其他计算机浏览器打开则无法访问的到,因为它默认绑定的ip是127.0.0.1

后台运行

3 run bin/elasticsearch (or bin\elasticsearch.bat on windows)
运行elasticsearch
切换账号到els

su els
bin/elasticsearch

run curl http://localhost:9200/ or invoke-restmethod http://localhost:9200 with powershell
浏览器打开如上地址,如果你使用内网或者公网ip访问则需要修改它的绑定地址,因为它默认绑定的ip是127.0.0.1

当我们ctrl c它就停止运行了
使用如下命令

./elasticsearch -d

若是es的后台运行,则用kill -9 进程号来停止。

$ jps
24105 jps
24060 elasticsearch
kill -9 24060

解决linux下root运行elasticsearch异常

在centos 7.0 上运行elasticsearch 6.0,异常如下:

[2017-11-27t11:33:58,909][warn ][o.e.b.elasticsearchuncaughtexceptionhandler] []                                                                                                              uncaught exception in thread [main]
org.elasticsearch.bootstrap.startupexception: java.lang.runtimeexception: can no                                                                                                             t run elasticsearch as root
        at org.elasticsearch.bootstrap.elasticsearch.init(elasticsearch.java:134                                                                                                             ) ~[elasticsearch-6.0.0.jar:6.0.0]

异常描述为不能以root权限运行elasticsearch.

解决办法是创建一个工作组为 elsearch用户名为els的用户,默认密码为123456
并把该文件下所有权赋予该账号

groupadd elsearch
[root@localhost elasticsearch-6.0.0]# useradd els -g elsearch -p 123456
[root@localhost elasticsearch-6.0.0]# chown -r els:elasticsearch  elasticsearch-6.0.0

切换账号到els

su els

运行bin/elasticsearch

error: bootstrap checks failed

error: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这个问题是elasticsearch需要创建大量的线程数和文件数以及mmap的内存容量受到了操作系统配置的限制的最大数量,因此需要手动修改操作系统的相关配置,具体配置参考我上面【修改系统配置】

官方给出的文档说明参考:
https://www.elastic.co/guide/en/elasticsearch/reference/master/bootstrap-checks.html

第一步:本机如何安装java8 环境,请自行baidu.

第二步:安装elasticsearch

1、从ag真人试玩娱乐官网下载elasticsearch,https://www.elastic.co/downloads/elasticsearch,下载zip包。

我下载的最新版本为:elasticsearch-6.3.2

2、解压到指定目录文件夹中,我这里指定的目录文件夹目录:d:\elasticsearch。

3、进入elasticsearch解压指定目录,进入bin 文件夹中(d:\elasticsearch\elasticsearch-6.3.2\bin),执行elasticsearch.bat

4、本机启动一个elasticsearch节点,启动后如图所示:

es必要的插件ik、head、kibana

必要的head、kibana、ik(中文分词)、graph等插件的详细安装和使用。
http://blog.csdn.net/column/details/deep-elasticsearch.html

windows7下安装head

下载head插件这里是最新版本的(2018/10/11日下载)
https://github.com/mobz/elasticsearch-head

这是一个vue项目,因此需要安装node.js进行编译(node.js具体安装过程这里直接跳过,请参看我关于vue环境搭建的篇章)

cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/

如果已经启动es的情况下链接会发现链接不上,浏览器控制台会报如下错误

(index):1 failed to load http://localhost:9200/_cluster/state: response to preflight request doesn’t pass access control check: no ‘access-control-allow-origin’ header is present on the requested resource. origin ‘http://localhost:9100’ is therefore not allowed access.

需要修改一下es使用的参数。编辑d:/elasticsearch-6.4.2/config/config/elasticsearch.yml:

# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true 
http.cors.allow-origin: "*"

重新启动即可

性能esrally工具(推荐)

使用参考:https://www.coonote.com/note/elasticsearch-rally.html

网站地图