elasticsearch5.0集群+kibana5.0+head插件插件的安装





es集群的规划:

两台16核64G内存的服务器:





yunva_etl_es1  ip:1.1.1.1 u04es01.chinasoft.com

yunva_etl_es2  ip:2.2.2.2





操作系统:centos7.2 x86_64





1.安装jdk1.8和elasticsearch5.0.1

rpm -ivh jdk-8u111-linux-x64.rpm

rpm -ivh elasticsearch-5.0.1.rpm





对es的配置进行优化

vim /etc/sysctl.conf

# 增加下面的内容

fs.file-max = 1000000

vm.max_map_count=262144





使配置生效

sysctl -p





vi /etc/security/limits.conf

# 修改

* soft nofile 655350

* hard nofile 655350





内存调整配置文件(建议配置为物理内存的一半或者更多):

vim /etc/elasticsearch/jvm.options

-Xms32g

-Xmx32g





2.集群的配置





修改elasticsearch的参数

vim /etc/elasticsearch/elasticsearch.yml





yunva_etl_es1配置

cluster.name: yunva_es_cluster

# 集群的关键配置

discovery.zen.ping.unicast.hosts: ["yunva_etl_es1", "yunva_etl_es2"]

node.name: yunva_etl_es1

node.master: true

# 关闭自动索引

action.auto_create_index: false

node.data: true

path.data: /data/es/data

path.logs: /data/es/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9200

# 增加新的参数,这样head插件可以访问es

http.cors.enabled: true

http.cors.allow-origin: "*"









yunva_etl_es2的配置

# cat /etc/elasticsearch/elasticsearch.yml

cluster.name: yunva_es_cluster

# 集群的关键配置

discovery.zen.ping.unicast.hosts: ["yunva_etl_es1", "yunva_etl_es2"]

node.name: yunva_etl_es2

node.master: true

# 关闭自动索引

action.auto_create_index: false

path.data: /data/es/data

path.logs: /data/es/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9200

# 增加新的参数,这样head插件可以访问es

http.cors.enabled: true

http.cors.allow-origin: "*"





创建日志和数据存放目录

mkdir -p /data/es/data

mkdir /data/es/logs

chown -R elasticsearch.elasticsearch /data/es



服务启动:

systemctl start elasticsearch.service



3.head插件的安装

使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了,因为这个head插件现在成了一个独立的组件

在5.0版本中不支持直接安装head插件,需要启动一个服务





安装依赖包:

yum install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++ bzip2





第一步,安装git需要从github上面下载代码,因此先要安装git

yum -y install git





第二步,安装node(head安装依赖npm 需要node4.2.2以上版本)





由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)

wget https://nodejs.org/dist/v4.2.2/node-v4.2.2-linux-x64.tar.gz

tar -zxvf node-v4.2.2-linux-x64.tar.gz -C /usr/local/

cd /usr/local

ln -sv node-v4.2.2-linux-x64/ node

