SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Visualize  NGiNX  log
with  GoogleMap
前置き
purpose	
 
! NGiNXのアクセス元を地図にマッピングしたい
!   ついでにアクセス元ごとの平均レスポンスタイ
ムとかも
!   こんなかんじ
概要
要件
!   Internetからのアクセスを位置データに落落とし
こむ
!   ⼤大量量のログデータをサマリーし、地域毎の集計
をとる
!   それをGoogleMapにレンダリングし、可視化
要件への回答
!   どうやって位置データに絞り込む?
⇒ngx_̲http_̲geoip_̲module
!   テキストログの集計⽅方法
⇒Google  BigQuery
!   可視化(レンダリング⽅方法)
⇒GeoFUSE
GeoFUSE?
!   GPLライセンスのフリーウェア
!   ソース⇒  mbasa/GeoFuse  ·∙  GitHub  :  
https://github.com/mbasa/geofuse
!   デモ⇒  GeoFUSE  :  
http://geofuse.georepublic.net/geofuse/
!   統計データを地図上に簡単に可視化できる
!   ブラウザでアクセス可能(GUI)
画⾯面
詳細
overwiew	
 
GeoFUSE	
 
Big QueryNGiNX
1.Logging
2.Transfer
3.Query
4.CSV
1.Logging
! NginxのGeoIPモジュールを有効化する
! GeoIP  C  API及びGeoIP  Datafileをインストール
! nginxを-‐‑‒-‐‑‒with-‐‑‒http_̲geoip_̲moduleオプション
を付けてコンパイル
! Nginx.confにGeoIP  Datafileを指定
!   ロードバランサー配下の場合、GeoIPにリアルIP
を通知する
http {
geoip_country /usr/local/share/GeoIP/GeoIP.dat;
geoip_city /usr/local/share/GeoIP/GeoIPCity.dat;
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
log_format ltsv "geoip_country_name:" "$geoip_city_country_name" "t" # 国名
                                                  "geoip_country_code3:" "$geoip_city_country_code3" "t" # JPN/USAとか
                                                  "geoip_city:" "$geoip_city" "t" # 都市名
                                                  "geoip_latitude:" "$geoip_latitude" "t" # 緯度度
                                                  "geoip_longitude:" "$geoip_longitude" # 軽度度
                                                  ;
}
2.Transfer
! Nginxのアクセスログを、BigQueryに送る
! fluentdプラグインを使⽤用
! in_̲tail
!   fluent-‐‑‒plugin-‐‑‒google-‐‑‒cloud
! NGiNXアクセスログはltsv形式
! BigQueryにはテキストフィールドにjsonテキス
トをそのまま⼊入れる(投⼊入時スキーマ定義しない)
3.Query
! textPayloadフィールドにあるテキストに対し、
解析タイミングでjsonスキーマを定義する
!   JSON_̲EXTRACT関数は⽂文字列列型、
JSON_̲EXTRACT_̲SCALARは数値型で出⼒力力
!   集計関数(SUM,AVG,MIN,MAX)も使える
SELECT
ROW_NUMBER() OVER (ORDER BY count DESC) AS ID,
COUNT (*) AS count,
JSON_EXTRACT_SCALAR(textPayload,'$.geoip_longitude') AS lon,
JSON_EXTRACT_SCALAR(textPayload,'$.geoip_latitude') AS lat,
AVG(JSON_EXTRACT_SCALAR (textPayload,'$.response_time')) AS avelage_time
FROM [HOGE.nginx_access_20150402]
GROUP BY lat,lon
ORDER BY count DESC
4.csv
! BigQueryの解析結果をcsvダウンロード
!   それをGeo-‐‑‒FUSEに喰わせる
!   Geo-‐‑‒FUSEデータフォーマット
!   ヘッダ必須
!   先頭カラムはID連番
!   最終カラムにlon.latを置く(順番重要)
ID,count,avelage_time,lon,lat
1,3135686,0.2498652794178637,139.6900,35.6900
2,1596097,0.2536400474791719,139.7514,35.6850
3,182082,0.23747259653015085,135.5200,34.6864
4,117914,0.22794176617882336,121.5250,25.0392
最後に
何が可視化できたのか?
!   ユーザーのアクセス元が判る
⇒リアル店舗とECサイトのアクセス元には、密
接な関係がある
⇒広告宣伝を出す地域の選定(テレビと密接した
IP物とか)
!   ロケーション毎のアクセス速度度
⇒海外へのレスポンスは、思ったより遅くない
(Wi-‐‑‒fiだから?)
以上

