zoukankan      html  css  js  c++  java
  • 快速构建大数据存储分析平台-ELK平台安装

     

    一、概述

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

    为什么使用ELK?

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

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

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

    架构选择

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

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

    二、服务架构

     

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

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

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

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

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

     

    三、服务器软件准备

    服务器ip 192.168.1.101 192.168.1.102 192.168.1.103 192.168.1.104 192.168.1.105 192.168.1.106 192.168.1.107 192.168.1.108
    安装软件 filebeat kafka+zookeeper kafka+zookeeper logstash elasticsearch dataNode elasticsearch dataNode elasticsearch dataNode elasticsearch 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/zookeeper
    server.1=192.168.1.102:12888:13888
    server.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.properties
    broker.id=1
    port = 9092
    host.name = 192.168.1.102
    log.dirs=/var/log/kafka
    log.retention.hours=1
    zookeeper.connect=192.168.1.102:2181,192.168.1.103:2181
    default.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.conf
    input {
      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.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.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.yml
    elasticsearch.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.yml
    
    filebeat.prospectors: 
    - type: log
      enabled: true
      paths:
        - /opt/*.out #日志目录
    
    #日志数据输出到kafka
    output.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的演进

  • 相关阅读:
    《最优化导论》-8梯度方法
    《最优化导论》-7一维搜索方法
    《最优化导论》-6集合约束和无约束优化问题基础
    ubuntu set up 3
    ubuntu set up 2
    ubuntu set up 1
    Xavier and Kaiming Initialization
    Network Initialization: Fan-in and Fan-out
    The Softmax function and its derivative
    GNU Screen使用
  • 原文地址:https://www.cnblogs.com/welcomer/p/9989976.html
Copyright © 2011-2022 走看看