快速構建大數據存儲分析平台-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的演進


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM