ELK- elasticsearch 講解,安裝,插件head,bigdesk ,kopf,cerebro(kopf升級版)安裝

ElasticSearch:簡稱es ,分佈式全文搜索引擎,使用java語言開發,面向文檔型數據庫,一條數據就是一個文檔,數據用json序列化後存儲。html

默認端口:9200java

 

藉助redis來理解node

redis以key/values方式存儲數據,abc=123  經過key(abc)便可取出值(123)python

 es  使用索引-類型-數據-數據中的某個字段     格式來存儲數據。linux

 

 

es安裝git

服務器ip:192.168.100.2github

軟件包elasticsearch 6.5:web

連接:https://pan.baidu.com/s/14aXMtEldzBT2R8hW2gWEEQ 
提取碼:dk7x

 

下載完畢後,解壓tar包:redis

[root@host1 [00:35:22]/usr/src]#tar xf elasticsearch-6.5.1.tar.gz

 

 

解壓後,解壓的目錄能夠直接使用,將解壓後的目錄移動到一個指定位置,並命名數據庫

[root@host1 [00:36:08]/usr/src]#mv elasticsearch-6.5.1  /usr/local/elasticsearch

 

 

在PATH變量中添加es的bin目錄,讓系統能夠找到es的可執行文件,方便執行命令

[root@host1 [00:37:10]/usr/src]#cat /etc/profile |tail -3 |head -1 export PATH=$PATH:/usr/local/elasticsearch/bin:/usr/bin/:/usr/local/node/bin/

 

 

編輯es配置文件,配置監聽端口,地址等信息

[root@host1 [00:39:52]/usr/local/elasticsearch/config]#vim /usr/local/elasticsearch/config/elasticsearch.yml cluster.name: test 集羣名稱,配置es集羣時設置,集羣名稱相同,網絡相同的狀況下,多臺可同時對外服務 node.name: linux-node1 本機名稱,定義一個你喜歡名稱 path.data: /usr/local/elasticsearch/data es存儲數據的目錄,此目錄不存在,須要手動建立 path.logs: /usr/local/elasticsearch/logs 存儲log的目錄,同上,須要手動建立 bootstrap.memory_lock: false 內存鎖定機制,讓es只在內存中緩存數據,不在swap分區中操做,忽然的使用swap分區會極大的影響速度 Centos6不支持這個機制,因此要設置false bootstrap.system_call_filter: false 上面參數的輔助參數 network.host: 0.0.0.0 監聽的地址 http.port: 9200                                     監聽端口,默認9200

 

進行主配置文件定義後,還要進行下方的配置,不然es會啓動失敗

 

1.建立一個普通用戶啓動es,es不支持root用戶啓動。

[root@host1 [00:40:39]/usr/local/elasticsearch/config]#useradd admin

 

2.編輯limit文件,寫入下方內容

[admin@host1 [00:57:57]/usr/local/elasticsearch/config]$ulimit -u 4096 用戶最大可開啓進程,臨時生效 須要在你建立的啓動es的用戶空間執行 [root@host1 [00:46:36]/usr/local/elasticsearch/config]#cat /etc/security/limits.conf  |grep ^*
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

 

3.用戶最pending signals數量

[root@host1 [00:48:13]/usr/local/elasticsearch/config]#cat /etc/security/limits.d/90-nproc.conf  |grep ^*
*          soft    nproc     14794

 

4.單個JVM能開啓的最大線程數設置

[root@host1 [00:49:12]/usr/local/elasticsearch/config]#sysctl -w vm.max_map_count=262144 臨時生效 vm.max_map_count = 262144 [root@host1 [00:52:27]/usr/local/elasticsearch/config]#echo "vm.max_map_count=262144" >> /etc/sysctl.conf 寫入文件永久生效 [root@host1 [00:52:38]/usr/local/elasticsearch/config]#sysctl -p vm.max_map_count = 262144

 

  

5.將es的目錄所屬主,組,更改成你建立的用戶

[admin@host1 [01:00:52]/usr/local/elasticsearch/config]$chown -R admin:admin  /usr/local/elasticsearch/

 

  

 

配置完畢後,啓動es,須要使用,你建立的普通用戶,

 #命令做用是將全部運行中出現的結果輸出到文件:/usr/local/elasticsearch/logs/run.log 中,並放在後臺執行,不影響前臺操做

[admin@host1 [01:04:22]/usr/local/elasticsearch/config]$elasticsearch &> /usr/local/elasticsearch/logs/run.log  &

 

  

在瀏覽器中訪問你的服務器的ip地址加上9200端口看結果,相似下面,那麼恭喜,你的es安裝成功了:

 

 

下面開始介紹es的簡單操做

存儲數據下方數據至es中

{

"name":"xiaoming"

"age":"22"

}

須要通過如下幾個步驟

 

1.建立索引名稱爲index-test

 1)索引庫名稱必需要所有小寫,不能如下劃線開頭,也不能包含逗號 
 2)若是沒有明確指定索引數據的ID,那麼es會自動生成一個隨機的ID,須要使用POST參數 

[root@host1 [18:18:47]~]#curl -XPUT http://192.168.100.2:9200/index-test
 返回結果:{"acknowledged":true,"shards_acknowledged":true,"index":"index-test"}

 

 

在某個類型中建立數據

#在index-test的索引中建立一個類型doc,在doc中建立一個數據,user_info存入,username=xiaoming 的對應關係

#-H指定頭部,-X指定方法 -d指定參數,參數用雙引號保衛,由於最終須要轉換爲json數據。

[root@host2 [01:22:22]~]#curl -H "Content-Type: application/json" -XPOST 192.168.100.2:9200/index-test/doc/user_info  -d '{"user_name":"xiaoming"}' {"_index":"index-test","_type":"doc","_id":"user_info","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":3}[root@host2 [01:22:35]~]#

 

 

