es搭建 linux
2019-01-15 14:27:56 chaoyu168 阅读数 130

前期准备:

更新源:

编辑sources.list,将kali更新源加入其中

sudo vim /etc/apt/sources.list

国内更新源
#阿里云

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

更新源:apt-get update

1、apt-get update失败:
 wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add   

更新系统:apt full-upgrade

解决Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

sudo vim /etc/resolv.conf ,添加:

nameserver 8.8.8.8

然后执行:

sudo /etc/init.d/networking restart

安装vim:

apt-get install vim

安装Java(https://blog.csdn.net/smile_from_2015/article/details/80056297

配置完Java环境,执行: update-alternatives --config java

先看是否有openjdk,有的话卸载:apt-get remove openjdk* 

下载jdk:wget https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz?AuthParam=1547110418_02b2a308d6483a73ebc3d5604347ffff

安装elasticsearch:

1.进入elastic官网下载elasticsearch 点击打开链接,,选择tar,右键复制链接

2.进入命令行输入: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz 下载到当前目录

3.输入命令:tar -vxf elasticsearch-6.2.3.tar.gz 解压,此时会生成 elasticsearch-6.2.3 文件

4.输入:vi elasticsearch-6.2.3/config/jvm.options 修改Xms1g和Xmx1g这两个值,我修改的为 Xms512m和Xmx512m,若果 你内存够大,可以不用修改

进行elasticsearch.yml的配置,该文件位于config目录下,具体配置如下:

以下是配置集群,各属性配置说明,更多属性配置可自行添加
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
#集群名称
cluster.name: elastic_cluster
#
# ------------------------------------ Node ------------------------------------
#
#节点名称
node.name: node1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
#节点数据存放目录地址;默认是在ELASTICSEARCH _HOME/data下面,可自定义
#path.data: /path/to/data
#
#logs日志存放目录地址,可自定义
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#是否锁定内存,以下两个一般设置为false
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#指定本机IP地址,自行修改为本机ip
network.host: 192.168.0.1
#指定本机http访问端口
http.port: 9200
#指定节点是否有资格被选举为主节点;默认true
node.master: true
#指定节点是否存储索引数据;默认true
node.data: true
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#设置集群各节点的初始列表,默认第一个为主节点,如果不是配置集群,而是单机,以下参数可不进行配置
discovery.zen.ping.unicast.hosts: ["192.168.1.1", "192.168.1.2"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#设置集群最大主节点数量;默认1,范围值为1-4
discovery.zen.minimum_master_nodes: 1
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
#设置9200端口可以对外访问;比如head插件连es
http.cors.enabled: true
http.cors.allow-origin: "*"

5.然后进入bin文件夹输入:./elasticsearch 启动

如果出现上述错误则是说明:不能用root用户启动,这时我们需要换一个普通用户

6.创建一个用户: 输入:adduser elastic

7.输入 su elastic 登录elastic用户

8.进入elasticsearch-6.2.3 bin 目录,输入 ./elasticsearch 启动elastic

如若出现上述错误,则是elastic这个用户权限不足,这时我们可以输入 ls -l查看,会发现elasticsearch的权限为 root root,所以此时我们需要为elastic这个用户添加权限

9.切换为root用户回到elasticsearch-6.2.3文件夹父级目录执行命令: chown -R elastic elasticsearch-6.2.3

chgrp -R elsearch /work/elasticsearch-6.2.3

10.切换为elastic用户进入 elasticsearch-6.2.3 bin目录 输入:./elasticsearch 启动elasticsearch

如图所示:此时我们可以看出elasticSearch已经启动成功,我们可以出浏览器输入 127.0.0.1:9200进行一个验证

如图:启动成功

11. 停掉服务:按 Ctrl+c ;然后刷新浏览器已经不在显示,说明服务已停止

12.后台启动elasticsearch ,输入:./elasticsearch -d 启动elasticsearch; 稍等一会,可以再去浏览器进行验证,也可以输入

    ps aux|grep elasticsearch 命令进行查询

启动成功!
 

报错处理:

https://blog.csdn.net/u012246178/article/details/63253531    (主要问题解决方法)

https://www.cnblogs.com/yuluoxingkong/p/7886622.html

https://blog.csdn.net/u013641234/article/details/80792416

https://www.cnblogs.com/zhi-leaf/p/8484337.html

 

错误1:E: Sub-process /usr/bin/dpkg returned an error code (1)
https://www.cnblogs.com/nkh222/p/8126455.html


错误2:unable to load JNA native support library, native methods will be disabled.
https://blog.csdn.net/a_flying_bird/article/details/77657803

 

错误3:org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: failed to obtain node locks, tried
https://blog.csdn.net/u013641234/article/details/80792416

 

错误4:org.elasticsearch.bootstrap.StartupException: ElasticsearchException[X-Pack is not supported and Machine Learning is not available for [linux-aarch64]; you can use the other X-Pack features (unsupported) by setting xpack.ml.enabled: false in elasticsearch.yml]
https://blog.csdn.net/fanrenxiang/article/details/81358332

2017-12-05 11:47:00 weixin_34049948 阅读数 15

一 .下载

# 下载, 获取不成功可直接从官网下载
curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz
# 解压
sudo tar -xvf elasticsearch-2.4.0.tar.gz
# 进入目录
cd elasticsearch-2.4.4/bin

二.启动

./elasticsearch
// 会报错
Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
        Refer to the log for complete error details.
//这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
//建议创建一个单独的用户用来运行ElasticSearch


// 创建用户
创建elsearch用户组及else arch用户
grouped else arch
useradd elsearch -g elsearch -p elastic search
更改elasticsearch文件夹及内部文件的所属用户及组为else arch:else arch

cd /opt
chown -R elsearch:else arch  elastic search
切换到elsearch用户再启动

su elsearch cd elasticsearch/bin
// 正常启动了
./elasticsearch
// 后台启动运行
./elasticsearch -d

这个时间你就可以访问了

curl http://localhost:9200/

如果需要外部ip访问

// 修改配置文件
cd /elasticsearch/config
vim elasticsearch.yml 
// 如下图,解开host 跟 端口,这样就可以根据ip访问了
curl http://{服务器外网ip}:9200/
1076416-dc0824762cadaca1.png
配置修改

三. 安装head 插件

// 在bin目录下
./plugin install mobz/elasticsearch-head
// 重启ES,即可在浏览器中访问
http://{服务器IP}:9200/_plugin/head/
// 启动成功如下图
1076416-5ac18cea72b802db.jpeg
WechatIMG28265.jpeg
2019-01-18 16:12:34 mid120 阅读数 150

--下载有两个版本


 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz

--请选择一个

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.4.0.tar.gz
--解压缩
tar -zxvf elasticsearch-2.4.0.tar.gz
--启动
sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch

 

如果出现内存不够  则改内存(使用5的版本)

      由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配

不能使用root用户操作

     useradd  xxx

   passwd  xxx

    chown -r  xxx文件夹  (授权给某个用户)

常见的错误解决方案  :

https://blog.csdn.net/qq_21387171/article/details/53577115

补充说明(报权限不足  ,添加两行)

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

elasticsearch安装时遇到的错误

问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;

解决办法:

#切换到root用户修改

vim /etc/security/limits.conf

 

# 在最后面追加下面内容

*** hard nofile 65536

*** soft nofile 65536

 

***  是启动ES的用户

阿里云后台管理,开放9200 和9300

 

远程head 插件连接  (需要加跨域访问)

修改elasticsearch.yml,增加如下字段

http.cors.enabled: true
http.cors.allow-origin: "*"

cros为: Cross-origin resource sharing ,即跨域访问。

    默认值为false,在elasticsearch安装集群之外的一台机上用head等监控插件访问elasticsearch是不允许的。这个字段最早1.4.x版本,而非5.x开始存在的。


 
2019-06-27 14:30:29 huixin634419817 阅读数 1

 

 

参考:https://www.cnblogs.com/orzlin/p/10262393.html

系统环境

  • Linux
  • JDK 1.8

基本概念

5.1 集群( cluster )

集群是由一个或者多个拥有相同 cluster.name 配置的节点组成,共同承担数据和负载压力,当节点数量发生变化时集群将会重新平均分布所有数据。

5.2 节点( node )

一个运行中的 ES 实例称为一个节点

  • 主节点负责管理集群范围内的所有变更,例如增加/删除索引,或者增加/删除节点等,且不需要涉及到文档级别的变更和搜索等操作
  • 任何节点都能成为主节点
  • 当集群只有一个主节点,即使流量增加也不会成为瓶颈

5.3 索引( index )

  • 名词;类似于传统关系数据库中的一个数据库
  • 动词;索引一个文档就是存储一个文档到一个索引(名词)中以便它可以被检索和查询到。类似于 SQL 语句中的 INSERT 关键词
  • 倒排索引;类似于传统关系型数据库中的索引概念,可以提升数据检索速度

5.4 类型( type )

一个索引包含一个或多个 type ,相当于传统关系型数据库中的表

5.5 文档( document )

相当于传统关系型数据库中的数据行

5.6 分片( shards )

  • 是一个底层的「工作单元」,仅保存了全部数据的一部分
  • 是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里
  • 当集群规模扩大或者缩小时, ES 会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里
  • 分为「主分片」「副本分片」
  • 在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改;默认情况下会被分配「 5 」个主分片和「 1 」份副本(每个主分片拥有一个副本分片)
  • 相同主分片的副本分片不会放在同一个节点

① 主分片 ( Primary shard )

索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量

② 副本分片( Replica shard )

只是一个主分片的拷贝,作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务

环境搭建

6.1 Elasticsearch

6.1.1 安装步骤

① 下载安装包:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.3.tar.gz

② 解压并移动到 local 目录下

③ 修改 config 目录下的 elasticsearch.yml 文件

$ vim elasticsearch.yml
// 去掉行开头的 # 并重命名集群名,这里命名为 compass
cluster.name: compass
// 去掉行开头的 # 并重命名节点名,这里命名为 node-1
node.name: node-1

④ 进入 bin 目录启动 ES 并在后台运行

$ ./elasticsearch -d

⑤ 启动之后测试是否正常运行

$ curl 127.0.0.1:9200

⑤ 启动之后测试是否正常运行

$ curl 127.0.0.1:9200

返回结果:

{
  "name" : "node-1",
  "cluster_name" : "compass",
  "cluster_uuid" : "Zuj5FBMUTjuHQXlAHreGvA",
  "version" : {
    "number" : "5.5.3",
    "build_hash" : "9305a5e",
    "build_date" : "2017-09-07T15:56:59.599Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

6.1.2 如果提示「-bash: wget: command not found」则需要先安装 wget

$ yum -y install wget

6.1.3 ES 版本> = 5.0.0 时,是不能用超级管理员运行的,此时需要切换到普通账号或者新建 ES 账号

blog_1_1.png

解决办法:

① 新建用户组 elasticsearch

$ groupadd elasticsearch

 

② 新建用户并指定用户组

$ useradd -g elasticsearch elasticsearch

③ 修改 ES 目录所属者

$ chown -R elasticsearch:elasticsearch elasticsearch

④ 切换用户后再次启动

$ su elasticsearch
$ ./usr/local/elasticsearch/bin/elasticsearch

 

6.1.4 只能使用127.0.01或者localhost访问,使用ip地址无法访问?

解决办法:

① 修改 elasticsearch.yml 中的「network.host」

network.host: 0.0.0.0

② 重启 ES 出现如果如下报错,请依次按下面的步骤解决

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

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

每个进程最大同时打开文件数太小

修改 /etc/security/limits.conf 文件,增加如下配置,用户退出后重新登录生效

* soft nofile 65536
* hard nofile 65536

[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]

最大线程个数太低

同上修改 /etc/security/limits.conf 文件,增加如下配置,用户退出后重新登录生效

* soft nproc 4096
* hard nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

一个进程能拥有的最多的内存区域

修改 /etc/sysctl.conf 文件,增加如下配置,执行命令「 sysctl -p 」生效

vm.max_map_count=262144

③ 切换到 elasticsearch 用户并重启, curl 测试成功

[root@db-develop-01 ~]$ curl 192.168.1.192:9200
{
  "name" : "node-1",
  "cluster_name" : "compass",
  "cluster_uuid" : "mFL_a6WDTUaWbB4jKA8cWg",
  "version" : {
    "number" : "5.5.3",
    "build_hash" : "9305a5e",
    "build_date" : "2017-09-07T15:56:59.599Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

 

6.3 Kibana

① 下载安装包:

$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-linux-x86_64.tar.gz

② 解压并移动到 local 目录下

$ tar -zxvf kibana-5.5.3-linux-x86_64.tar.gz
$ mv kibana-5.5.3-linux-x86_64 /usr/local/kibana

③ 修改 config 目录下的 kibana.yml 文件

// 去掉当前行开头的 #
server.port: 5601
// 去掉当前行开头的#并将localhost修改为具体IP
server.host: "192.168.1.191"
// 去掉当前行开头的#并将localhost修改为具体IP
elasticsearch.url: "http://192.168.1.191:9200"

④ 启动 Kibana ,浏览器访问 http://192.168.1.191:5601

$ ./kibana

6.4 ik(ik版本与es版本保持一致) 

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.3/elasticsearch-analysis-ik-5.5.3.zip
cd /usr/local/elasticsearch/plugins/

unzip elasticsearch-analysis-ik-5.5.3.zip

mv elasticsearch ik

重启elasticsearch

2016-07-15 10:25:54 T_6666 阅读数 488

ES学习(二) Linux 搭建

ES学习(一)讲了windows中搭建,此文章介绍如何在linux中搭建

一.环境 准备,

下载安装vmware workstation,虚拟机centos,此处不多提及,linux也在研究中,如有总结,第一时间做更新,


二.下载ES并解压

1.去官网:https://www.elastic.co/downloads/elasticsearch选择需要下载的版本,现在最新的是2.3.4,教程中我下载是2.3.3

执行,

curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/{version}/elasticsearch-{version}.zip



2.进行unzip解压

三.我们需要安装插件,首先显安装jdk,

1.去官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载我们对应centos版本的jdk,此文章中使用的是1.8.0.3的版本,放置opt临时文档中

备注:在安装自己下载的jdk之前,要先看看新安装的centos系统是否自带jdk版本,如果存在是最好卸载掉,安装自己下载的jdk版本。

2.新建java目录 命令:

mkdir /usr/local/java



再把jdk-8u73-linux-x64.gz压缩包从opt目录下复制到自荐的目录 命令:

cp jdk-8u73-linux-x64.gz /usr/local/java



3.解压 

tar xvf jdk-8u73-linux-x64.gz



4.解压后,进入到解压文档

cd /etc
vim profile



输入i(表示insert)

在profile文件的末尾加入如下命令:

export JAVA_HOME=/usr/local/java/jdk1.7.0_75 
export JRE_HOME=/usr/local/java/jdk1.7.0_75/jre 
export PATH=$PATH:/usr/local/java/jdk1.7.0_75/bin 
export CLASSPATH=./:/usr/local/java/jdk1.7.0_75/lib:/usr/local/java/jdk1.7.0_75/jre/lib

输入:wq保存并退出,然后重启centos系统

5.重启系统后,输入:java -version

四.安装插件,license,marvel-agent,head,kopf

五.启动

定位到es文件夹,命令:

bin/elasticsearch

启动成功,看到bound_addresss为39200是为了集群搭建做准备,但是这只能本地访问我们的es

六.设置elasticsearch.yml

命令:

vim config/elasticsearch.yml

修改后,重启

七.防火墙设置

1.切换到root命令输入密码,打开iptables将端口(yml中你所配置的端口,下图只是示例)加入

命令:

su root
Password
vim /etc/sysconfig/iptables


此处纠正:9301应为9300

2.重启防火墙

八.访问成功

九.集群的搭建
两台虚拟机,分别

ip:10.10.110.162 port:39200 tcp.port:9300

ip:10.10.110.161 port:29200 tcp.port:9300

需要修改elasticsearch.yml

cluster-name配置中在以下图并没有提及,将需要集群的两台机器cluster-name 配置同一个名字

分别启动两个es,集群搭建成功




参考:

https://www.elastic.co/

http://blog.csdn.net/sxdtzhaoxinguo/article/details/43731677


redhat Linux es 5.5

阅读数 3

没有更多推荐了,返回首页