简单说明:
- 上篇博文部署搭建了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]