獲取數據

#GET方法,獲取對應的索引->類型->數據

[root@host2 [01:26:44]~]#curl -H "Content-Type: application/json" -XGET 192.168.100.2:9200/index-test/doc/user_info {"_index":"index-test","_type":"doc","_id":"user_info","_version":1,"found":true,"_source":{"user_name":"xiaoming"}}  _source字段使咱們存儲的數據。

 

 

 

 

使用這種方法存儲操做數據,豈不是很是麻煩,接下來咱們能夠用獨立的模塊來鏈接es並執行操做,模塊給咱們提供了人性化的界面,比冰冷的代碼更溫暖。

 

  elasticsearch-head

#前期版本的es是集成插件的,經過es自己提供功能便可添加某個插件,目前的es跟插件都是獨立的,插件須要額外安裝

 

 簡稱head模塊,主要功能:中文界面,圖形化操做存儲,更改,刪除數據,界面可顯示現有索引,並對索引大小進行檢查等。

#使用head插件必須配合node使用,下載時請一併下載node軟件包

head以及node軟件包:

連接:https://pan.baidu.com/s/1HtTcvMD8p1wtRcHThk4sMA 
提取碼:i4oj

 

 

解壓軟件包

[root@host1 [02:09:22]/usr/src]#tar xf elasticsearch-head.tar.gz [root@host1 [02:12:19]/usr/src]#tar xf node-v8.12.0-linux-x64.tar.gz

 

配置node的,讓系統可以正常執行它的命令,不配置下方步驟,將會報錯:

[root@host1 [02:13:41]/usr/src/elasticsearch-head]#ln -s /usr/src/node-v8.12.0-linux-x64/bin/node   /usr/bin/

 

進入解壓後的head插件目錄,使用node提供的npm進行進行運行,並將運行日誌寫到node目錄下,放入後臺執行,不影響前臺操做

[root@host1 [02:20:09]/usr/src]#cd elasticsearch-head [root@host1 [02:20:15]/usr/src/elasticsearch-head]#/usr/src/node-v8.12.0-linux-x64/bin/npm  run start   &> /usr/src/node-v8.12.0-linux-x64/run.log &

 

默認監聽本機9100端口,經過瀏覽器訪問本機9100端口便可,成功後結果以下。

在紅框出輸入es的地址,選擇鏈接後便可展現es的信息(個人es已經通過必定的配置了,因此會有下面的這麼多索引,若是按照此文的進度,索引是不存在的,so,忽略便可。)

 

在此處能夠查看索引中的所有數據,紅框處標記了,以前建立過的user_name:xiaoming內容,在這個平臺上能夠看到,咱們這數據量小,可是實際環境中日誌量很定是很大的,那麼,能夠根據下圖中黃色區域使用過濾功能進行查看,根據時間過濾,字段過濾等,對這個功能有興趣的,能夠自行了解下。

 

 圖形化的進行新建索引,刪除索引等操做。

下圖展現瞭如何建立一個名稱爲index-test2的索引

在test2中建立數據

下圖演示了在索引test2中的doc類中建立數據,沒有定義數據名稱,默認會定義一個隨機的字符串,如圖中的_id字段。

經過隨機生成的id獲取數據

刪除數據

 bigdesk

 

一套用於監控es的插件,功能很是強大,展示出來的圖很牛逼,可是有些值我至今沒看懂~

另外,這插件幾年沒更新了,可是還可以監控如今新版本的es,在幾年前的時間,這個插件能夠說是很厲害了

 

下載:

連接:https://pan.baidu.com/s/1qLdFCYQBIb3nnajlq4fTZg 
提取碼:ohet

 

解壓:

[root@host1 [02:48:25]/usr/src]#unzip bigdesk-master.zip

 

進入解壓後的目錄中的_site,並使用python的功能,建立一個web應用,默認端口8000,便可訪問執行python命令的路徑下的html文件

[root@host1 [02:48:25]/usr/src]#cd bigdesk-master/_site [root@host1 [02:50:14]/usr/src/bigdesk-master/_site]#python -m SimpleHTTPServer &>/dev/null &

 

在瀏覽器中訪問本機8000端口,成功後在紅框內輸入es地址,下方便可看到圖標,es機器cpu,mem等等

 

              cerebro

 

kopf的升級版本,更改了個名字,包含kopf的功能(監控工具,幷包含head插件的部分功能,可圖形化的進行新建索引等操做,有一個痛點,軟件是英文版本),並含有其餘功能,下圖是做者github上的公告,大概意思就是kopf不在更新,升級爲cerebro,並對cerebro進行維護。

下載:

連接:https://pan.baidu.com/s/1W1dDPN8Yc6mWQxL7_6KLEg 
提取碼:1fj7

 

  

 解壓:

[root@host1 [03:00:45]/usr/src]#tar xf cerebro-0.8.1.tgz

 

進入解壓目錄後執行程序便可,默認端口9000(我就不放後臺執行了,愛怎麼執行怎麼把,重要的是把過程展示給大家)

[root@host1 [03:00:45]/usr/src]#cd cerebro-0.8.1 [root@host1 [03:01:12]/usr/src/cerebro-0.8.1]#./bin/cerebro [info] play.api.Play - Application started (Prod) [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

 

訪問測試並輸入es地址(界面很酷炫有木有)

鏈接es後,跟head同樣,主界面顯示了索引信息,可是還增長了監控服務器的負載信息等。

 

rset界面,能夠實現head模塊中的圖形化執行操做數據的功能,而且增長了只能匹配功能,它幫你匹配你輸入的選項後面多是什麼參數。

相關文章
相關標籤/搜索