主机角色(内存不要小于1G):java
软件及版本(百度网盘连接地址和密码:连接: https://pan.baidu.com/s/17bYc8MRw54GWCQCXR6pKjg 提取码: f6w8) #若是失效能够发送邮件到13693200275@163.comnode
部署前操做:linux
关闭防火墙,关闭selinux(生产环境按需关闭或打开)
同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器
[root@es-node1 ~]# rpm -ivh jdk-8u25-x64.rpm Preparing... ########################################### [100%] 1:jdk1.8.0_181 ########################################### [100%]
设置Java环境web
[root@es-node-1 ~]# cat /etc/profile.d/java.sh #编辑java环境变量配置文件 export JAVA_HOME=/usr/java/latest export CLASSPATH=$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH [root@es-node-1 ~]# . /etc/profile.d/java.sh [root@es-node-1 ~]# java -version #检查版本 java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
#关闭新邮件提示(从新登陆生效),很烦.......... [root@es-node1 ~]# echo "unset MAILCHECK">> /etc/profile #解压elastic到/usr/local下 [root@es-node1 ~]# tar xf elasticsearch-6.3.2.tar.gz -C /usr/local/ [root@es-node1 ~]# cd /usr/local/ [root@es-node1 local]# ln -sv elasticsearch-6.3.2/ elasticsearch "elasticsearch" -> "elasticsearch-6.3.2/" [root@es-node1 local]# cd elasticsearch/config/ #配置JVM参数,最大不要超过32G,而且留一半内存给操做系统 [root@es-node1 config]# vim jvm.options -Xms400m -Xmx400m #配置elastic信息,其余节点须要修改node.name和network.host的值 [root@es-node1 config]# cp elasticsearch.yml elasticsearch.yml-bak [root@es-node1 config]# vim elasticsearch.yml [root@es-node1 config]# grep "^[a-z]" elasticsearch.yml cluster.name: my-app node.name: node-1.107 path.data: /Data/es/data path.logs: /Data/es/logs bootstrap.memory_lock: true network.host: 192.168.1.107 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.1.107", "192.168.1.108","192.168.1.109"] discovery.zen.minimum_master_nodes: 2
设置打开文件描述符、进程数、内存限制json
[root@es-node1 config]# vim /etc/security/limits.conf * soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
* soft memlock unlimited * hard memlock unlimited
配置内核参数bootstrap
[root@es-node1 config]# vim /usr/lib/sysctl.d/50-default.conf vm.max_map_count=362144 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 [root@es-node1 config]# sysctl -p #此命令可能不生效,能够重启使配置生效
建立elastic用户vim
[root@es-node1 ~]# useradd elastic [root@es-node1 ~]# echo "123456" |passwd --stdin elastic
建立相关目录及受权服务器
[root@es-node1 ~]# mkdir -pv /Data/es/ mkdir: 已建立目录 "/Data" mkdir: 已建立目录 "/Data/es/"
[root@es-node1 ~]# chown -R elastic:elastic /Data/es/ [root@es-node1 ~]# chown -R elastic:elastic /usr/local/elasticsearch-6.3.2/ #退出,从新登陆(能够的话最好重启服务器,发现有些参数不重启不生效) [root@es-node1 config]# exit
切换用户并启动服务app
[root@es-node1 ~]# su - elastic [elastic@es-node1 ~]$ cd /usr/local/elasticsearch [elastic@es-node1 elasticsearch]$ nohup ./bin/elasticsearch > /tmp/elastic.log & #或者添加 -d/--daemonize 参数后台运行,日志文件在path.logs指定的目录下 [1] 2426 [elastic@es-node1 elasticsearch]$ nohup: 忽略输入重定向错误到标准输出端 [elastic@es-node1 elasticsearch]$ tailf /tmp/elastic.log
经过屏幕输出能够看到服务启动并经过自动发现方式添加集群内其余节点,而且node-1.107被选举为masterdom
检查服务是否正常
[elastic@es-node1 elasticsearch]$ netstat -tnlp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.1.107:9200 0.0.0.0:* LISTEN 2072/java #9200是http协议的RESTful接口 tcp 0 0 192.168.1.107:9300 0.0.0.0:* LISTEN 2072/java #9300是tcp通信端口,集群间和TCPClient都走的它 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp6 0 0 :::22 :::* LISTEN -
[elastic@es-node1 elasticsearch]$ curl http://192.168.1.107:9200
{ "name" : "node-1.107", "cluster_name" : "my-app", "cluster_uuid" : "Zk1xQhbyRlS6r99uAfk51Q", "version" : { "number" : "6.3.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "053779d", "build_date" : "2018-07-20T05:20:23.451332Z", "build_snapshot" : false, "lucene_version" : "7.3.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
[root@kb-node1 ~]# tar xf kibana-6.3.2-linux-x86_64.tar.gz -C /usr/local/
[root@kb-node1 ~]# cd /usr/local/
[root@kb-node1 local]# ln -sv kibana-6.3.2-linux-x86_64/ kibana
"kibana" -> "kibana-6.3.2-linux-x86_64/"
[root@kb-node1 local]# cd kibana
[root@kb-node1 kibana]# vim config/kibana.yml
[root@kb-node1 kibana]# grep "^[a-z]" config/kibana.yml
server.port: 5601 #监听的端口
server.host: "192.168.1.110" #监听的地址
elasticsearch.url: "http://192.168.1.107:9200" #elasticsearch访问的URL地址
[root@kb-node1 kibana]# ./bin/kibana & #启动服务
咱们能够看到启动后服务监听的地址,访问这个URL
kibana主页面,大体意思就是告诉咱们kibana能够作哪些事
点击Monitoring标签能够开启监控设置,而且咱们的license是basic版本的(即基础版)
因为在elasticsearch在6.3版本以后x-pack是默认安装好的,因此再也不须要用户本身去安装
[elastic@es-node1 elasticsearch]$ cd modules/x-pack/x-pack-core/
[elastic@es-node1 x-pack-core]$ ll x-pack-core-6.3.2.jar #用咱们破解后的包进行替换
-rw-r--r-- 1 elastic elastic 1773114 8月 21 17:48 x-pack-core-6.3.2.jar
[elastic@es-node1 x-pack-core]$cd /usr/local/elasticsearch
[elastic@es-node1 elasticsearch]$ vim config/elasticsearch.yml
[elastic@es-node1 elasticsearch]$ tail -1 config/elasticsearch.yml
xpack.security.enabled: false #关闭x-pack
重启elasticsearch服务,并把license.json上传到服务器
[elastic@es-node1 elasticsearch]$ curl -XPUT -u elastic 'http://192.168.1.107:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json Enter host password for user 'elastic': #密码为:change {"acknowledged":true,"license_status":"valid"}
在kibana上查看license
Platinum表示白金版 过时时间为2099 年12月31日,可是咱们暂时还不能使用x-pack,由于白金版的x-pack须要SSL进行数据传输,因此咱们须要先配置SSL
[elastic@es-node1 elasticsearch]$ cd /usr/local/elasticsearch/bin/ [elastic@es-node1 bin]$ ./elasticsearch-certgen
[elastic@es-node1 bin]$ mkdir /tmp/cert [elastic@es-node1 bin]$ mv cert.zip /tmp/cert/ [elastic@es-node1 bin]$ cd /tmp/cert/ [elastic@es-node1 cert]$ unzip cert.zip Archive: cert.zip creating: ca/ inflating: ca/ca.crt inflating: ca/ca.key creating: elasticsearch/ inflating: elasticsearch/elasticsearch.crt inflating: elasticsearch/elasticsearch.key [elastic@es-node1 cert]$ ll 总用量 8 drwxrwxr-x 2 elastic elastic 34 9月 20 13:47 ca -rw------- 1 elastic elastic 5157 9月 20 13:47 cert.zip drwxrwxr-x 2 elastic elastic 56 9月 20 13:47 elasticsearch [elastic@es-node1 cert]$ mv ca/* /usr/local/elasticsearch/config/ [elastic@es-node1 cert]$ mv elasticsearch/* /usr/local/elasticsearch/config/ [elastic@es-node1 cert]$ cd /usr/local/elasticsearch/config/ [elastic@es-node1 config]$ ll -rct #最后四个 总用量 48 -rw-rw---- 1 elastic elastic 0 9月 19 16:15 users_roles -rw-rw---- 1 elastic elastic 0 9月 19 16:15 users -rw-rw---- 1 elastic elastic 197 9月 19 16:15 roles.yml -rw-rw---- 1 elastic elastic 473 9月 19 16:15 role_mapping.yml -rw-rw---- 1 elastic elastic 6380 9月 19 16:15 log4j2.properties -rw-rw---- 1 elastic elastic 2942 9月 19 16:15 jvm.options -rw-r----- 1 elastic elastic 2853 9月 19 16:15 elasticsearch.yml-bak -rw-rw---- 1 elastic elastic 207 9月 19 16:20 elasticsearch.keystore -rw-rw---- 1 elastic elastic 2905 9月 20 13:27 elasticsearch.yml -rw-rw-r-- 1 elastic elastic 1671 9月 20 13:57 ca.key -rw-rw-r-- 1 elastic elastic 1200 9月 20 13:57 ca.crt -rw-rw-r-- 1 elastic elastic 1675 9月 20 13:57 elasticsearch.key -rw-rw-r-- 1 elastic elastic 1237 9月 20 13:57 elasticsearch.crt
将证书拷贝到其余节点,放入 usr/local/elasticsearch/config/ 目录下
[elastic@es-node1 config]$ scp *.crt *.key 192.168.1.108:/usr/local/elasticsearch/config/ [elastic@es-node1 config]$ scp *.crt *.key 192.168.1.109:/usr/local/elasticsearch/config/
[elastic@es-node1 config]$ vim elasticsearch.yml
[elastic@es-node1 config]$ tail elasticsearch.yml
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
xpack.security.enabled: true #以前配置为false注意删除或者修改
xpack.security.transport.ssl.enabled: true
xpack.ssl.key: elasticsearch.key
xpack.ssl.certificate: elasticsearch.crt
xpack.ssl.certificate_authorities: ca.crt
重启elasticsearch服务
打开kibana web界面,发现没法登录,而且没法使用用户名密码登陆,下一步咱们须要配置kibana使用用户名密码登陆
[elastic@es-node1 bin]$ ./elasticsearch-setup-passwords -h #查看命令帮助 Sets the passwords for reserved users Commands -------- auto - Uses randomly generated passwords #主要命令选项,表示系统将使用随机字符串设置密码 interactive - Uses passwords entered by a user #主要命令选项,表示使用用户输入的字符串做为密码 Non-option arguments: command Option Description ------ -----------
-h, --help show help -s, --silent show minimal output -v, --verbose show verbose output [elastic@es-node1 bin]$ ./elasticsearch-setup-passwords auto #为了演示效果,这里咱们使用系统自动建立 Initiating the setup of passwords for reserved users elastic,kibana,logstash_system,beats_system. The passwords will be randomly generated and printed to the console. Please confirm that you would like to continue [y/N]y #选择y Changed password for user kibana #kibana角色和密码 PASSWORD kibana = 4VXPRYIVibyAbjugK6Ok Changed password for user logstash_system #logstash角色和密码 PASSWORD logstash_system = 2m4uVdSzDzpt9OEmNin5 Changed password for user beats_system #beast角色和密码 PASSWORD beats_system = O8VOzAaD3fO6bstCGDyQ Changed password for user elastic #elasticsearch角色和密码 PASSWORD elastic = 1TWVMeN8tiBy917thUxq
#能够先将以上用户和密码保存下来,具体的用户介绍见最后
配置kibana添加elasticsearch用户认证
[root@kb-node1 ~]# vim /usr/local/kibana/config/kibana.yml [root@kb-node1 ~]# grep "^elastic" /usr/local/kibana/config/kibana.yml elasticsearch.url: "http://192.168.1.107:9200" elasticsearch.username: "elastic" elasticsearch.password: "1TWVMeN8tiBy917thUxq" #就是上一步建立的elastic的帐号和密码
重启kibana,重启后打开kibana web页面
可使用用户名和密码登陆了(使用以前建立的用户名和密码登陆便可),这里咱们选择elastic用户登陆
左下角能够看到咱们的用户名,到此,咱们全部的配置都已经完成了