- ナレッジ
- その他
Splunkとmmdb形式データの連携 ~設定とサーチコマンド実例を解説~
- 目次
SplunkからSURFPOINT for GeoIP2モジュールmmdb形式を利用する方法とその利点について実例を交えながら解説します。
Splunkとは
Splunkはログ等のデータ分析において、データの収集・分析・可視化を総合的に扱うことができるデータプラットフォームです。詳細はスプランク|データを実行に変える (splunk.com)を確認ください。
SURFPOINT for Splunkとは
Splunk上でmmdb形式のSURFPOINTを利用するためのアドオンです。Geolocation Technologyが提供する「SURFPOINT」はIPアドレスに対して国や都道府県市区町村、企業名や業種、回線といった計55種類の地域情報や組織情報、接続環境を付加することが出来るサービスです
iplocationとの違いについて
Splunkには「iplocation」というコマンドがあり、Splunkに無料で同梱されているデータベースファイル(dbip-city-lite.mmdb)を検索し、地理情報を得ることができます。iplocation – Splunkのドキュメント
iplocationの場合、City, Continent, Country, MetroCode, Region, Timezone, 緯度経度の取得が可能ですが、SURFPOINT for SplunkではSURFPOINTに搭載されているデータを参照することが可能です。搭載データの中にはTor VPNなどの匿名性の高いIPを判断することもできるため、金融機関様などで不正検知を目的とした分析でも多くご利用いただいています。
SURFPOINT搭載データ:IP GEOLOCATION TECHNOLOGY SURFPOINT™ とは|SURFPOINT™
データ項目
Splunkで利用するまでの設定
SURFPOINT for Splunkを設定するまでの流れを説明します。Splunkのインストールされたサーバをお持ちであることを前提に手順を記載いたします。※Splunk cloudでの対応は現在未対応となります。
1.インストールパスの確認
splunkがインストールされているパスを確認します。
手順:splunk管理画面の 上メニュー> 設定 > サーバ設定 > 全般設定のインストールパス
※以下、$SPLUNK_HOME はこのインストールパスに読み替えてください。
例: $SPLUNK_HOME/etc/apps/surfpoint
2.SURFPOINT for Splunkのインストール
※splunk管理画面から「Appの管理」の「ファイルからAppをインストール」へ移動
※surfpoint-for-splunk_xxx.tar.gz をアップロード(xxxは数字)
当該ファイルはsplunkbaseからのご提供はなく、サービス契約時にご提供可能なアプリケーションです。
3.mmdbファイルの設置
別途SURFPOINTのmmdbファイルが必要です。mmdbを設置する場所をsplunkユーザーに読み取り権限があるパスの中から決定し、ファイルを配置します。この時mmdbファイルにsplunkユーザーへの読み取り権限を付与する必要があります。
今回の設置例では”/home/splunk/SURFPOINT.mmdb”に設置した場合を記載しています。
4.設定ファイルの編集
$SPLUNK_HOME/etc/apps/surfpoint/bin/config.json を編集します。
config.json の mmdb_path にmmdbファイルのファイルパスを絶対パスで指定する必要があります。 mmdbファイルのファイルパスはお客様の環境に応じて適宜変更ください。
設定例:
{
“mmdb_path”: “/home/splunk/SURFPOINT.mmdb”
}
コマンドと取得可能な情報について
SURFPOINT for Splunkのインストールが完了しますと「surfpoint」が追加になります。lookup surfpoint ipaddrのようにlookupコマンドと併せて利用可能です。(詳細はSuplunkでの利用方法によります。)
SURFPOINTの代表的なデータとして、下表の項目が追加となります。
項目名 | 概要 |
anonymous_network.category | 匿名サービス属性 |
anonymous_network.info | 匿名付属情報(サービスURLなど) |
anonymous_network.score | 匿名サービスの危険度 |
city.cf | 市区町村CF値 |
city.code | 市区町村コード |
city.names.en | 市区町村英語表記 |
city.names.ja | 市区町村名日本語表記 |
continent.code | 大陸コード |
continent.geoname_id | 大陸番号 |
continent.names.en | 大陸英語名 |
continent.names.ja | 大陸日本語名 |
country.geoname_id | 国番号 |
country.iso_code | 国コード |
country.names.en | 国名英語表記 |
country.names.ja | 国名日本語表記 |
line.cf | 回線CF値 |
line.code | 回線コード |
line.domain | ドメイン名 |
line.domain_type | ドメインタイプ |
line.proxy | プロキシ判定 |
location.area_code | 市外局番 |
location.bcflag | 企業フラグ |
location.latitude | 緯度 |
location.longitude | 経度 |
location.time_zone | タイムゾーン |
organization.address.en | 組織住所英語表記 |
organization.address.ja | 組織住所日本語表記 |
organization.capital | 資本金コード |
organization.city_code | 組織市区町村コード |
organization.code | 組織コード |
organization.date | 組織設立年月日 |
organization.domain | 組織ドメイン名 |
organization.domain_type | 組織ドメインタイプ |
organization.employees | 従業員数コード |
organization.fax | FAX番号 |
organization.gross | 売上高コード |
organization.independent | 自営業フラグ |
organization.industrial_category.l | 業種大分類 |
organization.industrial_category.m | 業種中分類 |
organization.industrial_category.s | 業種小分類 |
organization.industrial_category.t | 業種細分類 |
organization.ipo | 上場区分フラグ |
organization.latitude | 組織緯度 |
organization.longitude | 組織経度 |
organization.names.en | 組織名英語表記 |
organization.names.ja | 組織名日本語表記 |
organization.office | 本支店フラグ |
organization.pref_code | 組織都道府県コード |
organization.president | 代表者名 |
organization.stock_ticker_number | 証券コード |
organization.tel | 電話番号 |
organization.url | WEBサイトアドレス |
organization.zip | 郵便番号 |
registered_country.geoname_id | 国番号(country.geoname_idと同じ) |
registered_country.iso_code | 国コード(country.iso_codeと同じ) |
registered_country.names.en | 国名英語表記(country.names.enと同じ) |
registered_country.names.ja | 国名日本語表記(country.names.jaと同じ) |
subdivisions.0.cf | 都道府県CF値 |
subdivisions.0.iso_code | 都道府県コード |
subdivisions.0.names.en | 都道府県名英語表記 |
subdivisions.0.names.ja | 都道府県名日本語表記 |
subdivisions.0.region | 地方コード |
Splunkでの利用方法
下記のサーチコマンドを行いますと、IPアドレスに対してSURFPOINTの情報が表示されます。
使用するデモデータ:Splunk’s Internal Server Logs – SAMPLE > Splunk Server
サーチコマンド: | from datamodel:”internal_server.server”| top 10 clientip |lookup surfpoint ipaddr as clientip output
都道府県ごとの構成割合を算出
コマンド:top limit=100 clientip | lookup surfpoint ipaddr as clientip |stats count by PrefJName
市区町村ごとの位置情報を判定
コマンド:top limit=100 clientip | lookup surfpoint ipaddr as clientip | geostats latfield=CityLatitude longfield=CityLongitude count
製品ページにアクセスした企業情報を集計
コマンド:uri=”/product/index.html” | stats count by clientip | lookup surfpoint ipaddr as clientip output OrgName OrgPrefCode OrgCityCode OrgZipCode OrgAddress OrgTel OrgFax StockTickerNumber OrgDate OrgPresident OrgIndustrialCategoryL OrgUrl OrgDomainName DomainType BCFlag | search BCFlag=b | sort -count
製品ページにアクセスした企業の業種大分類を判定
コマンド:uri=”/product/index.html” | stats count by clientip | lookup surfpoint ipaddr as clientip output OrgIndustrialCategoryL BCFlag | search BCFlag=b | stats count by OrgIndustrialCategoryL | sort -count
コンバージョンページにアクセスした企業を判定
コマンド:uri=”/inquiry/thanks.html” | stats count by clientip | lookup surfpoint ipaddr as clientip output CountryJName PrefJName CityJName OrgName
回線を判定
コマンド:top limit=100 clientip | lookup surfpoint ipaddr as clientip output LineJName | stats by LineJName | sort -count
まとめ
・SplunkからSURFPOINTのデータを取得できます。※SURFPOINTの利用には申し込み(有料)が必要です。SURFPOINT™
・導入はアプリをインストールして適宜設定を行うことですぐに利用できます。
・検索も簡単なサーチコマンドで利用できます。