目前基於一個ES的應用開發接近完成,須要將App部署到線上進行測試。因爲在本地開發是用的Docker,因此切換到線上還須要在Linux(ubuntu16LTS)中在安裝一些必要到應用。爲了往後方便,因而便有了這個筆記。java
由於衆所周知的緣由,直接實用原廠資源連接去下載應用程序,速度上面會比較慢,因此預先選擇一個速度較快的國內鏡像以減輕等待過程的痛苦。linux
以 ubuntu 16.04LTS 在阿里雲的鏡像,編輯 /etc/apt/sources.list 文件,註釋掉原來的內容,更換爲如下內容:數據庫
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
複製代碼
保存後,更新緩存 sudo apt updatebootstrap
若是是在已經有的系統中安裝ES,最好現將原系統盤備份。後面安裝過程須要修改一些系統參數,萬一改壞了,還能還原。(備份過程略)ubuntu
java -version
複製代碼
若是已經有了Java環境,跳過這一步。緩存
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
複製代碼
以當前最新版本爲例:安全
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz
# 解壓
tar -vxsf elasticsearch-6.6.0.tar.gz
tar -vxsf kibana-6.6.0-linux-x86_64.tar.gz
複製代碼
在兩個應用在config目錄下,均有同名的yml配置文件。能夠配置諸如:數據庫、日誌路徑,服務綁定地址、端口號等信息。bash
若是Es服務的綁定地址是本機內部(127.0.0.1),那麼直接能夠啓動了。若是是外部可訪問地址(0.0.0.0),那麼須要修改虛擬內存。不然會報告虛擬內存太小,並終止程序繼續運行。服務器
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
複製代碼
處理方法: 修改/etc/sysctl.conf文件,加入網絡
vm.max_map_count=262144
不須要重啓,運行:
sysctl -w vm.max_map_count=262144
ES不容許以root的身份去運行,這樣一旦因配置問起形成安全漏洞,會致使整個服務器的安全隱患。因此,若是當前是root帳戶,須要創建一個別的帳戶以啓動
# 建立組
groupadd elsearch
# 建立用戶
useradd elsearch –g elsearch –p elsticsearch
# ES的權限修改,記得還要修改數據庫和日誌目錄
chown –R elsearch:elsearch ./ElasticSearch
複製代碼
在bin目錄下的同名可執行文件,即是應用程序的啓動文件。直接之後臺方式運行便可。
最後,將es和kb的啓動命令加入 rc.local 每次隨服務器重啓而自動啓動服務。
除了配置防火牆,將二者默認端口 9200和5601放行以外,還須要留意的是ES的API能夠根據項目的運行環境制定一個合適的策略。當前項目的搜索都是經過程序內的業務邏輯,調用ES的搜索API進行,並不須要直接對外。因此綁定的9200端口不須要暴露在公網上。
而Kb服務並非一直須要,只有在剛剛開始運行或者遇到問題的時候才須要。這個時候能夠將KB配置爲綁定外部IP,可是能夠不啓動這個服務。或者防火牆配置可訪問的5601端口的請求IP爲本公司網絡IP。