ELK - centOS7安装Elasticsearch

一.官方网址

1. 如下 https://www.elastic.co/downloads



2. 安装准备

Elk平台环境

系统

版本

服务器操作系统

Centos 7

ElasticSearch

6.1.1

Logstash

2.3.4

Kibana

4.5.3

Jdk

1.8

注:由于Logstash的运行依赖于Java环境,而Logstash1.5以上版本不低于java 1.7,因此推荐使用最新版本的Java。因为我们只需要Java的运行环境,所以可以只安装JRE,不过这里我依然使用JDK,我这里准备使用1.8

 

二.JDK安装 jdk-8u151-linux-i586.tar.gz

方法一:手动解压JDK的压缩包,然后设置环境变量

1.在/usr/目录下创建java目录

[root@localhost ~]# mkdir/usr/java
[root@localhost ~]# cd /usr/java

2.下载jdk,然后解压

[root@localhost java]# curl -O http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 
[root@localhost java]# tar -zxvf jdk-7u79-linux-x64.tar.gz

3.设置环境变量 ( vi也行, 我一直用vim )

[root@localhost java]# vim /etc/profile

profile中添加如下内容:

# vim /etc/profile 配置系统参数
export JAVA_HOME=/usr/java/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

让修改生效:

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

4.验证JDK有效性

[root@localhost java]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

方法二:用yum安装JDK

1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk)

[root@localhost ~]# yum search java|grep jdk
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK

2.选择版本,进行安装

//选择1.7版本进行安装
[root@localhost ~]# yum install java-1.7.0-openjdk
//安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64

3.设置环境变量

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

profile文件中添加如下内容

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效

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

4.验证(同上一方法)

方法三:用rpm安装JDK

1.下载rpm安装文件

[root@localhost ~]$ curl -O http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

2.使用rpm命令安装

[root@localhost  ~]# rpm -ivh jdk-7u79-linux-x64.rpm

3.设置环境变量

[root@localhost java]# vim /etc/profile

在打开的profile文件中添加如下内容

#set java environment
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效

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

4.验证(同上一方法)

:和yum安装类似,不用设置环境变量就可以运行java命令。rpm安装方式默认会把jdk安装到/usr/java/jdk1.7.0_79,然后通过三层链接,链接到/usr/bin,具体链接如下:

[root@localhost ~]# cd /bin
[root@localhost bin]# ll|grep java
lrwxrwxrwx. 1 root root    25 Mar 28 11:24 jar ->/usr/java/default/bin/jar
lrwxrwxrwx. 1 root root    26 Mar 28 11:24 java -> /usr/java/default/bin/java
lrwxrwxrwx. 1 root root    27 Mar 28 11:24 javac ->/usr/java/default/bin/javac
lrwxrwxrwx. 1 root root    29 Mar 28 11:24 javadoc ->/usr/java/default/bin/javadoc
lrwxrwxrwx. 1 root root    28 Mar 28 11:24 javaws ->/usr/java/default/bin/javaws
lrwxrwxrwx. 1 root root    30 Mar 28 11:24 jcontrol ->/usr/java/default/bin/jcontrol
[root@localhost bin]# cd /usr/java/
[root@localhost java]# ll
total 4
lrwxrwxrwx. 1 root root  16 Mar 28 11:24 default-> /usr/java/latest
drwxr-xr-x. 8 root root 4096 Mar 28 11:24 jdk1.7.0_79
lrwxrwxrwx. 1 root root  21 Mar 28 11:24 latest -> /usr/java/jdk1.7.0_79

三.Elasticsearch安装

1. 命令下载

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz

2. 下载软件包,离线安装解压也行。我下载的ZIP包。

 

剪贴或者复制到虚拟机,手动解压安装 或者 命令解压:unzip elasticsearch-6.1.1.zip

tar -xvf elasticsearch-2.3.4.tar.gz

cd elasticsearch-2.3.4

 

3. 然后编辑ES的配置文件 

( 这步后面插件安装时修改,现在里面默认配置已经可以了 )

vi config/elasticsearch.yml

 

# 集群的名字

cluster.name: my-application

# 节点名字

node.name: node-1

# 数据存储目录(多个路径用逗号分隔)

path.data: /home/wjy/es/data

# 日志目录

path.logs: /home/wjy/es/logs

#本机的ip地址

network.host: 192.168.161.128

#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.zen.ping.unicast.hosts: ["192.168.161.128"]

# 设置节点间交互的tcp端口(集群),(默认9300)

transport.tcp.port: 9300

# 监听端口(默认)

http.port: 9200

# 增加参数,使head插件可以访问es

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

 

4. 其他的选项保持默认,然后启动ES

./bin/elasticsearch


可以看到,它跟其他的节点的传输端口为9300,接受HTTP请求的端口为9200。

使用ctrl+C停止。当然,也可以使用后台进程的方式启动ES:

./bin/elasticsearch &

然后可以打开页面localhost:9200,将会看到以下内容:


返回展示了配置的cluster_name和name,以及安装的ES的版本等信息。

四.Elasticsearch插件安装

1. 下载head插件

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

或者

下载地址:https://github.com/mobz/elasticsearch-head,下载后解压缩。

 

2. 先安装编译器: gcc, g++和所需的包

安装gcc

