ELK日志分析平台实战(二)

一、实战环境

1、架构图

ELK日志分析平台实战(二)_第1张图片

相比上一篇博客,该架构的变化在于将单点ES替换为ES集群(master+data_node)

2、机器分布

192.168.117.136     Nginx+filebeat
192.168.117.137     Nginx+filebeat
192.168.117.138     logstash
192.168.117.139     es+kibana+nginx(master)
192.168.117.140     es(data-node)
192.168.117.141     es(data-node)

3、组件版本

java-1.8.0-openjdk
filebeat-5.2.2
logstash-5.2.2
elasticsearch-5.2.2
kibana-5.2.2
nginx-1.6.1

4、安装部署

在上一篇博客中讲述了filebeat,logstash,kibana的安装配置,所以此处只讲述如何部署es集群

(1)、配置yum源(所有机器)

#配置yum源#
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elk.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

(2)、安装es(139 140 141机器)

##安装es#
yum install -y elastcisearch
##配置es##
master:
mv /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml_bak
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: master-node  # 集群中的名称
node.name: master  # 该节点名称
node.master: true  # 意思是该节点为主节点
node.data: false  # 表示这不是数据节点
network.host: 0.0.0.0  # 监听全部ip,在实际环境中应设置为一个安全的ip
http.port: 9200  # es服务的端口号
discovery.zen.ping.unicast.hosts: ["192.168.117.139", "192.168.117.140", "192.168.117.141"]#配置自动发现

##将该配置文件发送给140 141机器,修改下列三项即可##
node.name: slave1/slave2
node.master: false
node.data: true

(3)、依次启动es服务(先master)

#139 140 141#
systemctl start elasticsearch
systemctl enable elasticsearch

(4)、安装es的head插件(可在web界面查看es集群的状态)

##head插件在5.x版本中需要独立启动,所以需要先更新node.js##

##下载node.js tar包##
cd /opt/
wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
tar Jxf node-v10.15.0-linux-x64.tar.xz
##配置环境变量##
vim /etc/profile
#添加:#
export PATH=/mnt/node-v10.15.0-linux-x64/bin:$PATH
source /etc/profile

##下载es head插件##
yum install -y git npm
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm install -g grunt-cli
nohup grunt server &

(5)、修改master的es配置文件,否则插件无法连接到es集群

#在139机器的/etc/elasticsearch/elasticsearch.yml文件中添加如下两行#
http.cors.enabled: true
http.cors.allow-origin: "*"
#重启master的服务
systemctl restart elasticsearch

(6)、网页查看集群状态http://192.168.117.139:9100/

ELK日志分析平台实战(二)_第2张图片

集群状态值为green即表示集群工作正常!!!

(7)、修改138机器上logstash的nginx日志过滤配置文件

##由于我们把es数据节点放在了140和141机器上,所以logstash接收到filebeat的日志数据后应当发送给140和141机器##

#将138机器上 /etc/logstash/conf/nginx.conf文件做如下修改:#
output {
    elasticsearch {
        hosts => ["192.168.117.140:9200","192.168.117.141:9200"]
        index => "logstash-%{type}-%{+YYYY.MM.dd}"
        document_type => "%{type}"
    }
    #stdout { codec => rubydebug }
}

#即把原来的hosts => ["192.168.117.139:9200"]更改为
          hosts => ["192.168.117.140:9200","192.168.117.141:9200"]

然后重新启动logstash即可。。。

你可能感兴趣的:(运维)