在虛擬機(jī)上安裝elasticsearch出現(xiàn)了比較多的問題,由于官網(wǎng)文檔沒有詳細(xì)介紹,導(dǎo)致問題比較多需要自己一個一個解決,這里介紹下安裝的過程和部分問題解決辦法,以及elasticsearch的啟動停止和遠(yuǎn)程訪問。
測試環(huán)境:centos7.6,jdk1.8,elasticsearch6.6.0
官方文檔地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/index.html
elasticsearch需要java8環(huán)境的支持,注意先設(shè)置好java。
[root@localhost ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
安裝elasticsearch
安裝目錄
cd /usr/local/src
這里安裝的是6.6.0版本的,其他版本安裝包可自行官網(wǎng)查看
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz
然后提取如下:
tar -xvf elasticsearch-6.6.0.tar.gz
然后它會在當(dāng)前目錄中創(chuàng)建一堆文件和文件夾。然后我們進(jìn)入bin目錄,如下所示:
cd elasticsearch-6.6.0 /bin
啟動命令
./elasticsearch
啟動之前需要先創(chuàng)建用戶和設(shè)置權(quán)限,由于安全問題elasticsearch不讓用root用戶直接運(yùn)行,所以要創(chuàng)建新用戶
創(chuàng)建新用戶
添加用戶組、用戶、設(shè)置密碼(注意密碼不能太簡單也不行、并且八位以上)
groupadd elastic
useradd elastic -g elastic
passwd elastic
修改用戶操作權(quán)限
chown -R elastic:elastic /usr/local/src/elasticsearch-6.6.0/
切換用戶
su - elastic
由于我是虛擬機(jī)運(yùn)行,導(dǎo)致又報了幾個內(nèi)存不足相關(guān)的錯誤
1、[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決辦法:
sudo sysctl -w vm.max_map_count=262144
2、[1]: max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]
解決辦法:
sudo vi /etc/security/limits.conf
添加如下配置,elastic為用戶名
elastic hard nofile 65536
elastic soft nofile 65536
3、OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006ca660000, 4120510464, 0) failed; error='Cannot allocate memory' (errno=12)
解決辦法:
(1) 修改虛擬機(jī)設(shè)置 處理器-》每個處理器的核心數(shù)量為2(反正比1大就行,自行把握,修改配置需要先關(guān)機(jī),然后開機(jī)生效)
(2) 修改elasticsearch配置
vi /usr/local/src/elasticsearch-6.6.0/config/jvm.options
-Xms1g
-Xmx1g
修改為剛才配置的數(shù)量
-Xms2g
-Xmx2g
啟動elasticsearch和后臺運(yùn)行
elasticsearch啟動比較緩慢,可以給多分配點(diǎn)內(nèi)存加快啟動速度。
1、直接前臺啟動,停止ctrl+c就可以了
[elastic@localhost elasticsearch-6.6.0]$ ./bin/elasticsearch
2、后臺啟動,停止可以使用 kill -9 PID
[elastic@localhost elasticsearch-6.6.0]$ ./bin/elasticsearch -d
啟動成功一半會開啟兩個監(jiān)聽端口,我們可以通過9200端口進(jìn)行訪問
- 9200 http協(xié)議的RESTful接口和外部通訊
- 9300 tcp通訊端口,集群間和TCPClient都走的它,
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7105/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7110/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6572/sshd
tcp6 0 0 :::6379 :::* LISTEN 7736/docker-proxy
tcp6 0 0 :::9200 :::* LISTEN 10071/java
tcp6 0 0 :::9300 :::* LISTEN 10071/java
tcp6 0 0 :::22 :::* LISTEN 6572/sshd
訪問結(jié)果一般如下:
[root@localhost ~]# curl 127.0.0.1:9200
{
"name" : "nJliXyp",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "E2Qf0imzSji5ZKzEZYOBbw",
"version" : {
"number" : "6.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "1fd8f69",
"build_date" : "2019-02-13T17:10:04.160291Z",
"build_snapshot" : false,
"lucene_version" : "7.6.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
但是端口顯示的只可以本地訪問,下面介紹如何開啟遠(yuǎn)程訪問。
配置遠(yuǎn)程訪問
由于安全問題elasticsearch之允許本機(jī)訪問,我們需要修改elasticsearch的配置文件
vim /usr/local/src/elasticsearch-6.6.0/config/elasticsearch.yml
去掉network.host的注釋,并修改為
network.host: 0.0.0.0
開發(fā)環(huán)境可以這樣設(shè)置,用于生產(chǎn)環(huán)境可以修改為固定的ip或者本機(jī)訪問。
然后在外部就可以通過 ip:9200 訪問了,顯示內(nèi)容如上一致。
mysql和elasticsearch數(shù)據(jù)同步請參見:《elasticsearch從mysql同步數(shù)據(jù)之logstash的安裝和使用》