您好,登錄后才能下訂單哦!
一、背景介紹
ELK 不是一款軟件,而是 Elasticsearch、Logstash 和 Kibana 三種軟件產品的首字母縮寫。這三者都是開源軟件,通常配合使用,而且又先后歸于 Elastic.co 公司名下,所以被簡稱為 ELK Stack。根據 Google Trend 的信息顯示,ELK Stack 已經成為目前最流行的集中式日志解決方案。
Elasticsearch:分布式搜索和分析引擎,具有高可伸縮、高可靠和易管理等特點。基于 Apache Lucene 構建,能對大容量的數據進行接近實時的存儲、搜索和分析操作。通常被用作某些應用的基礎搜索引擎,使其具有復雜的搜索功能;
Logstash:數據收集引擎。它支持動態的從各種數據源搜集數據,并對數據進行過濾、分析、豐富、統一格式等操作,然后存儲到用戶指定的位置;
Kibana:數據分析和可視化平臺。通常與 Elasticsearch 配合使用,對其中數據進行搜索、分析和以統計圖表的方式展示;
Filebeat:ELK 協議棧的新成員,一個輕量級開源日志文件數據搜集器,基于 Logstash-Forwarder 源代碼開發,是對它的替代。在需要采集日志數據的 server 上安裝 Filebeat,并指定日志目錄或日志文件后,Filebeat 就能讀取數據,迅速發送到 Logstash 進行解析,亦或直接發送到 Elasticsearch 進行集中式存儲和分析。
架構模式:
二、Elasticsearch環境描述
CentOS7 4C 8G
IP | port | version |
---|---|---|
192.168.18.7 | 9200 | 7.5.0 |
192.168.18.8 | 9200 | 7.5.0 |
192.168.18.9 | 9200 | 7.5.0 |
三、環境安裝部署
1、下載安裝包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz
2、安裝jdk
yum install -y java-1.8.0-openjdk
3、解壓
tar -xf elasticsearch-7.5.0-linux-x86_64.tar.gz -C /opt/
4、修改配置文件
[root@es01 ~]# grep -n -v '#' /etc/elasticsearch/elasticsearch.yml |grep -v '^$'
cluster.name: escluster #設置集群名字
index.number_of_shards: 3 #設置es索引分片數量,分布式存儲,提高查詢效率等
index.number_of_replicas: 1 #設置分片副本數量,提供數據高可用
node.name: es01 #設置本節點名字,另外2臺可依次02、03
path.data: /data/es_data #設置es索引數據存放位置
network.host: 192.168.18.7 #設置此節點綁定IP
discovery.zen.ping.unicast.hosts: ["192.168.18.7", "192.168.18.8", "192.168.18.9"] #設置集群節點成員
5、參數詳解:
1、node.attr.rack指定節點的部落屬性,這是一個比集群更大的范圍。
2、node.master指定是否為主節點。該屬性可不指定,節點之間自主選舉。
3、node.data指定是否存儲數據(數據節點)
4、cluster.initial_master_nodes參數:你可以通過為 cluster.initial_master_nodes 參數設置一系列符合主節點條件的節點的主機名或 IP 地址來引導啟動集群。你可以在命令行或 elasticsearch.yml 中提供這些信息。你還需要配置發現子系統,這樣節點就知道如何找到彼此。
6、jvm.options配置
7、啟動es
由于elasticsearch不能用root用戶啟動,所以需要創建一個新用戶
[root@es01 ~]# useradd elasticsearch -g root
將elasticsearch加入root用戶組
[root@es01 elasticsearch-7.5.0]# chown -R elasticsearch /opt/elasticsearch-7.5.0
切換到elasticsearch用戶
su - elasticsearch
./elasticsearch -d 啟動
四、報錯解決
1. seccomp unavailable 錯誤
解決方法:elasticsearch.yml 配置
bootstrap.memory_lock: false
#bootstrap.systemcallfilter: false
2. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
解決方法:修改 /etc/security/limits.conf,配置:
elasticsearch soft nofile 65535 #軟限 此處elasticsearch為啟動用戶
elasticsearch hard nofile 65535 #硬限
3. max virtual memory areas vm.maxmapcount [65530] is too low
解決方法:修改 /etc/sysctl.conf,添加 :
vm.max_map_count=262144
然后 sysctl -p 生效
4. the default discovery settings are unsuitable...., last least one of [....] must be configured
解決方法:elasticsearch.yml 開啟配置:
node.name: node-1
cluster.initialmasternodes: ["es01"]*
其他節點配置一樣即可
五、驗證
通過瀏覽器訪問三臺機器的映射端口可以看出同屬于同一個集群
至此elasticsearch集群部署完成。后面會接續介紹kibana和logstash部署及日志采集方法。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。