ln -sv /usr/local/node/bin/* /usr/sbin/





cd /usr/local/node-v4.2.2-linux-x64/

npm install grunt-cli





# ln -sv /usr/local/node-v4.2.2-linux-x64/node_modules/grunt-cli/bin/grunt /usr/sbin/





第三步,安装并修改head源码

git clone git://github.com/mobz/elasticsearch-head.git





由于head的代码还是2.6版本的,直接执行有很多限制,比如无法跨机器访问。因此需要用户修改两个地方:





修改服务器监听地址





目录:cd elasticsearch-head/

vim Gruntfile.js





connect: {

    server: {

        options: {

            port: 9100,

            hostname: '*',

            base: '.',

            keepalive: true

        }

    }

}





增加hostname属性,设置为*





修改连接地址:





目录:elasticsearch-head/_site/app.js





修改head的连接地址:





this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";

把localhost修改成你es的服务器地址,如:

# 经过测试需要配置为服务器的外网IP地址

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://1.1.1.1:9200";





第四步,运行head 首先开启ES





然后在head目录中,执行npm install 下载以来的包:





npm install 

最后,启动nodejs

在elasticsearch-head目录下node_modules/grunt下如果没有grunt二进制程序,需要执行

npm install grunt





# 然后启动nodejs

grunt server





集群健康检测:

http://1.1.1.1:9200/_cluster/health?pretty





{

  "cluster_name" : "yunva_es_cluster",

  "status" : "green",

  "timed_out" : false,

  "number_of_nodes" : 2,

  "number_of_data_nodes" : 2,

  "active_primary_shards" : 0,

  "active_shards" : 0,

  "relocating_shards" : 0,

  "initializing_shards" : 0,

  "unassigned_shards" : 0,

  "delayed_unassigned_shards" : 0,

  "number_of_pending_tasks" : 0,

  "number_of_in_flight_fetch" : 0,

  "task_max_waiting_in_queue_millis" : 0,

  "active_shards_percent_as_number" : 100.0

}





4.安装kibana

rpm -ivh kibana-5.0.1-x86_64.rpm





编辑配置文件

vim /etc/kibana/kibana.yml

修改这两项,其他默认不用动

server.host: "0.0.0.0"

elasticsearch.url: "http://localhost:9200"





启动命令:

systemctl start kibana

systemctl enable kibana





kibana访问地址:

http://1.1.1.1





为了安全将kibana 5601和head插件的9100端口通过nginx的密码验证方式访问:





server {  

  listen       80;  

  server_name 1.1.1.1 u04kaf01.chinasoft.com;  

  location / {  

     auth_basic "secret";  

     auth_basic_user_file /data/nginx/db/passwd.db;  

     proxy_pass http://localhost:5601;

     proxy_set_header Host $host:5601;  

     proxy_set_header X-Real-IP $remote_addr;  

     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  

     proxy_set_header Via "nginx";  

  }  

  

  location /head/{

     auth_basic "secret";

     auth_basic_user_file /data/nginx/db/passwd.db;

     proxy_pass http://u04es01.chinasoft.com:9100/;

     proxy_set_header Host $host:9100;

     proxy_set_header X-Real-IP $remote_addr;

     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     proxy_set_header Via "nginx";

  }

  access_log off;

}





---------------------------------------------------------------------

配置zabbix检测若9200端口或者5601端口挂掉则自动拉起elasticsearch和kibana服务

具体参考:zabbix系列(九)zabbix3.0实现自动触发zabbix-agent端shell脚本任务

http://blog.csdn.net/reblue520/article/details/52315154

/usr/local/zabbix-agent/scripts/start_es.sh



#!/bin/bash

# if elasticsearch exists kill it

source /etc/profile

count_es=`ps -ef|grep elasticsearch|grep -v grep|wc -l`

if [ $count_es -gt 1 ];then

    ps -ef|grep elasticsearch|grep -v grep|/bin/kill `awk '{print $2}'`

fi

# start it





su yunva -c "cd /data/elasticsearch-5.0.1/bin && /bin/bash elasticsearch &"



执行:

sudo /bin/bash /usr/local/zabbix-agent/scripts/start_es.sh

报错:

which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)

Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME



解决办法:

在脚本中添加

source /etc/profile



---------------------------------------------------------------------

以root用户运行elasticsearch



报错:

can not run elasticsearch as root



网上的方法,针对elasticsearch5.1不起作用

解决方法1:

在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下



./elasticsearch -Des.insecure.allow.root=true  

解决办法2:

用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令



ES_JAVA_OPTS="-Des.insecure.allow.root=true"  



解决办法:

su yunva -c "cd /data/elasticsearch-5.0.1/bin && /bin/bash elasticsearch &"



自动拉起kibana服务的脚本:

cat /usr/local/zabbix/scripts/restart_kibana.sh

#!/bin/bash

# if kibana exists kill it





count_kibana=`ps -ef|grep kibana|grep -v grep|wc -ll`

if [ $count_kibana -eq 1 ];then

    ps -ef|grep kibana|grep -v grep|/bin/kill `awk '{print $2}'`

fi

# start it

/etc/init.d/kibana start

elasticsearch5.0集群+kibana5.0+head插件插件的安装的更多相关文章

  1. ElasticSearch 5.0.0 集群安装部署文档

    1.  搭建环境 3台物理机 操作系统 centos7 es1   192.168.31.141   4g内存   2核 es2   192.168.31.142   4g内存   2核 es3    ...

  2. Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

      本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html   本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...

  3. 二进制方式部署Kubernetes 1.6.0集群(开启TLS)

    本节内容: Kubernetes简介 环境信息 创建TLS加密通信的证书和密钥 下载和配置 kubectl(kubecontrol) 命令行工具 创建 kubeconfig 文件 创建高可用 etcd ...

  4. 在CentOS上部署kubernetes1.9.0集群

    原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...

  5. Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享

    文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...

  6. centos7.4安装高可用(haproxy+keepalived实现)kubernetes1.6.0集群(开启TLS认证)

    目录 目录 前言 集群详情 环境说明 安装前准备 提醒 一.创建TLS证书和秘钥 安装CFSSL 创建 CA (Certificate Authority) 创建 CA 配置文件 创建 CA 证书签名 ...

  7. Redis 3.0.0 集群部署

    简述: 1.0.1:redis cluster的现状 目前redis支持的cluster特性 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot reshardi ...

  8. Spring集成jedis支持Redis3.0集群

    接着上一节,我们通过spring FactoryBean实现redis 3.0集群JedisCluster与spring集成.  http://www.linuxidc.com/Linux/2016- ...

  9. 分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3898991.html Hbase 是Apache Hadoop的数据库,能够对大数据提 ...

随机推荐

  1. select 触发事件

    需求:现在需要获取用户选择的选项,同时获取里面自定义的字段. 因为option没法设置事件 <select class="form-control js-example-basic-s ...

  2. 怎样让SoapHttpClientProtocol不使用系统默认代理

    方法很简单,但找起来很难. 使用SoapHttpClientProtocol类的Proxy属性. 不能设空值,必须设一个新值. 赶脚底层在链接的时候会判断这个属性是不是null,如果null就会用默认 ...

  3. React组件生命周期过程说明

    来自kiinlam github94 实例化 首次实例化 getDefaultProps getInitialState componentWillMount render componentDidM ...

  4. 12、Java中的接口

    接口:初期理解,可以认为是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示.class用于定义类interface 用于定义接口. 接口定义时,格式特点:1,接口中常见定 ...

  5. 错误: 未能从 xmlsocket://127.0.0.1:5840 中加载策略文件

    看看你是否使用了MonsterDebugger,如果是这样的话, 因为那个 MonsterDebugger 没有启动 删掉MonsterDebugger的代码吧

  6. View加载过程

    1. 先判断子类是否重写了loadView,如果有直接调用.之后调viewDidLoad完成View的加载.2 .如果是外部通过调用initWithNibName:bundle指定nib文件名的话,V ...

  7. 生成均值文件mean.binaryproto

    [感谢:http://www.cnblogs.com/denny402/p/5102328.html] compute_image_mean.bin生成均值文件mean.binaryproto: ca ...

  8. SQL判断某列中是否包含中文字符、英文字符、纯数字 (转)

    一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' ...

  9. G不可失

    html和css部分和引用的库 <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  10. 升级owncloud到7.0.2

    owncloud很久没有提示升级了,官网已经升级到7.0.2,访问Update Center依旧显示是最新.估计是有什么问题导致不能自动更新.想着干脆手动升级试试.找到了两个手动升级的文档: 大版本升 ...