呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

ElasticSearch + Kibana 安装配置(CentOS)

CentOS 搭建内网可访问的 ElasticSearch + Kibana 环境

部署环境:CentOS 7 64bit

使用组件:ElasticSearch 5.4、Kibana 5.4

实例描述:在一台服务器上搭建 ElasticSearch + Kibana,并使内网可访问,假设服务器地址为 172.16.4.44 。搭建好之后,同一内网中的机器都可以访问这个地址进入 Kibana 查看 ElasticSearch 中的数据。

组件下载:ElasticSearch 5.4Kibana 5.4 均采用原生版本

注意:ElasticSearch 需要 java8 以上环境,这里假设你已经安装好。

部署过程:

编辑

1. 创建新用户

由于 ElasticSearch 不能用 root 账号启动,所以需要创建一个新用户,假设这里创建一个新用户 ling 。

以下命令需在root用户下操作:

[root@localhost ~]# adduser ling
[root@localhost ~]# passwd ling
Changing password for user ling.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# su ling
[ling@localhost root]$ cd ~

接下来给新用户ling配置sudo权限:

[ling@localhost root]$ su root
Password:
[root@localhost ~]# visudo

在sudo配置文件中找到配置root权限的位置,在后面添加一行新用户ling的权限:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
ling    ALL=(ALL)       ALL

2. 更换java版本为1.8

[ling@localhost ~]$ sudo alternatives --config java
[sudo] password for ling:

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64/jre/bin/java
*+ 2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64/jre/bin/java
   3           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: 1
[ling@localhost ~]$

选择 1.8 版本即可,没有报错即切换成功。

如果你的机器上没有java8的选项,请手动安装一个。

3. 准备安装文件

下载地址:ElasticSearch 5.4Kibana 5.4

[ling@localhost ~]$ ls
elasticsearch-5.4.0.tar.gz  kibana-5.4.0-linux-x86_64.tar.gz  perl5
[ling@localhost ~]$ tar -xzvf elasticsearch-5.4.0.tar.gz
......
[ling@localhost ~]$ tar -xzvf kibana-5.4.0-linux-x86_64.tar.gz
......
[ling@localhost ~]$ ls
elasticsearch-5.4.0  elasticsearch-5.4.0.tar.gz  kibana-5.4.0-linux-x86_64  kibana-5.4.0-linux-x86_64.tar.gz  perl5

4. 启动 ElasticSearch

首先编辑 ElasticSearch 配置文件

[ling@localhost ~]$ vi elasticsearch-5.4.0/config/elasticsearch.yml

假设当前服务器ip地址为 172.16.4.44,修改 55 行 network.host 值为这个ip地址。

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 172.16.4.44

保存退出。

启动 ElasticSearch:

[ling@localhost ~]$ elasticsearch-5.4.0/bin/elasticsearch

这里可能会报很多错误:

错误1

ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is 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

重新登录 ling 用户,输入命令查看是否修改成功:

[ling@localhost ~]$ su ling
Password:
[ling@localhost ~]$ ulimit -Hn
131072

错误2

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

解决方法:

切换到root用户修改配置sysctl.conf

[ling@localhost ~]$ sudo vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并执行命令:

[ling@localhost ~]$ sudo sysctl -p
vm.max_map_count = 655360

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

启动之后,在内网的另一台机器上打开浏览器访问 172.16.4.44:9200 ,如果连接失败,则回到服务器,输入如下命令:

[ling@localhost ~]$ sudo iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited

删除iptables中阻挡访问的规则。

重新访问,如果输出如下内容:

{
  "name" : "Z0hRS2f",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "QzsZplKmSLOsTaDezjc1hA",
  "version" : {
    "number" : "5.4.0",
    "build_hash" : "780f8c4",
    "build_date" : "2017-04-28T17:43:27.229Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.0"
  },
  "tagline" : "You Know, for Search"
}

说明 ElasticSearch 启动成功。

5. 启动 Kibana

修改配置文件

[ling@localhost ~]$ vi kibana-5.4.0-linux-x86_64/config/kibana.yml

