簡單說明:
- 上篇博文部署搭建了ELK的單機版進行生產JAVA日誌的歸集,如果想要稍微規範一點,可以部署ELK的集羣:
- 該架構部署了兩節點的Elasticsearch集羣,每個節點之上均部署Kibana,使用nginx對這兩個節點的es做負載均衡,生產推薦三節點以上
- 該架構依然存在redis的單點問題,可以進一步構建redis的集羣來消除該單點問題
- 如果ELK只是用來做簡單的近期日誌歸集,不推薦使用集羣
- 如果使用ELK做內容搜索並對外提供服務,該集羣只是一個較爲簡陋的雛形,同時還需要進一步的架構豐富和功能優化
部署過程:
- 所有主機均修改hosts文件:
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
cat >>/etc/hosts<<EOF
192.168.77.10 web
192.168.77.100 redis nginx
192.168.77.110 es1
192.168.77.111 es2
EOF
- 依據《生產JAVA日誌的ELK歸集方案(一)》在兩臺主機上部署安裝elasticsearch,修改配置文件並重啓es:
cat >>/etc/elasticsearch/elasticsearch.yml<<EOF
discovery.zen.ping.unicast.hosts: ["es1", "es2"]
EOF
systemctl restart elasticsearch
-
依據《生產JAVA日誌的ELK歸集方案(一)》在兩臺主機上分別部署head插件和Kibana,瀏覽器訪問head,確認es集羣構建成功
-
依據《生產JAVA日誌的ELK歸集方案(一)》部署安裝redis
-
在redis主機之上部署nginx,代理head、Kibana、es相應url
# 使用官方yum源安裝nginx
cat >/etc/yum.repos.d/nginx.repo<<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/\$basearch/
gpgcheck=0
enabled=1
EOF
yum -y install nginx
# 簡單部署負載均衡
cd /usr/share/nginx/html
rm -rf *
cat >/etc/nginx/conf.d/default.conf<<EOF
upstream kibana {
server 192.168.77.110:5601;
server 192.168.77.111:5601;
}
server{
listen 5601;
server_name $(hostname -i);
location / {
proxy_pass http://kibana;
index index.html index.htm;
}
}
upstream head {
server 192.168.77.110:9100;
server 192.168.77.111:9100;
}
server{
listen 9100;
server_name $(hostname -i);
location / {
proxy_pass http://head;
index index.html index.htm;
}
}
upstream es {
server 192.168.77.110:9200;
server 192.168.77.111:9200;
}
server{
listen 9200;
server_name $(hostname -i);
location / {
proxy_pass http://es;
index index.html index.htm;
}
}
EOF
systemctl restart nginx
systemctl enable nginx
# 驗證es
curl http://192.168.77.100:9200
# 瀏覽器訪問 http://192.168.77.100:9100 和 http://192.168.77.100:5601驗證
- 依據《生產JAVA日誌的ELK歸集方案(一)》部署web實驗機,配置logstash到redis
- 依據《生產JAVA日誌的ELK歸集方案(一)》在redis主機之上部署logstash到es,kibana驗證
[TOC]