一、背景介紹
ELK 不是一款軟件,而是 Elasticsearch、Logstash 和 Kibana 三種軟件產(chǎn)品的首字母縮寫。這三者都是開源軟件,通常配合使用,而且又先后歸于 Elastic.co 公司名下,所以被簡(jiǎn)稱為 ELK Stack。根據(jù) Google Trend 的信息顯示,ELK Stack 已經(jīng)成為目前最流行的集中式日志解決方案。
創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),成都響應(yīng)式網(wǎng)站建設(shè)公司,網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220
Elasticsearch:分布式搜索和分析引擎,具有高可伸縮、高可靠和易管理等特點(diǎn)。基于 Apache Lucene 構(gòu)建,能對(duì)大容量的數(shù)據(jù)進(jìn)行接近實(shí)時(shí)的存儲(chǔ)、搜索和分析操作。通常被用作某些應(yīng)用的基礎(chǔ)搜索引擎,使其具有復(fù)雜的搜索功能;
Logstash:數(shù)據(jù)收集引擎。它支持動(dòng)態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過濾、分析、豐富、統(tǒng)一格式等操作,然后存儲(chǔ)到用戶指定的位置;
Kibana:數(shù)據(jù)分析和可視化平臺(tái)。通常與 Elasticsearch 配合使用,對(duì)其中數(shù)據(jù)進(jìn)行搜索、分析和以統(tǒng)計(jì)圖表的方式展示;
Filebeat:ELK 協(xié)議棧的新成員,一個(gè)輕量級(jí)開源日志文件數(shù)據(jù)搜集器,基于 Logstash-Forwarder 源代碼開發(fā),是對(duì)它的替代。在需要采集日志數(shù)據(jù)的 server 上安裝 Filebeat,并指定日志目錄或日志文件后,F(xiàn)ilebeat 就能讀取數(shù)據(jù),迅速發(fā)送到 Logstash 進(jìn)行解析,亦或直接發(fā)送到 Elasticsearch 進(jìn)行集中式存儲(chǔ)和分析。
架構(gòu)模式:
二、Elasticsearch環(huán)境描述
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 |
三、環(huán)境安裝部署
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 #設(shè)置集群名字
index.number_of_shards: 3 #設(shè)置es索引分片數(shù)量,分布式存儲(chǔ),提高查詢效率等
index.number_of_replicas: 1 #設(shè)置分片副本數(shù)量,提供數(shù)據(jù)高可用
node.name: es01 #設(shè)置本節(jié)點(diǎn)名字,另外2臺(tái)可依次02、03
path.data: /data/es_data #設(shè)置es索引數(shù)據(jù)存放位置
network.host: 192.168.18.7 #設(shè)置此節(jié)點(diǎn)綁定IP
discovery.zen.ping.unicast.hosts: ["192.168.18.7", "192.168.18.8", "192.168.18.9"] #設(shè)置集群節(jié)點(diǎn)成員
5、參數(shù)詳解:
1、node.attr.rack指定節(jié)點(diǎn)的部落屬性,這是一個(gè)比集群更大的范圍。
2、node.master指定是否為主節(jié)點(diǎn)。該屬性可不指定,節(jié)點(diǎn)之間自主選舉。
3、node.data指定是否存儲(chǔ)數(shù)據(jù)(數(shù)據(jù)節(jié)點(diǎn))
4、cluster.initial_master_nodes參數(shù):你可以通過為 cluster.initial_master_nodes 參數(shù)設(shè)置一系列符合主節(jié)點(diǎn)條件的節(jié)點(diǎn)的主機(jī)名或 IP 地址來引導(dǎo)啟動(dòng)集群。你可以在命令行或 elasticsearch.yml 中提供這些信息。你還需要配置發(fā)現(xiàn)子系統(tǒng),這樣節(jié)點(diǎn)就知道如何找到彼此。
6、jvm.options配置
7、啟動(dòng)es
由于elasticsearch不能用root用戶啟動(dòng),所以需要?jiǎng)?chuàng)建一個(gè)新用戶
[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 啟動(dòng)
四、報(bào)錯(cuò)解決
1. seccomp unavailable 錯(cuò)誤
解決方法: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為啟動(dòng)用戶
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"]*
其他節(jié)點(diǎn)配置一樣即可
五、驗(yàn)證
通過瀏覽器訪問三臺(tái)機(jī)器的映射端口可以看出同屬于同一個(gè)集群
至此elasticsearch集群部署完成。后面會(huì)接續(xù)介紹kibana和logstash部署及日志采集方法。