1.簡介
這個章節主要介紹ElasticSearch+Kibana兩個組件在linux環境的部署步驟,以及在部署程序中遇到問題解決,暫就不涉及集群部署知識點,后面章節再詳細講解這塊,下面讓我們來簡單了解下Elasticsearch與Kibana,
1.1Elasticsearch簡介
Elasticsearch是一個基于Lucene的搜索服務器,也是一個是一個分布式、高擴展、高實時的搜索與資料分析引擎,它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web介面,Elasticsearch是用Java語言開發的,并作為Apache許可條款下的開放原始碼發布,是一種流行的企業級搜索引擎,官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和許多其他語言中都是可用的,
它能很方便的使大量資料具有搜索、分析和探索的能力,充分利用Elasticsearch的水平伸縮性,能使資料在生產環境變得更有價值,Elasticsearch的實作原理主要分為以下幾個步驟,首先用戶將資料提交到Elasticsearch 資料庫中,再通過分詞控制器去將對應的陳述句分詞,將其權重和分詞結果一并存入資料,當用戶搜索資料時候,再根據權重將結果排名,打分,再將回傳結果呈現給用戶,
Elasticsearch+Logstash(資料收集日志決議引擎)+Kibana(分析和可視化平臺)這三個產品被設計成一個集成解決方案,稱為“Elastic Stack”(以前稱為“ELK stack”),
Elasticsearch可以用于搜索各種檔案,它提供可擴展的搜索,具有接近實時的搜索,并支持多租戶,Elasticsearch是分布式的,這意味著索引可以被分成分片,每個分片可以有零個或多個副本,每個節點托管一個或多個分片,并充當協調器將操作委托給正確的分片,再平衡和路由是自動完成的,相關資料通常存盤在同一個索引中,該索引由一個或多個主分片和零個或多個復制分片組成,一旦創建了索引,就不能更改主分片的數量,
1.2Kibana簡介
Kibana是一個針對Elasticsearch而設計的開源分析及可視化平臺,用來搜索、查看互動存盤在Elasticsearch索引中的資料,使用Kibana,可以通過各種圖表進行高級資料分析及展示,
Kibana讓海量資料更容易理解,它操作簡單,基于瀏覽器的用戶界面可以快速創建儀表板(dashboard)實時顯示Elasticsearch查詢動態,
2.前期準備
2.1下載elasticsearch組件
到官網下載頁https://www.elastic.co/cn/downloads/elasticsearch下載linux最新版本elasticsearch-7.8.0,如圖所示:
2.2下載kibana組件
到官網下載頁https://www.elastic.co/cn/downloads/kibana下載linux最新版本kibana-7.8.0,如圖所示:
2.3下載并安裝Xshell 6+Xftp 6
Xshell+Xftp下載安裝使用,這里我就不多說了,度娘大把資料可以供大伙參考,下面簡要解釋下Xshell+Xftp用途:
Xshell是一個功能強大的安全終端模擬軟體,它支持SSH1, SSH2, 以及Microsoft Windows平臺的TELNET協議,Xshell可以在Windows界面下用來訪問遠端不同系統下的服務器,從而達到遠程控制終端的目的,所以下面我都會使用Xshell在linux上撰寫腳本命令,
Xftp是一個功能強大的sftp、ftp檔案傳輸軟體,使用了Xftp以后,ms windows用戶能安全地在unix/linux和windows pc之間傳輸檔案,所以下面我都用Xftp做在linux和windows pc之間傳輸檔案,
3.Elasticsearch部署
3.1創建安裝包、Elasticsearch、kibana檔案夾
在用戶目錄下創建安裝包、Elasticsearch、kibana這三個檔案夾的目的是為了方便管理,默認目錄是/home/deng,創建檔案夾命令如下:
//安裝包檔案夾 mkdir /home/deng/installpackage //elasticsearch檔案夾 mkdir /home/deng/elasticsearch //kibana檔案夾 mkdir /home/deng/kibana
執行完所有命令后,通過Xftp,我們會看到/home/deng目錄下創建三個對應檔案夾:
如果想洗掉檔案夾,具體命令如下:
//洗掉檔案夾 rm -rf /home/deng/installpackage
如果創建檔案夾沒操作權限,可以通過如下命令進行授權:
//修改檔案權限 chmod -R 775 installpackage
再通過Xftp把之前下載好的elasticsearch-7.8.0-linux-x86_64.tar.gz、kibana-7.8.0-linux-x86_64.tar.gz安裝包傳輸到installpackage中:
3.2解壓Elasticsearch安裝包
先切換到elasticsearch檔案夾目錄:
//切換elasticsearch檔案夾 cd /home/deng/elasticsearch
把elasticsearch安裝包解壓到elasticsearch目錄當中:
//解壓elasticsearch安裝包 tar -zxvf /home/deng/installpackage/elasticsearch-7.8.0-linux-x86_64.tar.gz
3.3修改elasticsearch配置指定ES服務主機
先切換到elasticsearch檔案夾config目錄:
//切換elasticsearch/config檔案夾 cd /home/deng/elasticsearch/elasticsearch-7.8.0/config
使用vi文本編輯器修改elasticsearch.yml組態檔:
//vi文本編輯器打開elasticsearch.yml組態檔 vi elasticsearch.yml
輸入修改命令:
//i修改 i
找到檔案中這兩項配置,把前面的#符號洗掉開放出來并修改為如下內容:
network.host: 192.168.112.xxx http.port: 9200
修改完這兩項配置之后,因為7.0以后版本還需要修改如下兩個配置才能啟動,所以找到這兩項進行修改,如果bootstrap.system_call_filter屬性沒有就新增一行:
bootstrap.memory_lock: false bootstrap.system_call_filter: false
把上面四項配置修改后點擊Esc按鈕退出編輯,輸入命令保存退出:
//保存退出 :wq
3.4啟動Elasticsearch服務
注意:ES啟動有可能會多次報錯,需要我們根據錯誤資訊重新修改下相關組態檔,
3.4.1切換到bin目錄啟動Elasticsearch服務
//進入bin目錄 cd /home/deng/elasticsearch/elasticsearch-7.8.0/bin //啟動Elasticsearch服務或者后臺啟動模式 ./elasticsearch or ./elasticsearch -d
當我們啟動Elasticsearch服務時候,可能會遇到如下錯誤提示,
3.4.2root用戶不能啟動Elasticsearch服務
//無法以root用戶身份運行elasticsearch服務, org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
根據上述錯誤提示,我們要創建一個用戶進行啟動Elasticsearch服務,而因為我安裝linux版本CentOS 7時候已經新建一個用戶deng,所以下面演示我就該用戶進行部署操作,如果你們在安裝程序中沒有新建,就使用以下命令新建一個用戶再啟動Elasticsearch服務:
//useradd 建立用戶賬號(默認在/home目錄下) useradd deng //passwd設定賬號的密碼 passwd 123456
3.4.3虛擬記憶體過低
//最大虛擬記憶體區域vm.max_map_count [65530]太低,至少增加到[262144] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
根據上述錯誤提示,我們需要修改下sysctl.conf系統組態檔,但是如果當前用戶沒有root修改系統檔案權限,那么就得先su root用戶再進行如下操作:
vi /etc/sysctl.conf
輸入修改命令i,在空白處添加一行文本:
vm.max_map_count=262144
輸入:wq保存退出后,再通過su deng切換回來,然后啟動Elasticsearch服務,
3.4.4elasticsearch行程的最大檔案描述符太低與管理員最大執行緒數太低
//elasticsearch行程的最大檔案描述符[4096]太低,請至少增加到[65535] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] //用戶[admin]的最大執行緒數[3818]太低,請至少增加到[4096] max number of threads [3818] for user [admin] is too low, increase to at least [4096]
根據上述錯誤提示,還是跟之前操作一樣,如果當前用戶沒有root修改系統檔案權限,那么就得先su root用戶再進行如下操作:
vi /etc/security/limits.conf
輸入修改命令i,在空白處添加四行文本:
* soft nofile 65535 * hard nofile 65535 * soft nproc 4096 * hard nproc 4096
輸入:wq保存退出后,再通過su deng切換回來,然后啟動Elasticsearch服務,
3.4.5默認discovery設定不適合生產使用
//默認discovery設定不適合生產使用;至少有一個[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]必須配置 the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
根據上述錯誤,輸入命令進行如下操作:
vi elasticsearch.yml
輸入修改命令i,找到檔案中這項配置,把前面的#符號洗掉開放出來并修改為如下內容:
cluster.initial_master_nodes: ["node-1"]
輸入:wq保存退出后啟動Elasticsearch服務,
3.4.6無法獲取節點鎖
//無法獲取節點鎖 java.lang.IllegalStateException: failed to obtain node locks
這個錯誤原因是因為系統已經存在elasticsearch行程了,找出這個行程,把它kill掉重新啟動就可以了,具體操作命令如下:
//查看elasticsearch行程 ps -ef | grep elasticsearch //kill行程ID,格式(kill -9 1111) kill -9 xxxx
然后重新啟動Elasticsearch服務,
3.4.7Elasticsearch服務正常啟動
如果還不能訪問,把linux系統防火墻關閉,操作防火墻命令如下:
//查看防火狀態 systemctl status firewalld //暫時關閉防火墻 systemctl stop firewalld //永久關閉防火墻 systemctl disable firewalld //重啟防火墻 systemctl enable firewalld
成功訪問界面如下:
4.Kibana部署
因為之前已經創建好kibana檔案夾,我們只需要把kibana安裝包解壓到對應檔案夾中再啟動服務就好了,
4.1解壓Kibana安裝包
先切換到kibana檔案夾目錄:
//切換kibana檔案夾 cd /home/deng/kibana
把kibana安裝包解壓到kibana目錄當中:
//解壓kibana安裝包 tar -zxvf /home/deng/installpackage/kibana-7.8.0-linux-x86_64.tar.gz
4.2修改kibana配置指定kibana服務主機
先切換到kibana檔案夾config目錄:
//切換kibana/config檔案夾 cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/config
使用vi文本編輯器修改kibana.yml組態檔:
//vi文本編輯器打開kibana.yml組態檔 vi kibana.yml
找到檔案中這三項配置輸入i修改,把前面的#符號洗掉開放出來并修改為如下內容:
server.port: 5601 server.host: "192.168.112.xxx" elasticsearch.host: "http://192.168.112.xxx:9200"
如果需要修改為中文顯示:
i18n.locale: "zh-CN"
再切換到kibana檔案夾bin目錄,啟動kibana服務:
//切換kibana/bin目錄 cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/bin //啟動kibana服務 ./kibana
成功訪問界面如下:
5.Elasticsearch開啟登錄驗證功能
先停止Elasticsearch服務,配置X-Pack打開安全配置功能:
//配置X-Pack打開安全配置功能 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
重啟Elasticsearch服務,執行設定用戶名和密碼的命令,為elastic、kibana、logstash_system、beats_system四個用戶分別設定密碼:
//切換elasticsearch/bin目錄 cd /home/deng/elasticsearch/elasticsearch-7.8.0/bin //執行設定用戶名和密碼的命令,為4個用戶分別設定密碼:elastic、kibana、logstash_system、beats_system ./elasticsearch-setup-passwords interactive
如圖所示:
在瀏覽器上輸入Elasticsearch鏈接地址會看到如下界面:
輸入帳號elastic跟設定的密碼即可登錄成功!
Elasticsearch設定用戶密碼后,還需要在Kibana上設定對應的帳號跟密碼,具體命令如下:
//切換kibana/config目錄 cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/config //設定Kibana登錄帳號跟密碼 elasticsearch.username: "elastic" elasticsearch.password: "xxx"
如圖所示:
然后開啟Kibana服務,在瀏覽器上輸入Kibana地址會看到如下界面:
輸入帳號elastic跟設定的密碼即可登錄成功!
參考文獻:
Elasticsearch官網
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/222358.html
標籤:Linux
