標簽(空格分隔): elasticsearch head kibana jdk Linux升級
安裝說明
本次為裸機安裝單機版的elasticsearch5.6才沧,由此會涉及到很多不可避免的迈喉,或者說多余的部分,請自行忽略温圆。操作系統(tǒng)Linux內(nèi)核版本挨摸,jdk版本,elasticsearch5.6需要 Java8岁歉。
這里說明一下得运,因為后面會安裝head插件,對Linux的內(nèi)核要求在3.5以上锅移,默認安裝的Linux版本的內(nèi)核為2.6熔掺。參見截圖。jdk1.8是安裝在elasticsearch用戶下的非剃,在root用戶下
java -version
就會顯示-bash: java: command not found
置逻。
見官方文檔:Elasticsearch requires at least Java 8. Specifically as of this writing, it is recommended that you use the Oracle JDK version 1.8.0_131.
Linux插件安裝
root用戶下,".xz"文件解壓
說明:安裝解壓xz备绽,是在安裝elasticsearch的head插件的時候券坞,需要用到node.js,同時需要Linux需要可以連接internet網(wǎng)絡(luò)
1.下載地址 https://tukaani.org/xz/
要選擇.bz2的肺素,別選.xz的恨锚,否則還是解壓不了
2.解壓包
tar -zxvf xz-5.2.3.tar.gz
cd xz-5.2.3
./configure --prefix=/usr/local/xz
這里會遇到問題,在configure時就是各種找不到倍靡,沒有g(shù)cc等猴伶,于是輸入以下命令
yum install update -y
yum install upgrade -y
這個過程有點久,等完成后,再安裝gcc
yum install gcc
這樣安裝好后
cd xz-5.0.3/
./configure
make
make install
之后就可以愉快地解壓tar.xz文件啦他挎!基本是參見文檔內(nèi)容筝尾,請見諒。
3.解壓xz包
xz -d ***.tar.xz
4.解壓tar包
tar -xvf ***.tar
安裝wget
yum -y install wget
安裝vim
yum -y install vim
Linux的常用支持庫
在CentOS安裝軟件的時候雇盖,可能缺少一部分支持庫忿等,而報錯。這里首先安裝系統(tǒng)常用的支持庫崔挖。那么在安裝的時候就會減少很多的錯誤的出現(xiàn)贸街。
yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel
jdk1.8安裝
說明:這里切換到elasticsearch用戶進行安裝,不是一種全局jdk配置方式
1.新建用戶
useradd elasticsearch
狸相,這時默認用戶主目錄在 /home/elasticsearch
2.su - elasticsearch
薛匪,切換到elasticsearch用戶
3.ls -al
,可以查看到隱藏文件脓鹃,見圖片紅色框部分
4.修改.bashrc
文件逸尖,切記 :wq 后,執(zhí)行source .bashrc
瘸右,進行保存生效
export JAVA_HOME="/home/elasticsearch/jdk1.8.0_144"
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export JAVA_HOME JRE_HOME CLASSPATH PATH
5.這時再查看java版本娇跟,發(fā)現(xiàn)已經(jīng)為1.8了
elasticsearch5.6安裝以及配置修改
1.下載地址
https://www.elastic.co/downloads/elasticsearch#ga-release
2.解壓壓縮文件
tar -zxvf elasticsearch-5.6.3.tar.gz
3.修改elasticsearch.yml
配置文件
修改參數(shù)如下,注意該配置##順序分先后##
- 集群名稱:cluster.name: jt_sap5
- 節(jié)點名稱:node.name: single-node(集群中的各個節(jié)點名稱都不能相同)
- 數(shù)據(jù)目錄:path.data: /path/to/data(若沒有特殊數(shù)據(jù)路徑太颤,注釋掉該參數(shù)苞俘,默認使用ES_HOME/data)
- 日志目錄:#path.logs: /path/to/logs(若沒有特殊數(shù)據(jù)路徑,注釋掉該參數(shù)龄章,默認使用ES_HOME/logs)
- 鎖定物理內(nèi)存設(shè)置:bootstrap.memory_lock: false(注釋掉該參數(shù)吃谣,默認使用false)
- 系統(tǒng)過濾器調(diào)用設(shè)置:bootstrap.system_call_filter: false
- 節(jié)點主機IP:network.host: 10.0.1.215
- 節(jié)點端口:http.port: 9200
- 數(shù)據(jù)傳輸端口:transport.tcp.port: 9300
- 集群節(jié)點獲取類型:discovery.type: single-node(注意該配置只在單節(jié)點集群中使用,多節(jié)點集群不能使用做裙,使用默認類型)
- 集群節(jié)點列表:discovery.zen.ping.unicast.hosts: ["host1:port1", "host2: port2"](該配置在多節(jié)點集群中使用岗憋,單節(jié)點不適用該配置。其中锚贱,host表示集群中其他節(jié)點的ip地址仔戈,port表示集群中其他節(jié)點的數(shù)據(jù)傳輸端口)
- 集群有效節(jié)點最小值:discovery.zen.minimum_master_nodes: 3(該配置在多借點集群中使用,單節(jié)點不適用拧廊。其中杂穷,該配置的值不能大于總節(jié)點數(shù)量,建議使用 [節(jié)點數(shù)量/2 + 1] 來計算該配置值)
- 是否允許跨源 REST 請求:http.cors.enabled: true
- 允許跨源REST請求的地址:http.cors.allow-origin: ""(在開啟允許跨源REST請求之后卦绣,才使用該配置,不然不能使用飞蚓,其中“”標識允許所有的跨源訪問)
- 最大的http請求長度:http.max_initial_line_length: 10m
備注:
1.bootstrap.system_call_filter參數(shù)配置滤港,默認為true,這里更改為false,放在bootstrap.memory_lock后面溅漾,同時設(shè)定bootstrap.memory_lock為false山叮,主要可能的原因是由于CentOS6.X內(nèi)核版本為2.6,不支持bootstrap.memory_lock參數(shù)的開啟添履,就會引出下面的內(nèi)核升級問題屁倔。
2.官方文檔中提到bootstrap.memory_lock: true的諸多配置,在后文添加暮胧。
3.注意 “:”锐借,后面需要加空格
4.elasticsearch啟動錯誤處理方法,以及必須的配置
[elasticsearch@localhost bin]$ ./elasticsearch
... ...
ERROR:
[5] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
[3]: max virtual memory areas vm.max_map_count [256000] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
... ...
(1)針對錯誤[1],[2]往衷,可以采取如下配置:
修改/etc/security/limits.conf配置文件:
#[root@www config]$ vim /etc/security/limits.conf
#增加5行钞翔,修改最大句柄數(shù)和單進程的最大線程數(shù):
* - nofile 65536
* soft memlock unlimited
* hard memlock unlimited
* soft nproc 2048
* hard nproc 2048
(此處代表所有用戶都適用,可以根據(jù)自身需要設(shè)定特定用戶句柄)
如果系統(tǒng)中存在/etc/security/limits.d/90-nproc.conf席舍,修改 soft nproc 1024為* soft nproc 10240布轿,將所有用戶句柄最大值調(diào)整為10240。
#[root@www config]$ vim /etc/security/limits.d/90-nproc.conf
修改如下配置:
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 10240
root soft nproc unlimited
修改完成后来颤,重新登錄elasticsearch賬戶汰扭,查看設(shè)置是否生效。
[elasticsearch@www config]$ ulimit -n
65536
[elasticsearch@www config]$ ulimit -u
2048
官方文檔:
Elasticsearch使用了大量的文件描述符或者文件句柄福铅。文件描述符將要被用完時會導致災難性的后果萝毛,并且非常可能引起數(shù)據(jù)丟失本讥。確保增加運行Elasticsearch的用戶打開文件描述符的數(shù)量至少為65,536或者更高珊泳。
Elasticsearch使用多個線程池來進行不同類型的操作。當需要時能夠創(chuàng)建新線程是很重要的拷沸。確保Elasticsearch用戶能創(chuàng)建的線程數(shù)最少為2048個色查。
你可以檢查每個節(jié)點的max_file_descriptors
配置情況:
GET _nodes/stats/process?filter_path=**.max_file_descriptors
(2)針對錯誤[3],可以采取如下方式:
修改/etc/sysctl.conf文件配置項:
[root@www ~]# vim /etc/sysctl.conf
# 一個進程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的數(shù)量:
vm.max_map_count=262144
# 調(diào)用虛擬內(nèi)存的閾值數(shù):
vm.swappiness=1
[root@www ~]# sysctl -p
(3)針對錯誤[4][5]撞芍,可以采取如下方式:
出現(xiàn)錯誤的原因:是因為centos6.x操作系統(tǒng)不支持SecComp秧了,而elasticsearch 5.x,默認bootstrap.system_call_filter為true進行檢測序无,所以導致檢測失敗验毡,失敗后直接導致ES不能啟動。但是為了禁止內(nèi)存交換帝嗡,這兩個參數(shù)最好設(shè)置為true晶通。
在elasticsearch.yml中添加配置項:bootstrap.system_call_filter為false:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
官方文檔:大多數(shù)操作系統(tǒng)會用盡可能多的內(nèi)存用于文件系統(tǒng)緩存和及早換出無用的應(yīng)用內(nèi)存。這可能導致一部分JVM內(nèi)存被交換到硬盤上哟玷。這種內(nèi)存交換非常不利于性能和節(jié)點的穩(wěn)定性狮辽。應(yīng)該竭盡所能來避免這種情況。它能引起垃圾回收持續(xù)長達數(shù)分鐘而不是幾毫秒并且能導致節(jié)點響應(yīng)緩慢甚至與集群失去聯(lián)系。由此喉脖,最好的方式就是禁止內(nèi)存交換椰苟。
禁止內(nèi)存交換的三種方式
- 啟用 bootstrap.memory_lock
- 暫時禁用,Linux系統(tǒng)執(zhí)行命令
sudo swapoff -a
树叽,如果要永久禁用舆蝴,則需要編輯/etc/fstab文件,然后注釋掉所有包含swap的行题诵。vim /etc/sysctl.conf
洁仗,正如上面提到的vm.swappiness=1
,這樣子只會在正常情況下減少內(nèi)存交換仇轻,但在緊急情況中依然存在京痢。
警告:mlockall如果嘗試分配超過了可用的內(nèi)存,可能會引起JVM 或者 shell session退出篷店。在啟動Elasticsearch后祭椰,你可以檢查下設(shè)置是否生效了,可以通過檢查下面請求響應(yīng)中的mlockall值:
`GET _nodes?filter_path=**.mlockall`
or
`GET _nodes/process?pretty`
(4)優(yōu)化JVM的Head內(nèi)存大小
說明:該配置適用于ES服務(wù)器負載較高時疲陕,通過提高JVM的Heap內(nèi)存方淤,可以提高ES的處理速度。
# vim $ES_HOME/config/jvm.options
#這個值不能超過可用物理內(nèi)存的50%蹄殃,甚至更小携茂。
修改以下兩處配置:
-Xms4g
-Xmx4g
#如果內(nèi)存配置超過6G請修改如下配置。把回收期修改為G1 GC
## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
修改后
## GC configuration
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
5.啟動和關(guān)閉elasticsearch
以elasticsearch用戶登錄
啟動:
# cd $ES_HOME
# ./bin/elasticsearch –d –p pid
關(guān)閉:
# cd $ES_HOME
# kill -9 `pid`
瀏覽器打開:http://127.0.0.1:9200
Head插件安裝
1.安裝git
需要從github上面下載代碼诅岩,因此先要安裝git
yum -y install git
安裝完成后讳苦,就可以直接下載代碼了:
git clone git://github.com/mobz/elasticsearch-head.git
或者在windows下載
下載地址:https://github.com/mobz/elasticsearch-head,下載后上傳到Linux系統(tǒng)中吩谦。
2.安裝node
由于head插件本質(zhì)上還是一個nodejs的工程鸳谜,因此需要安裝node,使用npm來安裝依賴的包式廷。(npm可以理解為maven)
去官網(wǎng)下載nodejs咐扭,https://nodejs.org/en/download/
下載下來的jar包是xz格式的,一般的linux可能不識別滑废,但我們前面以及安裝了xz解壓工具了哦蝗肪!
xz -d node*.tar.xz
tar -xvf node*.tar
解壓完node的安裝文件后,需要配置下環(huán)境變量,root用戶編輯/etc/profile蠕趁,注意要修改node路徑薛闪,添加
vim /etc/profile
export NODE_HOME=/home/elasticsearch/node-v8.9.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
#在命令行輸入:source /etc/profile,讓配置文件生效俺陋。
在命令行輸入:node -v逛绵,查看node.js的版本怀各。
3.安裝grunt
grunt是一個很方便的構(gòu)建工具,可以進行打包壓縮术浪、測試、執(zhí)行等等的工作寿酌,5.0里的head插件就是通過grunt啟動的胰苏。因此需要安裝一下grunt:
npm install grunt-cli
安裝完成后檢查一下:
[root@www elasticsearch-head-master]# grunt -version
grunt-cli v1.2.0
grunt v1.0.1
4.修改head源碼
查看當前head插件目錄下有無node_modules/grunt目錄,沒有的話醇疼,執(zhí)行命令創(chuàng)建:npm install grunt --save
(1)修改服務(wù)器監(jiān)聽地址:增加hostname屬性硕并,設(shè)置為*
目錄:head/Gruntfile.js
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
(2)檢查head根目錄下是否存在base文件夾
要是沒有的話,將 _site下的base文件夾及其內(nèi)容復制到head根目錄下
(3)修改連接地址:
目錄:head/_site/app.js
修改head的連接地址:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
把localhost修改成你es的服務(wù)器地址秧荆,如:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.0.0.78:9200";
5.運行head
首先啟動elasticsearch倔毙,然后在head目錄中,執(zhí)行npm install
下載依賴的包
如果速度較慢或者安裝失敗乙濒,可以使用國內(nèi)鏡像 npm install -g cnpm --registry=https://registry.npm.taobao.org
#后臺啟動grunt server命令
nohup grunt server &exit
#如果想關(guān)閉head插件陕赃,使用[Linux](http://lib.csdn.net/base/linux)查找進程命令:
ps aux|grep head
#結(jié)束進程:
kill -9 'pid'
訪問head插件:
http://10.0.0.78:9100(啟動后會有提示:Started connect web server on http://10.0.0.78:9100)
Kibana安裝
Kibana是一個開源的分析與可視化平臺,設(shè)計出來用于和Elasticsearch一起使用的颁股。你可以用kibana搜索么库、查看、交互存放在Elasticsearch索引里的數(shù)據(jù)甘有,使用各種不同的圖表诉儒、表格、地圖等kibana能夠很輕易地展示高級數(shù)據(jù)分析與可視化亏掀。
1.下載kibana-5.6.3-linux-x86_64.tar.gz
下載地址為:https://www.elastic.co/downloads/kibana
2.修改配置文件
進入kibana解壓目錄忱反,修改配置文件config/kibana.yml。
- kibana服務(wù)器端口號:server.port: 5601
- kibana服務(wù)器ip地址:server.host: "10.10.10.102"
- kibana服務(wù)器連接ES地址:elasticsearch.url: "http://10.10.10.102:9200"
3.啟動 kibana
nohup bin/kibana &>/dev/null&
4.查看是否啟動成功
打開瀏覽器滤愕,訪問:http://IP:5601即可
Linux內(nèi)核2.6升級3.10
背景說明:CentOS 7 的內(nèi)核一般都是3.10的温算,而CentOS 6.X 的內(nèi)核一般都是2.6,在2.6的內(nèi)核下该互,elasticsearch5.x下bootstrap.system_call_filter啟動會出現(xiàn)問題米者,要求為內(nèi)核3.5以上。
升級內(nèi)核的方式宇智,網(wǎng)上有很多方法是下載內(nèi)核然后編譯蔓搞,這樣需要安裝很多必備的環(huán)境和工具,比較麻煩随橘,但是也有助于我們了解內(nèi)核的編譯喂分,這里采取較為簡單的快速的升級方式。
1.查看當前內(nèi)核版本(升級后)
[root@www home]# more /etc/issue
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m
[root@www home]# uname -a
Linux www 3.10.107-1.el6.elrepo.x86_64 #1 SMP Tue Jun 27 10:57:54 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
2.導入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
3.安裝ELRepo到CentOS
http://elrepo.org/tiki/tiki-index.php 選擇要安裝的ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
4.安裝kernel-lt(lt=long-term)
yum --enablerepo=elrepo-kernel install kernel-lt -y
或者 安裝kernel-ml(ml=mainline)
yum --enablerepo=elrepo-kernel install kernel-ml -y
5.編輯grub.conf文件机蔗,修改Grub引導順序
vim /etc/grub.conf
因為一般新安裝的內(nèi)核在第一個位置蒲祈,所以設(shè)置default=0甘萧,表示啟動新內(nèi)核
6.重啟
查看此時內(nèi)核版本
[root@www home]# uname -r
3.10.107-1.el6.elrepo.x86_64
[THE END]
參考文檔:
linux的tar.xz文件解壓以及xz工具安裝
centos安裝wget 及配置
Linux中必備常用支持庫的安裝(CentOS-6.5)
Elasticsearch用戶指南 二 安裝
如何在Linux下源碼安裝node.js
Elasticsearch5 及 head插件 安裝說明
centos7下Elasticsearch5.2.2和head 插件環(huán)境搭建
Elasticsearch 5.0 —— Head插件部署指南(Head目前支持5.0了!請不要看本篇文章了)
CentOS6.X 升級內(nèi)核 至 3.10
Welcome to the ELRepo Project