Más contenido relacionado

La actualidad más candente (6)

FOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in JapaneseFOSS4G 2009 Tokyo (R and Geo) in Japanese
FOSS4G 2009 Tokyo (R and Geo) in Japanese
 
Foss4 g presen_android
Foss4 g presen_androidFoss4 g presen_android
Foss4 g presen_android
 
About qzss and gps
About qzss and gpsAbout qzss and gps
About qzss and gps
 
Python geohash 紹介
Python geohash 紹介Python geohash 紹介
Python geohash 紹介
 
FOSS4Gで地理空間情報もかんたん
FOSS4Gで地理空間情報もかんたんFOSS4Gで地理空間情報もかんたん
FOSS4Gで地理空間情報もかんたん
 
Code for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めようCode for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めよう
 

Similar a Visualize NGiNX log with GoogleMap

地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます
boiledorange73
 
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
Yasunori Kirimoto
 
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok
和人 青木
 
地理学卒論・修論生のためのQGIS講座_座学編
地理学卒論・修論生のためのQGIS講座_座学編地理学卒論・修論生のためのQGIS講座_座学編
地理学卒論・修論生のためのQGIS講座_座学編
Inoshachu, NPO
 
Html5 canvasとgoogle maps apiで遊んでみた
Html5 canvasとgoogle maps apiで遊んでみたHtml5 canvasとgoogle maps apiで遊んでみた
Html5 canvasとgoogle maps apiで遊んでみた
真吾 森
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折
Hironov OKUYAMA
 
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
中洞 友希
 
Esj59 qgis handson-1
Esj59 qgis handson-1Esj59 qgis handson-1
Esj59 qgis handson-1
OSgeo Japan
 

Similar a Visualize NGiNX log with GoogleMap (20)

地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます
 
Osckyoto2012 osgeojp foss4g
Osckyoto2012 osgeojp foss4gOsckyoto2012 osgeojp foss4g
Osckyoto2012 osgeojp foss4g
 
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
 
MapGuide+Geopaparazziで作るスマートフォンソリューション
MapGuide+Geopaparazziで作るスマートフォンソリューションMapGuide+Geopaparazziで作るスマートフォンソリューション
MapGuide+Geopaparazziで作るスマートフォンソリューション
 
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok
 
FOSS4Gを利用したWebでの地理空間情報公開入門
FOSS4Gを利用したWebでの地理空間情報公開入門FOSS4Gを利用したWebでの地理空間情報公開入門
FOSS4Gを利用したWebでの地理空間情報公開入門
 
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson
 
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
 
121012 gisa qgis_handson
121012 gisa qgis_handson121012 gisa qgis_handson
121012 gisa qgis_handson
 
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
 
Googlemaps tutorial
Googlemaps tutorialGooglemaps tutorial
Googlemaps tutorial
 
Kof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationKof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentation
 
Gdg geo2
Gdg geo2Gdg geo2
Gdg geo2
 
地理学卒論・修論生のためのQGIS講座_座学編
地理学卒論・修論生のためのQGIS講座_座学編地理学卒論・修論生のためのQGIS講座_座学編
地理学卒論・修論生のためのQGIS講座_座学編
 
Html5 canvasとgoogle maps apiで遊んでみた
Html5 canvasとgoogle maps apiで遊んでみたHtml5 canvasとgoogle maps apiで遊んでみた
Html5 canvasとgoogle maps apiで遊んでみた
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折
 
20130417_和歌山大学授業_VGIのチカラ
20130417_和歌山大学授業_VGIのチカラ20130417_和歌山大学授業_VGIのチカラ
20130417_和歌山大学授業_VGIのチカラ
 
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
【IISAテクニカルカンファレンス2014】 オープンデータ×オープンソース ~WEB上でのインタラクティブ可視化手法について~
 
Esj59 qgis handson-1
Esj59 qgis handson-1Esj59 qgis handson-1
Esj59 qgis handson-1
 
2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a
 

Visualize NGiNX log with GoogleMap