テリロジー 「半公式」エンジニアブログ(仮)

株式会社テリロジー コンサルティング&ソリューション技術統括部

Sumo LogicでInfobloxのログを取り込んでみた ~ログアップロード編~

エンジニア部隊へのお問い合わせはこちらまで


こんにちは。CnS技術統括部のumeです。

最近話題沸騰中のSumo Logicについて記事を書きたいと思います。
手順を書いていたら思いのほか長くなってしまったので2回に分けてご紹介します。

Sumo Logicとは

ログを収集・管理することでデータの可視化・分析が行えるSaaSのサービスです。
いわゆるSIEMに分類されるサービスの1つですね。
AWSやクラウドサービスに連携するカタログが豊富で簡単にデータの可視化・分析が行えます。


Infobloxとは

DDI(DHCP/DNS/IPAM)サービスを提供するアプライアンス製品です。
VMwareやHyper-Vなどで稼働する仮想アプライアンスや
AWSやAzureなどのクラウド環境でサービスを提供するモデルもありラインナップ豊富です。
最近ではDDIのSaaSも提供する話があったりします。(この辺はまた別途)


InfobloxのログをSumo Logicに取り込んでみる

構成のイメージは以下のような感じです。
ポイントはSumo LogicとInfobloxの間に仲介するサーバがいるところです。
以降、中間サーバとしておきましょう。
Mediation Serverとか言うとちょっと違うかな。


f:id:teriwriter:20190729193729p:plain

セットアップの流れ

1) 中間サーバのセットアップ
2) Infobloxの設定(ログ)
3) 中間サーバでログ加工設定
4) コレクターのインストール



1) 中間サーバのセットアップ

まず、Infobloxからログを収集するためのサーバを準備します。
今回はVMware ESXi上に仮想マシン(Ubuntu)を立ち上げてログ収集の設定を行います。
以下のログを取得します。

  • DHCP Lease Historyデータ(APIで取得)
  • DNS Query(SCPまたはFTPで受信)


Lease Historyのデータは中間サーバから取得しにいきます。
Infoblox側でAPIを持っていますので、そこからデータを取得します。
Perl APIとREST APIの2種類具備されていますが、今回はREST APIを使用します。
とりあえずcurlが使えれば良いので、なければインストールします。
以下のディレクトリにデータを保存することにします。

~/Lease_History

データの取得は以下書式のコマンドを実行します。

curl -u [ユーザ名]:[パスワード] -H "Content-type: application/json" -X POST https://[InfobloxのIP]/wapi/v2.6/fileop?_function=getleasehistoryfiles -d '
  {
     "member": "[InfobloxのHostname]",
     "start_time":[取得したい期間の開始時刻 ※Unit-time],
     "end_time":[取得したい期間の終了時刻 ※Unit-time]
  }'


正しく実行が完了すると、tokenとデータダウンロード用のurlがOutputとして表示されます。
あとはurlを指定してダウンロードを実行します。

curl -u [ユーザ名]:[パスワード] -H "Content-type:application/force-download" -O https://[InfobloxのIP]/http_direct_file_io/req_id-DOWNLOAD-xxxx/dhcpLeaseHistory.csv.gz


ダウンロード完了後はtokenを指定して、以下書式のコマンドを実行します。

curl -u [ユーザ名]:[パスワード] -H "Content-type: application/json" -X POST https://[InfobloxのIP]/wapi/v2.6/fileop?_function=downloadcomplete -d '
  {
     "token": "[表示されたtoken]"
  }'


DNS QueryのデータはInfobloxからSCPまたはFTPで送信します。
どちらかで受け取れれば良いので、とりあえず試したい場合は準備しやすい方を選択する形でも良いです。
今回はSCPで受け取る方法にしています。
以下のディレクトリにデータを保存することにします。

~/dns_query
2)Infobloxの設定(ログ)

Infobloxからログを出力する設定を行います。
今回は「DHCP Lease History」と「DNS Query」のデータを取得しますのでそれぞれの設定をしていきます。

  • DHCP Lease Historyの有効化

InfobloxのGUIにログインします。
Data Management → DHCP と進み、画面右Toolbarの「System DHCP Properties」をクリックするとウィンドウが表示されます。

