對於日誌來說,最常見的需求就是收集、存儲、查詢、展示,開源社區正好有相對應的開源項目:logstash(收集)、elasticsearch(存儲+搜索)、kibana(展示),我們將這三個組合起來的技術稱之爲ELKStack,所以說ELKStack指的是Elasticsearch、Logstash、Kibana技術棧的結合
一、環境介紹
1、操作系統
CentOS Linux release 7.6.1810 (Core)
2、軟件版本
- elasticsearch-2.3.5
- kibana-4.5.4-1.x86_64
- logstash-2.3.4-1.noarch
3、主機分配
服務 | IP地址 | 主機名 |
---|---|---|
elasticsearch | 10.201.1.145 | k8s-m1 |
elasticsearch | 10.201.1.146 | k8s-n1 |
二、安裝部署
1、在145/146兩臺服務器安裝elasticsearch
- 安裝Java
yum install -y java
- 安裝RPM軟件包
rpm -ivh elasticsearch-2.3.5.rpm
sudo systemctl daemon-reload
systemctl enable elasticsearch.service
rpm -ql elasticsearch
- 先修改145配置文件(取消註釋做如下修改)
grep '^[a-z]' /etc/elasticsearch/elasticsearch.yml
cluster.name: myes #節點名稱,所有節點要保持一致
node.name: k8s-m1 #節點名稱,一般設置爲主機名,不能和其他節點重複
path.data: /data/es-data #數據存放路徑
path.logs: /var/log/elasticsearch #log存放路徑
bootstrap.mlockall: true #保證內存不被放到交換分區裏面
network.host: 10.201.1.145 #當前主機IP
http.port: 9200 #服務端口
- 再來修改146配置文件
grep '^[a-z]' /etc/elasticsearch/elasticsearch.yml
cluster.name: myes
node.name: k8s-n1
path.data: /data/es-data
path.logs: /var/log/elasticsearch
bootstrap.mlockall: true #保證內存不被放到交換分區裏面
network.host: 10.201.1.146
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.201.1.145", "10.201.1.146"] #單播的方式發佈自己的服務,讓其他es節點識別
- 創建配置文件中所需目錄,並賦予權限
mkdir -p /data/es-data
chown -R elasticsearch:elasticsearch /data/es-data
- 啓動服務
/etc/init.d/elasticsearch start
tail -f /var/log/elasticsearch/myes.log
netstat -lntpu|grep 9200
- 在145主機上安裝常用插件,插件需要查看是否適用當前版本
安裝head插件
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
瀏覽器訪問插件,查看狀態
http://10.201.1.145:9200/_plugin/head/
如下圖示,表明安裝正常
安裝kopf插件
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
瀏覽器訪問插件,查看狀態
http://10.201.1.145:9200/_plugin/kopf/
如下圖示,表明安裝正常
- 至此,兩臺elasticsearch 已經搭建完成