修改配置文件第 7 行 和第 21 行的 server.host 和 elasticsearch.url 的值为:

server.host: "172.16.4.44"
elasticsearch.url: "http://172.16.4.44:9200"

启动 kibana

[ling@localhost ~]$ kibana-5.4.0-linux-x86_64/bin/kibana

如果没有报错,在内网中访问 172.16.4.44:5601,即可进入kibana。

6. 后台运行 ElasticSearch 和 Kibana

使用 nohup 后台运行:

[ling@localhost ~]$ nohup /home/ling/elasticsearch-5.4.0/bin/elasticsearch > /home/ling/elasticsearch-5.4.0/bin/elasticsearch.log 2>&1 &
[1] 12821
[ling@localhost ~]$ nohup /home/ling/kibana-5.4.0-linux-x86_64/bin/kibana > /home/ling/kibana-5.4.0-linux-x86_64/bin/kibana.log 2>&1 &
[2] 12937

查看 ElasticSearch 和 Kibana 的进程PID:

[ling@localhost ~]$ ps -aux | grep elasticsearch
ling     12821 22.5 14.3 7929072 2336236 pts/0 Sl   18:28   0:21 /bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/home/ling/elasticsearch-5.4.0 -cp /home/ling/elasticsearch-5.4.0/lib/* org.elasticsearch.bootstrap.Elasticsearch
ling     12983  0.0  0.0 112640   960 pts/0    S+   18:29   0:00 grep --color=auto elasticsearch
[ling@localhost ~]$ ps -aux | grep kibana
ling     12937  5.9  0.6 1136076 109520 pts/0  Sl   18:28   0:04 /home/ling/kibana-5.4.0-linux-x86_64/bin/../node/bin/node --no-warnings /home/ling/kibana-5.4.0-linux-x86_64/bin/../src/cli
ling     13013  0.0  0.0 112640   960 pts/0    S+   18:30   0:00 grep --color=auto kibana

CentOS 搭建 Bigdesk 节点监控插件

Bigdesk是一款针对 ElasticSearch 性能的开源实时监控方案。github地址是:https://github.com/hlstudio/bigdesk

它的部署十分简单,前提是你已经搭建好一个 ElasticSearch 集群,并可以在内网中访问。

部署步骤:

1. 修改 ElasticSearch 配置文件

要让 Bigdesk 支持 ES5.x 版本,需要修改 ElasticSearch 的配置文件,添加以下配置:

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

2. 克隆 Bigdesk 到本地

[ling@localhost ~]$ git clone https://github.com/hlstudio/bigdesk.git

3. 移动到 _site 目录

[ling@localhost ~]$ cd bigdesk/
[ling@localhost bigdesk]$ cd _site/

4. 启动 SimpleHTTPServer 服务器

使用 python 的 SimpleHTTPServer ,可以以当前文件夹为根目录部署一个简单的服务器,以便在内网中访问 Bigdesk:

[ling@localhost _site]$ python -m SimpleHTTPServer 9000

这时,在内网中访问 172.16.5.55:9000 (这里假设我们在该ip地址上部署bigdesk),并在显示的页面中输入一个集群中节点的访问地址,便可以用 bigdesk 监控 ElasticSearch 性能了:

5. 后台运行 Bigdesk

执行以下命令可以在后台运行 Bigdesk(假设你的安装位置和我一样):

[ling@localhost _site]$ nohup python -m SimpleHTTPServer > /home/ling/bigdesk/_site/bigdesk.log 9000 2>&1 &

查看 Bigdesk 进程:

[ling@localhost _site]$ ps -aux | grep SimpleHTTPServer

参考资料

1.Elasticsearch5.0 安装问题集锦 http://www.cnblogs.com/sloveling/p/elasticsearch.html

2.记录Linux下安装elasticSearch时遇到的一些错误 http://blog.csdn.net/gebitan505/article/details/54709515

3.linux 使用alternatives 切换Java版本 http://blog.csdn.net/sdcxyz/article/details/45078717

原创声明

转载请注明:呓语 » ElasticSearch + Kibana 安装配置(CentOS)