■ はじめに
Sumo LogicにALLIGATEのログを自動的に取り込む方法を説明します。
■ 準備するもの
- パソコン
- ALLIGATEの組織管理権限のあるユーザのユーザIDとパスワード
- Sumo Logicのアカウント情報
■ ログの取得について
ここでのログの取得については、ALLIGATE WEBアプリ向けAPIを実行して取得する想定となります。
また、ALLIGATE WEBアプリ向けAPIを使用する場合は、ログの取得、ログの加工、ログの保存までを、お客様で構築する必要がございます。
【対象のAPI】
- 照合ログ取得API
- 操作ログ取得API
※ALLIGATE WEBアプリ向けAPIをご利用になる場合は、以下の問い合わせから申し込みください。
https://support.alligate.me/hc/ja/requests/new
■ ログの加工について
Sumo Logicで取り込める形式にログを加工する必要があります。
※ALLIGATE WEBアプリ向けAPIにてログを取得する場合の説明となります。
ログ取得APIの成功レスポンスのイメージ:
{
"message": "Success",
"statementId": "03ed6935-17d3-4093-ad8f-eba02f6cb94b",
"startRecord": 1,
"endRecord": 3,
"maxRecords": 3,
"logs": [
{
"timestamp": 1592350985,
"userId": "allighanako",
"userName": "アリゲ花子",
"userFurigana": "ありげ はなこ",
"deviceId": "1000000000000001",
"deviceType": 1,
"gateId": "gateid202003",
"gateName": "東京_事務所入口",
"accessLogId": "000",
"logLabel": "NFCカードが認証されました",
"errorId": "",
"sequenceNo": 10,
"voltage": 12.03
},
{
"timestamp": 1592350638,
"userId": "allighanako",
"userName": "アリゲ花子",
"userFurigana": "ありげ はなこ",
"deviceId": "2000000000000002",
"deviceType": 1,
"gateId": "gateid202003",
"gateName": "東京_事務所入口",
"accessLogId": "000",
"logLabel": "NFCカードが認証されました",
"errorId": "",
"sequenceNo": 9,
"voltage": 12.03
},
{
"timestamp": 1592350635,
"userId": "alligkousaku",
"userName": "アリゲ耕作",
"userFurigana": "ありげ こうさく",
"deviceId": "0000000000000000",
"deviceType": 1,
"gateId": "gateid202003",
"gateName": "東京_事務所入口",
"accessLogId": "000",
"logLabel": "NFCカードが認証されました",
"errorId": "0000",
"sequenceNo": 8,
"voltage": 12.03
}
]
}
ログ取得APIの成功レスポンスから「logs」を取り出し、配列の各要素を1行にまとめてください。
{"timestamp":1592350985,"userId":"allighanako","userName":"アリゲ花子","userFurigana":"ありげ はなこ","deviceId":"1000000000000001","deviceType":1,"gateId":"gateid202003","gateName":"東京_事務所入口","accessLogId":"000","logLabel":"NFCカードが認証されました","errorId":"","sequenceNo":10,"voltage":12.03}
{"timestamp":1592350638,"userId":"allighanako","userName":"アリゲ花子","userFurigana":"ありげ はなこ","deviceId":"2000000000000002","deviceType":1,"gateId":"gateid202003","gateName":"東京_事務所入口","accessLogId":"000","logLabel":"NFCカードが認証されました","errorId":"","sequenceNo":9,"voltage":12.03}
{"timestamp":1592350635,"userId":"alligkousaku","userName":"アリゲ耕作","userFurigana":"ありげ こうさく","deviceId":"0000000000000000","deviceType":1,"gateId":"gateid202003","gateName":"東京_事務所入口","accessLogId":"000","logLabel":"NFCカードが認証されました","errorId":"0000","sequenceNo":8,"voltage":12.03}
ログを保存する時の拡張子と文字コードは、下記の通りです。
拡張子:json
文字コード:UTF-8(BOMなし)
■ Sumo Logicアプリにログイン
Sumo Logicアプリにログインしてください。
以降の説明は、Sumo Logicでの操作となります
■ ログを自動的に表示する設定
Sumo Logに取り込んだログは、通常Messageというフィールドにすべて格納されます。
この設定をすると、ログを検索したときに自動的にALLIGATEのフィールドが表示されます。
※ALLIGATE WEBアプリ向けAPIにてログを取得する場合の説明となります。
「Manage Data」⇒「Logs」をクリックしてください。
「Field Extraction Rule」をクリックしてください。
「+ Add Rule」をクリックしてください。
Rule Nameに下記を入力してください。
照合ログの場合:「access_logs_json」
操作ログの場合:「owner_logs_json」
Scopeに下記を入力してください。
照合ログの場合:「_sourceCategory=alligate/accesslog/json」
操作ログの場合:「_sourceCategory=alligate/ownerlog/json」
Parse Expressionに下記を入力してください。
照合ログの場合:
json "timestamp", "userId", "userName", "userFurigana", "deviceId", "deviceType", "gateId", "gateName", "accessLogId", "logLabel", "errorId", "sequenceNo", "voltage" as unixTime, userId, userName, furigana, deviceId, deviceType, gateId, gateName, logId, logLabel, errorId, sequenceNo, voltage
| formatDate(toLong(unixTime*1000), "yyyy/MM/dd HH:mm:ss") as timestamp
| parseDate(timestamp, "yyyy/MM/dd HH:mm:ss", "Asia/Tokyo") as longTimestamp
操作ログの場合:
json "timestamp","userId","name","logType","logMessage" as unixtime, userId, name, logType, message
| concat(message, ":") as logmessage
| concat("msg=", replace(logmessage, ":", ":")) as logmessage
| parse field=logmessage "msg=*:" as logmessage
| formatDate(toLong(unixTime*1000), "yyyy/MM/dd HH:mm:ss") as timestamp
| parseDate(timestamp, "yyyy/MM/dd HH:mm:ss", "Asia/Tokyo") as longTimestamp
保存します。「Save」をクリックしてください。
■ ログの自動取り込み設定
ALLIGATEのログを自動で取り込む設定を行います。「Manage Data」をクリックしてください。
「Collection」をクリックしてください。
「Setup Wizard」をクリックしてください。Setup Wizardのダイアログが表示されます。
「Set Up Streaming Date」をクリックしてください。
「Your Custom App」をクリックしてください。
「Local File」をクリックしてください。
お使いのPCに合わせてOSを選択してください。
Sumo Logic Collectorアプリをダウンロードしてください。
Sumo Logic Collectorアプリのインストーラーを実行してください。
Sumo Logic CollectorアプリのSetup Wizardが起動します。「Next」をクリックしてください。
「I accept the agreement」を選択し、「Next」をクリックしてください。
インストール先を入力し、「Next」をクリックしてください。
「Next」をクリックしてください。
インストールが開始されます。
インストールが完了しました。「Next」をクリックしてください。
「Token」を選択し、「Next」をクリックしてください。
SumoLogicアプリに戻り、アクセストークンをコピーします。「Copy」をクリックしてください。
アクセストークンを入力し、「Next」をクリックしてください。
初期化が開始されます。
Sumo Logic Collectorアプリのインストールが完了しました。「Finish」をクリックしてください。
Sumo Logicアプリに戻り、「Continue」をクリックしてください。
「Source Category」を入力します。
APIで取得したログ(JSON)を取り込む場合:
照合ログ:alligate/accesslog/json
操作ログ:alligate/ownerlog/json
CSVを取り込む場合:
照合ログ:alligate/accesslog
操作ログ:alligate/ownerlog
ログを取り込むパスを入力します。
APIで取得したログ(JSON)を取り込む場合:[任意のパス]*.json
CSVを取り込む場合:[任意のパス]*.csv
次に「Add to List」をクリックしてください。
「Continue」をクリックしてください。
設定か開始されます。最大15分くらい時間がかかります。
設定が完了しました。「Exit Setup Wizard」をクリックしてください。