1. 程式人生 > >(1)Storm實時日誌分析實戰--專案準備

(1)Storm實時日誌分析實戰--專案準備

流程圖

這裡寫圖片描述

Flume收集Nginx的日誌,然後存在Kafka佇列中,由storm讀取Kafka中的日誌資訊,經過相關處理後,儲存到HBase和MySQL中

安裝步驟Kafka

  1. 從官網下載安裝包, 解壓到安裝目錄

    $ tar -zxvf kafka_2.10-0.8.1.1.tgz -C /work/opt/modules/
  2. 修改配置檔案
    /opt/modules/kafka_2.10-0.8.2.1/config/server.properties

    broker.id=0
    port=9092
    host.name=bigdata01.com
    num.network.threads=3
    num.io.threads=8
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    log.dirs=/work/opt/modules/kafka_2.10-0.8.2.1/log-data
    num.partitions=1
    num.recovery.threads.per.data.dir=1
    log.retention.hours=168
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    log.cleaner.enable=false
    zookeeper.connect=bigdata01.com:2181
    zookeeper.connection.timeout.ms=6000
  3. 啟動broker

    啟動之前,要先確保Zookeeper正常執行。broker啟動命令如下:

    $ nohup bin/kafka-server-start.sh config/server.properties > logs/server-start.log 2>&1 &
  4. 檢視程序是否正常:

    $ ps -ef | grep kafka
  5. 檢查埠9092是否開放:

    $ netstat -tlnup | grep 9092
  6. 建立topic

    kafka正常啟動執行後,在kafka解壓路徑下,執行命令:

    $ bin/kafka-topics.sh --create --topic
    nginxlog --partitions 1 --replication-factor 1 --zookeeper bigdata01.com:2181
  7. 檢視topic詳情:

    $ bin/kafka-topics.sh --describe --topic nginxlog --zookeeper bigdata01.com:2181
  8. 啟動console訊息生產者,傳送訊息到kafka的topic上

    $ bin/kafka-console-producer.sh --broker-list bigdata01.com:9092 --topic nginxlog

    這裡寫圖片描述

  9. 啟動console訊息消費者,讀取kafka上topic的訊息

    $ bin/kafka-console-consumer.sh --zookeeper bigdata01.com:
    2181 --topic nginxlog --from-beginning

    這裡寫圖片描述

模擬產生Nginx日誌檔案

  1. 在伺服器上建立一個工作目錄

    mkdir -p /home/beifeng/project_workspace
  2. 將data-generate-1.0-SNAPSHOT-jar-with-dependencies.jar檔案上傳到剛才建立好的工作目錄
    下載地址

  3. 執行命令

    java -jar data-generate-1.0-SNAPSHOT-jar-with-dependencies.jar 100 >> nginx.log
  4. 通過tail -f nginx.log 檢視日誌生成情況
    這裡寫圖片描述

  5. 停止產生日誌,先使用jps檢視程序pid,然後kill掉

配置Flume

  1. 編寫flume agent配置檔案flume-kafka-storm.properties
    內容如下:

    
    # The configuration file needs to define the sources, 
    
    
    # the channels and the sinks.
    
    
    # Sources, channels and sinks are defined per agent, 
    
    
    # in this case called 'agent'
    
    
    a1.sources =s1
    
    a1.channels =c1
    
    a1.sinks = kafka_sink
    
    
    # define sources
    
    a1.sources.s1.type = exec
    
    a1.sources.s1.command =tail -F /home/beifeng/project_workplace/nginx.log
    
    
    
    #define channels
    
    a1.channels.c1.type = memory
    
    a1.channels.c1.capacity = 100
    
    a1.channels.c1.transactionCapacity = 100
    
    
    
    #define kafka sinks
    
    a1.sinks.kafka_sink.type =org.apache.flume.sink.kafka.KafkaSink
    a1.sinks.kafka_sink.topic=nginxlog 
    a1.sinks.kafka_sink.brokerList=bigdata01.com:9092
    a1.sinks.kafka_sink.requireAcks=1
    a1.sinks.kafka_sink.batch=20
    
    
    
    
    # Bind the source and sink to the channel
    
    a1.sources.s1.channels = c1
    a1.sinks.kafka_sink.channel = c1
  2. 啟動flume agent

    $ bin/flume-ng agent -n a1 -c conf/ --conf-file conf/flume-kafka-storm.properties -Dflume.root.logger=INFO,console
  3. 啟動kakfa的console消費者檢視是否有日誌產生

相關推薦

1Storm實時日誌分析實戰--專案準備

流程圖 Flume收集Nginx的日誌,然後存在Kafka佇列中,由storm讀取Kafka中的日誌資訊,經過相關處理後,儲存到HBase和MySQL中 安裝步驟Kafka 從官網下載安

2Storm實時日誌分析實戰--Topology的設計

需求 日誌資料樣例: 215.187.202.215 - - [1481945172991] “GET/IBEIfeng.gif?order_id=1&orderTime=148194

Storm學習筆記1 - 初識實時流處理Storm

文章目錄 Strom是什麼 為什麼使用storm Storm發展歷史 從Twitter說起 Storm的成長 Storm和Hadoop的區別 Storm和Spar

~雜記1:makefile檔案分析

1、makefile 檔案分析(部分資訊,做出替換修改)。 2、相關注釋資訊作為經驗交流點。 3、如有註釋錯誤的請指正。 # = 是最基本的賦值 # := 是覆蓋之前的值 # ?= 是如果沒有被賦值過就賦予等號後面的值 # += 是新增等號後面的值 #c編譯器 CC=gcc #C+

[Spring實戰系列]1Eclipse下建立Spring-HelloWorld專案

