注: 本文首發於 My 公衆號 CodeSheep ,可 長按 或 掃描 下面的 當心心 來訂閱 ↓ ↓ ↓git
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
mv elasticsearch-5.3.0.tar.gz /opt
cd /opt
tar -xzvf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0/
複製代碼
cd /bin
./elasticsearch
複製代碼
按照道理應該就能夠了,然而接下來各類坑一一出現,分別闡述github
錯誤1:
error='Cannot allocate memory' (errno=12)
npm
solutions: 因爲elasticsearch5.0默認分配jvm空間大小爲2g,須要改小一點編程
vim config/jvm.options
-Xms2g → -Xms512m
-Xmx2g → -Xmx512m
複製代碼
錯誤2: can not run elasticsearch as rootvim
solutions: 在 Linux 環境中,elasticsearch 不容許以 root 權限來運行!因此須要建立一個非root用戶,以非root用戶來起esc#
groupadd elk # 建立用戶組elk
useradd elk -g elk -p 111111 # 建立新用戶elk,-g elk 設置其用戶組爲 elk,-p 111 設置其密碼6個1
chown -R elk:elk /opt # 更改 /opt 文件夾及內部文件的所屬用戶及組爲 elk:elk
su elk # 切換到非root用戶elk下來
複製代碼
錯誤3:(1) max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] (2) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]bash
此錯誤出如今修改config/elasticsearch.yml中的network.host爲network.host: 0.0.0.0以便讓外網任何IP都能來訪問時。服務器
solutions: 切換到root用戶,而後框架
vim /etc/security/limits.conf
* soft nofile 300000
* hard nofile 300000
* soft nproc 102400
* soft memlock unlimited
* hard memlock unlimited
複製代碼
錯誤4:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]jvm
solutions: 先要切換到root用戶; 而後能夠執行如下命令,設置 vm.max_map_count ,可是重啓後又會恢復爲原值。
sysctl -w vm.max_map_count=262144
複製代碼
持久性的作法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 參數:
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
複製代碼
最後終於在外網訪問成功:
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install # 此處我試圖用cnpm install有問題,用npm能夠
npm run start
複製代碼
而後在外網訪問http://你的安裝機IP:9100
新建 Index,能夠直接向 Elastic 服務器發出 PUT 請求。下面的例子是新建一個名叫weather的 Index。
然而刷新elasticsearch-head可視化界面能夠看到索引已經成功插入
做者更多的SpringBt實踐文章在此:
若是有興趣,也能夠抽點時間看看做者一些關於容器化、微服務化方面的文章: