搭建配置ELK stack分布式版环境

一:说明

1、关于机器环境:

(1)这几台机器都是虚拟机,它们的联网方式都是NAT。
(2)这几台机器机器均已安装了java1.8,
(3)slave1和slave2已经修改过/etc/sysconfig/network文件中的主机名和/etc/hosts文件中的主机与IP地址映射的。
(4) 已经可以ssh无密访问。关于如何设置ssh无密访问,可以参看我的另一篇文章:http://blog.csdn.net/u011654631/article/details/68944088

2、整体架构说明:

(1)日志收集服务器:共两台 安装filebeat进行日志的采集
IP:192.168.137.5 hostname:ubuntu 系统:ubuntu 14.04
IP:192.168.137.2 hostname : master 系统:CentOS6.5
(2)日志存储展示服务器:共两台 安装logstash、ES、kibana
IP:192.168.137.3 hostname : slave1 系统:CentOS6.5
IP:192.168.137.4 hostname : slave2 系统:CentOS6.5

3、安装软件的版本

filebeat-5.0.1 + logstash-2.4.1 + elasticsearch-1.7.1 + kibana-4.0.0

4、下载安装目录

都下载安装在/home/yxm/ELKstack目录下

二:安装步骤

1、在日志收集服务器上安装filebeat。

(1)首先在官网下载,分别下载安装到两台机器上
https://www.elastic.co/downloads/past-releases/filebeat-5-0-1
我这里下载的是LINUX 64-BIT。
(2)进行解压缩
解压缩到该目录:

tar -xzvf filebeat-5.0.1-linux-x86_64.tar.gz

因为名字太长,所以修改文件夹名字:

mv filebeat-5.0.1-linux-x86_64 filebeat-5.0.1
2、日志存储展示服务器安装logstash

(1)在官网下载,分别下载安装到两台机器上。
https://www.elastic.co/downloads/past-releases/logstash-2-4-1
我这里下载的是zip类型的。
(2)解压缩

unzip logstash-2.4.1.zip

(3)测试logstash是否安装成功。
进入logstash目录下,输入命令:

./bin/logstash -e 'input { stdin { } } output { stdout {} }'

有如下截图类似的结果则说明安装正确。
这里写图片描述

3、日志存储展示服务器安装ES

(1)在官网下载,分别下载安装到两台机器上。
https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-1
我这里下载的是zip类型的。
(2)解压缩

unzip elasticsearch-1.7.1.zip

(3)安装 elasticsearch-head插件

 ./bin/plugin install mobz/elasticsearch-head

如下图所示则安装成功:
这里写图片描述
说明:elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由HTML5编写的独立网页程序,你可以通过插件把它集成到es,在地址栏输入es服务器的ip地址和端口点connect就可以连接到集群,可以es集群的基本信息。
(3)修改config/elasticsearch.yml文件
进入 elasticsearch-1.7.1目录,修改config/elasticsearch.yml文件,具体配置为:

cluster.name: es_cluster
node.name: slave1
path.data: /home/yxm/ELKstack/elasticsearch-1.7.1/data
path.log: /home/yxm/ELKstack/elasticsearch-1.7.1/logs
network.host: 192.168.137.4
http.port:9700
http.cors.enabled: true
http.cors.allow-origin: "*"

说明:两台主机的node.name不同,network.host不同,分别为各自的主机名和ip地址。
(4)运行测试是否成功

bin/elasticsearch //两台机器上都运行

通过刚才安装的集群插件查看集群的状态,在137.3的主机中的浏览器中输入网址:http://192.168.137.3:9700/_plugin/head/
得到截图:
这里写图片描述
发现不太正确,因为集群中有两个节点,但是集群状态显示只有一个,而且从192.168.137.3上访问192.168.137.4的节点发现访问不了。

这里写图片描述
猜测应该是防火墙的问题,关闭防火墙重新尝试,尝试成功(友情提示:关闭防火墙需要以root权限才可以,我之前在非root权限下输入命令: service iptables stop,没有提示防火墙关闭,但是我以为已经关闭防火墙,但是还是无法访问成功,去其他地方找原因折腾了好久,最后发现还是防火墙的问题,此外这条命令是临时关闭防火墙,重启之后会失效,因为之后我会为防火墙配置策略,所以在此作为测试只是临时关闭,现在可以看到正确的集群状态了)
这里写图片描述

4、安装kibana4.0.0

(1)去官网下载https://www.elastic.co/downloads/past-releases/kibana-4-0-0
(2)解压缩并重命名为kibana-4.0.0
(3)修改配置文件config/kibana.yml

server.port: 5601
server.host: "192.168.137.3"
elasticsearch.url:  “http://192.168.137.3:9700”
kibana.index: ".kibana"

(4)启动
进入kibana-4.0.0目录,输入命令:

./bin/kibana

进入浏览器中输入网址:192.168.137.3:5601
得到如下截图:
这里写图片描述

配置测试

利用filebeat分别在ubuntu上监听“/var/log/dpkg.log”,master上监听“/var/log/yum.log”,然后分别使用apt-get和yum的方式安装成功一个软件后会产生日志,产生的日志被filebeat传输到logstash,最后再保存到es上。
(1)运行es

bin/elasticsearch

(2)配置并运行logstash
配置:进入logstash-2.4.1目录下,创建一个sample.conf文件

input{
  beats{
    port => 5044
  }
}
output{
  #stdout { codes => rubydebug }
  elasticsearch {
    hosts =>["192.168.137.2:9700","192.168.137.3:9700"]
    index => "logstash-logs"
  }

运行该.conf文件

bin/logstash -f logstash.conf

(3)配置并运行filebeat
ubuntu上的配置:

filebeat.prospectors:
- input_type: log
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/dpgk.log

output.logstash:
  # The Logstash hosts
  hosts: ["192.168.137.3:5044","192.168.137.4:5044"]
  worker: 2
  loadbalance: true

centos上的配置:

filebeat.prospectors:
- input_type: log
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/yum.log

output.logstash:
  # The Logstash hosts
  hosts: ["192.168.137.3:5044","192.168.137.4:5044"]
  worker: 2
  loadbalance: true

运行:

 sudo ./filebeat -e -c filebeat.yml

进行软件的安装,比如安装php
分别运行以下两个命令:

sudo apt-get install php
sudo yum install -y php

(4)查看是否传输成功
在浏览器中输入: http://192.168.137.3:9700/_plugin/head/
点击数据浏览,可以看到有信息。
这里写图片描述
这里写图片描述
(5)运行kibana

./bin/kibana

在浏览器中输入192.168.137.3:5601
点击setting,设置自己的index pattern,按说里面有默认的“logstash-*”应该可以匹配我在logstash中建立的索引“logstash-logs”,但是不知道为什么显示不出来es中的内容,后来建立了一个“logstash-logs”的索引,kibana中显示出了内容。
这里写图片描述
具体的生成一些图表等操作可以在Visualize中进行,暂时还没有深入学习了解。
关于设置SSL、配置防火墙策略等会在下几篇博客中继续写。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值