検索
ニュース

第2回 マシンデータの検索からヒントを可視化する方法実践 Splunk道場(4/5 ページ)

前回はマシンデータを活用することのメリットを紹介しました。今回はSplunkを通じて多種多様なマシンデータから知見を得ていくための操作を解説します。

Share
Tweet
LINE
Hatena

レポートを作成してみる

 サンプルデータを利用したレポートを作成してみよう。今回のサンプルデータではWebのショッピングカートアクセス履歴と認証ログが存在している。そのため、概要と詳細を把握できるように、以下のレポートを個々に作成してみる。

1「Webショッピング状況の把握」

1.1:国別のアクセス履歴

1.2:日別ショッピングカートの状況

1.3:曜日別購買製品状況

1.4:売上金額

2「セキュリティ状況の把握」

2.1:認証エラー状況

2.2:認証エラーユーザー名

 順を追って作成するので、以下の6つのレポートを別々のレポートとして保存していただきたい。

1.1:国別アクセス履歴

 どの国からアクセスしているのかを、IPアドレスごとに表示し、地図上へマッピングする。Webのアクセスログを指定しchartコマンドで件数を割り出し、地図上にマッピングする。これを画面上部から、「名前をつけて保存」→「レポート」として保存し、レポートタイトルは任意で設定する。


sourcetype=access_*  | chart count by clientip | iplocation clientip | geostats count by Country

Splunk

1.2:日別ショッピンカードの状況

 ショッピングカートは、このログでは「action」というフィールドが、どのようなアクションを起こしたのかを記録している。timechartコマンドを利用して日別状況からactionを指定し、時系列グラフを保存する。


sourcetype=access_*  | timechart count by action usenull=f

1.3:曜日別購買製品状況

 chartコマンドのX軸を製品名、Y軸を日付とするためにoverとbyを利用し、縦棒グラフを保存。


sourcetype=access_* | chart count(productId) over productId by date_wday

1.4:売り上げ状況

 統計のstatsコマンドで製品の価格と購買数を製品名ごとに抽出し、製品単価と売上数の掛け合わせから合計金額を算出する。それをフォーマット変換して金額順にソートし、レポートとして保存。


sourcetype=access_* status=200 
| stats count AS views avg(price) as price count(eval(action="purchase")) AS purchases by productId 
| eval TotalRevenue=(price*purchases) 
| fieldformat TotalRevenue="$"+tostring(TotalRevenue,"commas") 
| table productId views price purchases TotalRevenue 
| sort - TotalRevenue

 ログデータ内には、productIdはあっても製品価格や製品名情報は存在しない。そのためデータをより潤沢にするため、ProductIdに紐づく実際の製品名(productName)を表記することも、下記のようなlookup参照テーブルを登録することで可能だ。詳しくは、より詳細なチュートリアル(PDF)を参照いただきたい。

生データ lookup参照テーブル
productId clientip status method productId productName
111 192.168.10.1 200 GET 111 USBメモリ
222 192.168.10.2 404 GET 222 電源TAP
333 192.168.10.3 503 GET 333 SDカード
444 192.168.10.4 404 GET 444 マウス

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る