天天看點

日志服務+流計算+RDS 統計網站通路日志

本期分享專家:黃莉娟,具有多年前端開發經驗,曾就職于天基,在阿裡雲從事大資料産品、日志服務、消息産品的技術支援,喜歡研究新技術分享新産品。我的口号“我就愛玩新産品!别叫我停下來”

日志服務+流計算+RDS 統計網站通路日志

衆所周知,在阿裡雲所有的産品裡,很多産品不需要寫代碼也能做出炫酷的demo,操作簡單,容易上手。最近流計算開始公測,所謂世間萬事萬物,我們都要挑點來嘗嘗,拿它做個什麼demo捏,在思考了四分之一柱香之後,我決定寫一個先有雞還是先有蛋的故事。

是的,寫個自己統計自己通路日志的網站,是不是為了做demo完全不要節操!

這個demo很适合初學者!

<b>step 1、準備工作日志生成過程</b>

首先把/etc/nginx/nginx.conf 配置一下,搞個跳轉

location / {

proxy_pass http://127.0.0.1:3000;

}

一會3000這個端口我們用nodejs起個http server,這樣通路根目錄就跳轉到我的nodejs網站了,為了要個nginx的日志,我不擇手段,為什麼要統計nginx日志呢,因為有個現成的介紹,不會的請戳這裡https://help.aliyun.com/document_detail/28988.html

配置好以後,sls的控制台看,日志長這樣

日志服務+流計算+RDS 統計網站通路日志

<b>step 2、在rds建結果表</b>

然後我們用流計算把日志服務的資料挖出來丢到rds,網站讀rds搞點圖圖粗來,刷一下rds變一下,是不是很想給我的腦袋來上一槍!

先給rds建兩張表,我們會把結果放在這兩張表裡,統計日志的網站讀這兩張表就行了。為了友善簡單兩張表建一樣的格式好了。

<b>step 3、使用流計算計算日志資料并輸出到rds表</b>

開通流計算,開通好以後,可以看見控制台長這樣:

日志服務+流計算+RDS 統計網站通路日志

把裡面sql摳出來放在這:

---------------------------------------我是stream sql的分割線-------------------------------------------------------

<b>--1.首先定義下資料源的表,這裡我們用type='loghub',直接就能把loghub中的資料讀出來</b>

<b></b>

<b>--2.然後定義個兩個rds的表type='mysql' 作為輸出結果表</b>

<b>-- 3. 定義下計算邏輯</b>

---------------------------------------我還是stream sql的分割線-------------------------------------------------------

注意下!!!sql裡面我用了 prop_get('__time__'),這個是loghub的系統字段時間__time__,必須通過消息屬性傳遞進來,普通的日志服務的key寫在資料源的表就可以了,系統字段不用寫,配置下任務參數,直接用,可以參考下http://gitlab.alibaba-inc.com/galaxy/galaxy/wikis/prop-functions

任務參數這麼寫:

galaxy.input.props.keylist=timestamp,__time__

截個圖。最後一行紅圈圈是我加的:

日志服務+流計算+RDS 統計網站通路日志

然後輕輕的點選下“上線”,上線成功後,再輕輕的點選下“運維”,進去把任務啟動起來。

啟動好之後,看起來是醬紫滴,輸入rps是有東西的。當然之是以有輸入,是因為我通路了一下我的網站了~~

日志服務+流計算+RDS 統計網站通路日志

<b>step 4、在網站上的展示效果,刷一刷就會看到變化</b>

來刷刷我們的網站,就是我用nodejs啟動的在3000端口,nginx配置了跳轉的那一個咯。

-- 先看看網站的pv統計,是流計算的這句sql搞出來的

insert into sls_event select

prop_get('__time__') as time,

'pv' as event_type,

'get' as event_value,

count(1) as value

from source_test_sls_galaxy

group by prop_get('__time__');

日志服務+流計算+RDS 統計網站通路日志

-- 再看看網站的狀态碼統計,是流計算的這句sql搞出來的

insert into sls_status select

'status' as event_type,

status as event_value,

group by prop_get('__time__'),status;

日志服務+流計算+RDS 統計網站通路日志

當然,刷一下網站,資料就會變一下!

是不是吼神奇!

<b>"我就愛玩新産品!别叫我停下來!"</b>

本期分享結束啦 ,想讓雲享團分享哪些技術,歡迎大家留言讨論,我們下期再見。<b></b>