1. 簡介 Spring Tool Suite 是一個Eclipse外掛,利用該外掛可以很方便的在Eclipse平臺上開發基於Spring的應用。 2. 檢視Eclipse版本 Spring Tool Suite外掛的下載需要根據Eclipse版本而定,不同版

日誌框架學習1— Java常用日誌框架介紹

日誌概述 對於一個應用程式來說日誌記錄是必不可少的一部分。線上問題追蹤,基於日誌的業務邏輯統計分析等都離不日誌。java領域存在多種日誌框架,目前常用的日誌框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul。

機器學習筆記1 感知機演算法 之 實戰

我們在上篇筆記中介紹了感知機的理論知識,討論了感知機的由來、工作原理、求解策略、收斂性。這篇筆記中,我們親自動手寫程式碼,使用感知機演算法解決實際問題。 先從一個最簡單的問題開始,用感知機演算法解決OR邏輯的分類。 import numpy as np import matplotlib.pyplot as

用Java寫編譯器1- 詞法和語法分析

# 詞法和語法分析器構建 ## ANTLR簡介 ANTLR全稱ANother Tool for Languate Recognition,是基於LL(*)演算法實現的語法分析器生成器和詞法分析器生成器,由舊金山大學的Terence Parr博士等人於1989年開始使用java編寫。截止到目前,ANTLR已

ABP入門系列1——通過模板建立MAP版本專案

一、從官網建立模板專案 依次按下圖選擇: 輸入驗證碼開始下載 下載提示: 二、啟動專案 使用VS2015開啟專案,還原Nuget包: 設定以Web結尾的專案,設定為啟動專案: 開啟Web.config,修改連線字串。(因為我本地裝的sqlserver是例項是.sqlexpress,所以需要

Spark SQL 筆記(10)——實戰網站日誌分析1

1 使用者行為日誌介紹 1.1 行為日誌生成方法 Nginx Ajax 1.2 日誌內容 訪問的系統屬性:作業系統、瀏覽器 訪問特徵:點選的 url、從哪個url 跳轉過來的(referer)、頁

分散式日誌分析系統構建實戰——Storm

介紹 Storm是一個實時平行計算系統。對比與經典的hadoop,storm的優勢就在於實時性。簡單來說,hadoop可以用來對海量的資料進行批量的處理,但這些資料是靜態的,處理過程中不會對新產生的資料進行處理。當處理完之後,hadoop程序就可以結束,並輸出

ELK服務搭建開源實時日誌分析ELK平臺部署低版本—簡單部署

搜索引擎 應用程序 官方網站 服務器 安全性 elk 開源實時日誌分析ELK平臺部署日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以了解服務器的負荷,性能安全性,從而及時采取措施糾正

R語言實戰 - 基本統計分析1- 描述性統計分析

4.3 summary eas 方法 func -- 4.4 1.0 6.5 > vars <- c("mpg", "hp", "wt") > head(mtcars[vars]) mpg hp wt Maz

大資料離線---網站日誌流量分析系統1---簡介及框架

本次介紹網站日誌流量分析系統,首先是簡介和架構。後面會對架構中需要的每個模組的進行逐個介紹。本篇主要分為兩個部分 網站日誌流量分析系統簡介 整體技術流程和架構 1. 網站日誌流量分析系統簡介 1.1點選流資料模型 點選流的概念 點選流( Cl

【Python3實戰Spark大資料分析及排程】Spark Core 課程筆記1

目錄 架構 注意事項 Spark Core: Spark 核心進階 Spark 核心概念 Application User program built on Spark. Consists of a driver progr

ELK實時日誌分析平臺環境部署--完整記錄ElasticSearch+Logstash+Kibana

在日常運維工作中,對於系統和業務日誌的處理尤為重要。今天,在這裡分享一下自己部署的ELK(+Redis)-開源實時日誌分析平臺的記錄過程(僅依據本人的實際操作為例說明,如有誤述,敬請指出)~================概念介紹================日誌主要包括系統日誌、應用程式日誌和安全日誌。系

日誌服務Python消費組實戰實時跨域監測多日誌庫資料

解決問題 使用日誌服務進行資料處理與傳遞的過程中,你是否遇到如下監測場景不能很好的解決: 特定資料上傳到日誌服務中需要檢查資料內的異常情況,而沒有現成監控工具? 需要檢索資料裡面的關鍵字,但資料沒有建立索引,無法使用日誌服務的告警功能? 資料監測要求實時性(<5秒,例如Web訪問5

惡意程式碼分析實戰 Lab09-011

分析報告: 1.     樣本概況 病毒名稱為Lab09-01.exe,使用Microsoft Visual C++ v6.0編譯。 1.1樣本資訊 病毒名稱:Lab09-01.exe MD5值: B94AF4A4D4AF6EAC81FC135ABDA1C40C SHA1值

python實戰1:簡單的資料採集與分析

最近忙著做畢業設計,最愛的python當然成了我的切入點。因此特意找了一個專案來練練手,專案很簡單,就是利用python爬取資料,然後再利用matplotlib進行資料視覺化。 專案設計:爬蟲爬取資料並存入mongodb資料庫中,然後再編寫指令碼讀取資料,進行

日誌服務Python消費組實戰實時跨域監測多日誌庫數據

多個 poi oba 監測 ogg lse lis sel 有效 解決問題使用日誌服務進行數據處理與傳遞的過程中,你是否遇到如下監測場景不能很好的解決: 特定數據上傳到日誌服務中需要檢查數據內的異常情況,而沒有現成監控工具?需要檢索數據裏面的關鍵字,但數據沒有建立索引,無法