開篇廢話
沒錯,前面扯了一堆SQL SERVER,其實我連Elastic Search根本沒動手玩過(是不是與時代有點脫節了?),那今天我就准備嘗試安裝一個ELK的簡單集群出來(這個集群是使用我的小米筆記本創建了兩個虛擬機,虛擬出來的一個集群,沒錢買阿里雲)
虛擬機的操作系統實CentOS 7 64位,不同的Linux版本可能略有差異~
直接安裝Elastic Search
安裝Master Node
本文也是參考官網文檔進行安裝,大家可以直接看官網文檔,一般來說,比較新一些。
官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-install.html
1)找個合適的文件夾下載安裝包:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz
友情提示,如果下載速度比較慢,可以拿迅雷這類軟件下載好,上傳到服務器,迅雷這類軟件在下載這種熱門資源的時候,還是有速度上的提升的。
2)解壓下載下來的文件
本文的版本號均為7.2.0,安裝不同的版本時,靈活應變就行。
tar -xvf elasticsearch-7.2.0-linux-x86_64.tar.gz
3)修改配置文件
進入解壓后的elasticsearch-7.2.0 文件夾中的config文件夾,並修改elasticsearch.yml 文件中的配置:
cluster.name: jax-elk-group1 node.name: master node.master: true network.host: 0.0.0.0 http.cors.enabled: true http.cors.allow-origin: "*" cluster.initial_master_nodes: ["master"]
此時我們在elasticsearch-7.2.0文件夾下執行
./bin/elasticsearch
由於我虛擬機內存不夠大的原因,他會拋個異常:
ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
對於第一個報錯ELK官網是這么解釋的:
是由於Elasticsearch需要使用大量的文件描述符或文件句柄,用完文件描述符可能是災難性的,也有可能導致數據丟失,需要確保將運行Elasticsearch的用戶能打開文件描述符數量的限制增加到65,536或更高。
官網鏈接在這里:https://www.elastic.co/guide/en/elasticsearch/reference/current/file-descriptors.html
然而,我照官網做了之后,並不管什么用,最終找到了一篇文章:
http://www.kxtry.com/archives/1635
首先第一個問題,需要修改文件etc/security/limits.conf中的一些配置:
執行命令:
sudo vi /etc/security/limits.conf
像文件最后添加內容:
* soft nofile 65536
* hard nofile 131072 (貌似只添加這句就行)
* soft nproc 2048
* hard nproc 4096
然后退出當前的終端重新連接進入,這步非常重要,不重新進不起作用的~
第二個問題需要修改/etc/sysctl.conf中的一些配置:
執行命令:
sudo vi /etc/sysctl.conf
向文件最后添加記錄:
vm.max_map_count=655360
保存並退出后執行命令:
sudo sysctl -p
這步跟上面退出終端重新進入一樣重要,不執行這個配置不會生效的。
執行完這兩步,然后重新執行就可以啟動成功了~
./bin/elasticsearch
可以在新開一個終端執行下面命令來驗證安裝的成果:
curl http://服務器ip:9200/
此時如果安裝的沒問題,會打印類似下面的內容:
{ "name" : "master", "cluster_name" : "jax-elk-group1", "cluster_uuid" : "NtmpxdwtRQOiT8sv8bJrvg", "version" : { "number" : "7.2.0", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "508c38a", "build_date" : "2019-06-20T15:54:18.811730Z", "build_snapshot" : false, "lucene_version" : "8.0.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
如果你想在后台啟動elastic search進程,那么可以在啟動時加個 -d參數:
./bin/elasticsearch –d
到此為止,我們的Master節點(主節點)就安裝完畢了
安裝Slave node
接下來,我們再次來安裝一台Slave節點(從節點),並且跟我們當前的Master節點組成一個Elastic search集群。
Slave節點的大部分步驟和Master節點是一樣的,唯一的區別在於elasticsearch.yml 文件中的配置。
cluster.name: jax-elk-group1 node.name: node-01 network.host: 0.0.0.0 http.cors.enabled: true http.cors.allow-origin: "*" cluster.initial_master_nodes: ["master"]
discovery.zen.ping.unicast.hosts: ["192.168.154.135"]
配置的時候,需要注意以下幾點:
- cluster.name 一定要跟Master節點配置的一樣
- node.name 是一個唯一標識,一定不要跟Master節點配置的一樣,各個不同的Salve也不要重復
- discovery.zen.ping.unicast.hosts中的IP列表是集群中其他節點的IP地址列表
到這里為止,我們整個集群都安裝完成了
使用ElasticSearch-Head可視化界面
默認我們只能通過命令行或者Http的方式來操作Elastic Search,elasticsearch-head 則是一款開源的ElasticSearch管理界面,它的項目主頁為:https://github.com/mobz/elasticsearch-head
使用起來也非常簡單:
- 下載他的源碼,不管是使用Clone還是直接使用Github的download zip功能
- 執行命令:npm install 還原npm依賴,(依賴於Node.js和npm)
- 還原完成后,執行npm start命令啟動項目
- 瀏覽器中打開http://localhost:9100/
- 修改瀏覽器中最上方的連接地址(默認是http://localhost:9200)
該項目可以在任意一台能訪問到ElasticSearch的機器上安裝,裝在你的本地機器也可以哦~
ELK的安裝就介紹到這里嘍~更多的ELK的知識,還需要多多探索哦~