f:id:teriwriter:20190729204722p:plain


表示されたウィンドウの左上にある「Toggle Advanced Mode」をクリックします。
追加で表示されるメニューの「Logging」をクリックします。

f:id:teriwriter:20190729204734p:plain


「Enable Lease History」にチェックを入れ、画面右下の「Save & Close」ボタンを押します。
ウィンドウが閉じられると元の画面の左上にサービスの再起動を促すメッセージが表示されますので「Restart」を押してサービスを再起動させます。
これでLease Historyの設定は完了です。


  • DNS Queryの有効化

InfobloxのGUIにログインします。
Data Management → DNS と進み、画面右Toolbarの「System DNS Properties」をクリックするとウィンドウが表示されます。

f:id:teriwriter:20190729204742p:plain


表示されたウィンドウの左上にある「Toggle Advanced Mode」をクリックします。
追加で表示されるメニューの「Logging」をクリックし、「Advanced」のタブに移動します。

f:id:teriwriter:20190729204827p:plain

「Capture DNS Queries」にチェックを入れます。
「Capture DNS Responses」にチェックを入れると、Responseのログも見れるようになります。
今回は両方取得することにします。
「Capture queries/responses for all domains」を選択します。
ウィンドウの下部にある設定がログ出力先の設定です。
ここで中間サーバにログを出力する設定を行います。
設定完了後、画面右下の「Save & Close」ボタンを押します。
Lease Historyの設定時と同様にサービスの再起動を促すメッセージが表示されますので「Restart」を押してサービスを再起動させます。
これでDNS Queryの設定は完了です。

3) 中間サーバでログ加工

ここまでで中間サーバに「DHCP Lease History」と「DNS Query」のログがある状態になっています。
この後の手順でログをSumo Logicにアップロードするコレクターをインストールしますが、コレクターでアップロードする際、圧縮ファイルをそのまま送ることができないので送れる状態に加工してあげる必要があります。

また、Lease Historyのファイルは名前が「dhcpLeaseHistory.csv.gz」で固定であるのと先頭行にヘッダーがついているので、この2点の対処もします。

なお、DNS Queryのファイルは名前が「captured-dns-[InfobloxのHostname]-[開始時間]-[終了時間].gz」となっているので単純に展開してあげれば良いです。


4) コレクターのインストール

ログをSumo Logicにアップロードするコレクターを中間サーバにインストールします。
今回は中間サーバからSumo Logicにアクセスしてファイルをダウンロードする方法で行います。

まずSumo Logicにログインします。
Setup Wizardのボタンをクリックします。

f:id:teriwriter:20190729204908p:plain


Set Up Streaming Dataをクリックします。

f:id:teriwriter:20190729204930p:plain




Data Typeを選択します。
今回はLinux Systemを選択します。

f:id:teriwriter:20190729204954p:plain


コレクターの種類を選択します。
新規インストールの場合は「New Collector」を選択します。
その下にある文字列をコピーして、中間サーバ側で実行します。

f:id:teriwriter:20190729205014p:plain

インストールが実行され、対象のサーバからSumo Logicにアクセスが確認できると
Continueのボタンが押せるようになります。


次にSource Categoryを指定します。
Source Categoryは任意に構成可能な、メインのメタデータタグです。(階層化して指定)
続いて送信したいログファイルを指定します。
最後にログのTime zoneを指定して、Continueボタンを押します。

f:id:teriwriter:20190729205123p:plain
※画像は変更前の状態になっています。


指定したデータが送信されます。
データ量が多いと完了までに時間がかかります。

f:id:teriwriter:20190729205217p:plain

f:id:teriwriter:20190729205247p:plain

これでコレクターのインストールは完了です。
Start Searching My Logsをクリックするとデータが確認できます。

f:id:teriwriter:20190729215237p:plain

終わりに

ここまでの手順でInfobloxの「DHCP Lease History」と「DNS Query」のデータをSumo Logicにアップロードすることができました。
次回はアップロードしたログの可視化に触れたいと思います。

お問い合わせはこちらまで
エンジニア部隊に直接つながります
コンタクト