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.4 、Kibana 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.4 、Kibana 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