无业可守 创新图强
living innovation

缅甸小勐拉环球国际

当前位置:首页 > 缅甸小勐拉环球国际 >

快速构建大数据存储分析平台-ELK平台安装

日期:2019-05-20

 

一、概述

 ELK是由Elastic公司开发的Elasticsearch、Logstash、Kibana三款开源软件的缩写(但不限于这三款软件)。

为什么使用ELK?

  在目前流行的微服务架构中,一个大型应用可能会被划分成几十甚至上百个微服务,这些微服务产生的日志也会分布在不同的服务器不同的目录下,按常规方式进行日志检查你会频繁登录每台服务器查找日志,所以你可能需要一个集中化的日志管理平台。

  如果要对这些日志进行数据分析,常规方式可采用hadoop或spark等大数据技术手段来进行数据分析,但终究这些方式需要编写代码和相关专业知识,时间、人力成本略高,所以你可能需要一个开箱即用的搜索、聚合、可视化的数据分析平台。

  综上所述,ELK首先是一个集中化日志管理平台,但同时也是一个快速的可视化数据分析平台。

架构选择

  ELK架构很灵活,不同的架构适合不同的场景。

  在文章末尾提供了一个链接,可作为不同架构方式的参考。

二、服务架构

 

上图中分为4层,含义如下:

1、filebeat日志采集端,采集日志并将日志发送到kafka;

2、kafka+zookeeper集群,用于中转、缓冲海量日志;

3、logstash从kafka中拉取日志,并过滤、转发到elasticsearch中;

4、elasticsearch集群,用于存储日志;kibana将海量日志可视化展示、统计;

 

三、服务器软件准备

服务器ip192.168.1.101192.168.1.102192.168.1.103192.168.1.104192.168.1.105192.168.1.106192.168.1.107192.168.1.108
安装软件filebeatkafka+zookeeperkafka+zookeeperlogstashelasticsearch dataNodeelasticsearch dataNodeelasticsearch dataNodeelasticsearch masterNode+kibana

 

 

 

 

 

 

一共涉及6个软件包

 

四、软件安装

1、安装zookeeper

192.168.1.102、192.168.1.103两台服务器分别安装配置zookeeper集群

#安装目录/usr/local/zookeeper-3.4.13>tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/>cd /usr/local/zookeeper-3.4.13/conf/>cp zoo_sample.cfg zoo.cfg>vim zoo.cfg#修改以下配置dataDir=/usr/local/zookeeper-3.4.13/zookeeperserver.1=192.168.1.102:12888:13888server.2=192.168.1.103:12888:13888#server.1执行(重要)>echo 1 > /usr/local/zookeeper-3.4.13/zookeeper/myid#server.2执行(重要)>echo 2 > /usr/local/zookeeper-3.4.13/zookeeper/myid #两台服务器分别启动zookeeper>cd /usr/local/zookeeper-3.4.13/bin/>./zkServer.sh start>netstat -lntp |grep 2181

 

2、安装kafka

 192.168.1.102、192.168.1.103两台服务器分别安装配置kafka

#解压到/usr/local/kafka_2.11-2.0.1>tar -zxvf kafka_2.11-2.0.1.tgz -C /usr/local/kafka_2.11-2.0.1>cd /usr/local/kafka_2.11-2.0.1/config/#修改以下配置文件#注:两台服务器中broker.id、host.name需分别配置>vim server.propertiesbroker.id=1port = 9092host.name = 192.168.1.102log.dirs=/var/log/kafkalog.retention.hours=1zookeeper.connect=192.168.1.102:2181,192.168.1.103:2181default.replication.factor=2#启动kafka服务,两台服务器中分别启动>cd /usr/local/kafka_2.11-2.0.1/config>./kafka-server-start.sh -daemon ../config/server.properties

验证kafka队列服务,正常情况下在生产者端输入数据并发送,消费者端会收到并打印数据

#创建消息主题>./kafka-topics.sh --create --zookeeper 192.168.1.102:2181 --replication-factor 1 --partitions 2 --topic logs#创建消息生产者>./kafka-console-producer.sh --broker-list 192.168.1.102:9092 --topic logs#创建消息消费者>./kafka-console-consumer.sh --bootstrap-server 192.168.1.102:9092 --topic logs

 

3、安装logstash

192.168.1.104安装配置logstash

#通过rpm安装logstash>rpm -ivh logstash-6.0.0.rpm#配置数据的输入输出>vim /etc/logstash/conf.d/syslog.confinput { kafka { bootstrap_servers => "localhost:9092" topics => ["logs"]#使用上文中创建的消息主题 }}output { elasticsearch { hosts => ["localhost:9200"] index => "logs-%{+YYYY.MM.dd}" }}#启动服务>systemctl start logstash

4、安装elasticsearch

192.168.1.108安装配置elasticsearch

#使用rpm方式安装软件>rpm -ivh elasticsearch-6.0.0.rpm#编辑配置>vim /etc/elasticsearch/elasticsearch.ymlcluster.name: master-node # 集群中的名称node.name: master # 该节点名称node.master: true # 意思是该节点为主节点node.data: false # 表示这不是数据节点network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的iphttp.port: 9200 # es服务的端口号discovery.zen.ping.unicast.hosts: ["192.168.1.105", "192.168.1.106", "192.168.1.107", "192.168.1.108"] # 配置自动发现#启动服务>systemctl start elasticsearch#验证>ps aux |grep elasticsearch>curl "localhost:9200/_cluster/health?pretty"

注:"192.168.1.105", "192.168.1.106", "192.168.1.107" 按照同样方法安装配置,但需要修改node.name、node.master改为false、node.data改为true

5、安装kibana

192.168.1.108安装配置kibana

>rpm -ivh kibana-6.0.0-x86_64.rpm#编辑配置>vim /etc/kibana/kibana.ymlelasticsearch.url: "http://192.168.1.108:9200"logging.dest: /var/log/kibana.log#创建日志文件>touch /var/log/kibana.log>chmod 777 /var/log/kibana.log#启动服务>systemctl start kibana#验证服务>ps aux |grep kibana>netstat -lntp |grep 5601

 

 至此,服务架构中第2、3、4层已安装完毕

6、安装filebeat(日志采集端)

192.168.1.101安装配置filebeat

>rpm -ivh filebeat-6.0.0-x86_64.rpm#修改或增加以下配置文件>vi /etc/filebeat/filebeat.ymlfilebeat.prospectors: - type: log enabled: true paths: - /opt/*.out #日志目录#日志数据输出到kafkaoutput.kafka: enabled: true hosts: ["172.17.224.159:9092"] topic: ecplogs#启动并验证服务>systemctl start filebeat>ps axu |grep filebeat

五、验证

用浏览器打开kibana:http://192.168.1.108:5601

 

安装工作告一段落

 

参考博客:

Elastic Stack的演进

 

Elastic Stack的演进