狠狠撸

狠狠撸Share a Scribd company logo
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 ?Data?leをインストール
! nginxを-‐??-‐??with-‐??http_?geoip_?moduleオプション
を付けてコンパイル
! Nginx.confにGeoIP ?Data?leを指定
! ? ロードバランサー配下の場合、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に送る
! ?uentdプラグインを使?用
! in_?tail
! ? ?uent-‐??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-‐???だから?)
以上

More Related Content

What's hot (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
Masafumi Okada
?
About qzss and gps
About qzss and gpsAbout qzss and gps
About qzss and gps
kuma_hati
?
Python geohash 紹介
Python geohash 紹介Python geohash 紹介
Python geohash 紹介
Hiroaki Kawai
?
贵翱厂厂4骋で地理空间情报もかんたん
贵翱厂厂4骋で地理空间情报もかんたん贵翱厂厂4骋で地理空间情报もかんたん
贵翱厂厂4骋で地理空间情报もかんたん
Kosuke Asahi
?
Code for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めようCode for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めよう
Kazunari Takaki
?
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
Masafumi Okada
?
About qzss and gps
About qzss and gpsAbout qzss and gps
About qzss and gps
kuma_hati
?
贵翱厂厂4骋で地理空间情报もかんたん
贵翱厂厂4骋で地理空间情报もかんたん贵翱厂厂4骋で地理空间情报もかんたん
贵翱厂厂4骋で地理空间情报もかんたん
Kosuke Asahi
?
Code for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めようCode for Fukuoka 公園データを集めよう
Code for Fukuoka 公園データを集めよう
Kazunari Takaki
?

Similar to Visualize NGiNX log with GoogleMap (20)

地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
boiledorange73
?
Osckyoto2012 osgeojp foss4g
Osckyoto2012 osgeojp foss4gOsckyoto2012 osgeojp foss4g
Osckyoto2012 osgeojp foss4g
Takashige Nakagawa
?
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
Yasunori Kirimoto
?
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
Hirofumi Hayashi
?
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok
和人 青木
?
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
Kosuke Asahi
?
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson
Takayuki Nuimura
?
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
Yoichi Seino
?
121012 gisa qgis_handson
121012 gisa qgis_handson121012 gisa qgis_handson
121012 gisa qgis_handson
Takayuki Nuimura
?
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
Kohei Otsuka
?
Kof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationKof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentation
Yuichiro Nishimura
?
Gdg geo2
Gdg geo2Gdg geo2
Gdg geo2
Kentaro Ishimaru
?
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
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
?
20130417冲和歌山大学授业冲痴骋滨のチカラ
20130417冲和歌山大学授业冲痴骋滨のチカラ20130417冲和歌山大学授业冲痴骋滨のチカラ
20130417冲和歌山大学授业冲痴骋滨のチカラ
Taichi Furuhashi
?
【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
?
2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a2012 06 30_osm-ws_1a
2012 06 30_osm-ws_1a
Tom Hayakawa
?
地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
地理空间と翱厂骋别辞と笔辞蝉迟骋滨厂とを简単に绍介してみます
boiledorange73
?
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
はじめてみよう地図を使ったデータビジュアライゼーション入門 ~ FOSS4Gとオープンデータで可視化した地図を公開 ~
Yasunori Kirimoto
?
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
惭补辫骋耻颈诲别+骋别辞辫补辫补谤补锄锄颈で作るスマートフォンソリューション
Hirofumi Hayashi
?
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok
和人 青木
?
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
贵翱厂厂4骋を利用した奥别产での地理空间情报公开入门
Kosuke Asahi
?
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson
Takayuki Nuimura
?
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介FOSS4Gを手軽に体験できるOSGeo Liveの紹介
FOSS4Gを手軽に体験できるOSGeo Liveの紹介
Yoichi Seino
?
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)FOSS4Gだらけの古地図Platform Maplatのご紹介 (OFF4G 2016)
FOSS4Gだらけの 古地図Platform Maplatのご紹介 (OFF4G 2016)
Kohei Otsuka
?
Kof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentationKof110912osgeojpfoss4gpresentation
Kof110912osgeojpfoss4gpresentation
Yuichiro Nishimura
?
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
地理学卒论?修论生のための蚕骋滨厂讲座冲座学编
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
?
20130417冲和歌山大学授业冲痴骋滨のチカラ
20130417冲和歌山大学授业冲痴骋滨のチカラ20130417冲和歌山大学授业冲痴骋滨のチカラ
20130417冲和歌山大学授业冲痴骋滨のチカラ
Taichi Furuhashi
?
【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
?

Visualize NGiNX log with GoogleMap