yum install gcc

安装g++

yum install gcc-c++

安装编译所需的包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

Yum install gcc perl-ExtUtils-MakeMaker

3. 安装nodejs ( node-v8.9.4.tar.gz ; 新版的nodejs已经集成了npm)

官网下载(记得下载源码资源包): https://nodejs.org/en/download/

# wget https://nodejs.org/dist/v6.10.2/node-v6.10.2.tar.gz

 

解压下载的压缩包 ( ***是版本号 )

tar zxvf node-v8.9.4.tar.gz

进入解压后的文件夹

cd node-v***

依次执行下面命令

./configure --prefix=/usr/local/node/***

make

make install

查看node -v 安装是否成功(默认配置就是全局的,若不行再配置)

配置Node环境

    [root@localhost node-v4.2.6]# vim /etc/profile

     vim进入profile后,按下键盘i进入编辑模式,然后在文本最后面写下如下内容。

     export NODE_HOME=/usr/local/node
      export PATH=$NODE_HOME/bin:$PATH
     export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH

 输完后,按Esc退出编辑模式,然后按下:wq,就会退出保存。

 然后输入以下命令就会生效: 

4. 安装grunt

grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动

进入下载解压的head文件

cd /opt/elasticsearch-head-master

npm install -g grunt-cli  //执行后会生成node_modules文件夹

检查是否安装成功


5. 修改head插件源码

修改服务器监听地址:Gruntfile.js

6. 修改连接地址:_site/app.js


7. 确认下配置文件是否修改elasticsearch.yml

# 集群的名字  

cluster.name: my-application

# 节点名字  

node.name: node-1   

# 数据存储目录(多个路径用逗号分隔)  

path.data: /home/wjy/es/data  

# 日志目录  

path.logs: /home/wjy/es/logs  

#本机的ip地址

network.host: 192.168.161.128  

#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点

discovery.zen.ping.unicast.hosts: ["192.168.161.128"]

# 设置节点间交互的tcp端口(集群),(默认9300)  

transport.tcp.port: 9300  

# 监听端口(默认)  

http.port: 9200  

# 增加参数,使head插件可以访问es  

http.cors.enabled: true  

http.cors.allow-origin: "*"

 

# 最后由于报错启动不了添加的配置

http.cors.enabled: true

http.cors.allow-origin: "*"

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

 

8.  #启动elasticsearch

启动es       ./elasticsearch

 

9. 运行head

elasticsearch-head-master目录下

npm install(安装下载下来的包)

grunt server

 

10. 访问http://xxx:9100

. elk中elasticsearch安装启动报错

1. 问题一

[2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter:

Java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349) ~[elasticsearch-5.0.0.jar:5.0.0]

at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630) ~[elasticsearch-5.0.0.jar:5.0.0]

原因:报了一大串错误,大家不必惊慌,其实只是一个警告,主要是因为你Linux版本过低造成的。

解决方案:重新安装新版本的Linux系统, 警告不影响使用,可以忽略

 

2. 问题二

ERROR: bootstrap checks failed

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

原因:无法创建本地文件问题,用户最大可创建文件数太小

解决方案:

切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:

vi /etc/security/limits.conf

添加如下内容 ( 注意和原来里面的配置上下对齐,尤其每列之间的空格距离位置 )

*     soft     nofile      65536

*     hard    nofile     131072

*     soft     nproc     2048

*     hard    nproc     4096

备注:* 代表Linux所有用户名称(比如 pengfei)

 

保存、退出、重新登录才可生效

 

3. 问题三

max number of threads [1024] for user [es] likely too low, increase to at least [2048]

原因:无法创建本地线程问题,用户最大可创建线程数太小

解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件。

vi /etc/security/limits.d/90-nproc.conf

找到如下内容:

*    soft   nproc    1024

#修改为

*    soft   nproc    2048

 

4. 问题四

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

原因:最大虚拟内存太小;  解决方案:切换到root用户下,修改配置文件sysctl.conf

vi /etc/sysctl.conf

添加下面配置:   vm.max_map_count=655360

并执行命令:     sysctl -p

然后重新启动elasticsearch,即可启动成功。

 

 

5. 问题五

ElasticSearch启动找不到主机或路由

原因:ElasticSearch 单播配置有问题

解决方案: 检查ElasticSearch中的配置文件

vi  config/elasticsearch.yml

找到如下配置:

discovery.zen.ping.unicast.hosts:["192.168.**.**:9300","192.168.**.**:9300"]

一般情况下,是这里配置有问题,注意书写格式

 

6. 问题六

org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream

原因:ElasticSearch节点之间的jdk版本不一致

解决方案:ElasticSearch集群统一jdk环境

 

7. 问题七

Unsupported major.minor version 52.0

原因:jdk版本问题太低

解决方案:更换jdk版本,ElasticSearch5.0.0支持jdk1.8.0

 

8. 问题八:

bin/elasticsearch-plugin install license

ERROR: Unknown plugin license

原因:ElasticSearch5.0.0以后插件命令已经改变

解决方案:使用最新命令安装所有插件

bin/elasticsearch-plugin install x-pack

 

9. 启动异常:ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

 

问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899

 

解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

 

 

 

猜你喜欢

转载自blog.csdn.net/mynah886/article/details/79085855