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

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

Sumo Logic へのファイルアップロードについて(ストリーミング編)(2)

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


つづきです。
少し長いですがご容赦ください。
 
前の記事:
 さて・・・
 
"Collection" の画面を開くと・・・
 

f:id:terilogy-tech:20191202201955p:plain

 
コレクターをインストールしたサーバのホスト名が表示されています。
ホスト名が "localhost.localdomain" となっているのはご愛敬で。
 
引き続きコレクターの設定変更とソースの設定していきます。
設定変更するコレクター行の右側にある "Edit" を押して設定変更画面を表示させます。
 

f:id:terilogy-tech:20191202202030p:plain

f:id:terilogy-tech:20191202202034p:plain

 
設定画面では次の項目が変更可能になっています。
 

f:id:terilogy-tech:20191202210530p:plain

 

※1 設定内容はファイルアップロードの記事と同じなので、そちらをご参照ください。
 
※2 ここは試していませんが、デフォルトは "Cloud Based Management" で、"Local~" を選択すると "While Local Configuration Management is enabled, any source not present in the Collector JSON configuration file will be deleted. Editing of its sources will also be disabled." といった注意書きが表示されるので、無理に "Cloud Based Management" に変更する必要なないかと思います。
 
ここでは以下に変更します。
 
Name  second_try
Host Name testserver
Category sumo2
Fields  Fields Name :file
   Value  :logdata
Time Zone (GMT +09:00)Asia/Tokyo
 
入力後に "Save" を押して設定を完了させます。

次にソースの追加を行います。

"Edit" の左にある "Add..." から "Add Source" を押して設定画面を表示させます。
"Add Script Action" は試したことがないので、いつか試してみたいです。
 

f:id:terilogy-tech:20191202202442p:plain

f:id:terilogy-tech:20191202202446p:plain


今回はコレクターをインストールしたサーバ上のファイルからデータを取り込むことを想定していますので、"Local File" を選択します。
 
"Local File" 以外にも "Remote File" や "Syslog"、"Docker" にも対応しています。
"Remote File" や "Docker" も今度試してみたいですね。
 

f:id:terilogy-tech:20191202202518p:plain

 
画面が縦長なので途中で切れてしまっていますが、次の項目が変更可能になっています。
 

f:id:terilogy-tech:20191202211556p:plain

 
※3 設定内容はファイルアップロードと同じなので、こちらをご参照ください。
 
ここでは以下を入力します。
 
Name     webserver
Source Category   /var/log/messages*
Collection should begin All Time
Source Category   /var/log/messages
Fields  Fields Name :server
   Value  :web
Time Zone Use Collector Default
 
"Save" を押すと設定が保存され、 "Collection" の画面が表示され今回設定した "Source" が表示されています。
 

f:id:terilogy-tech:20191202202918p:plain


 
ファイルアップロードの時と同様に Source Category名の右隣りにあるアイコンからクエリー画面を開くと・・・
 

f:id:terilogy-tech:20191202202943p:plain

 
取り込んだログが表示されます。取り込み期間を "All Time" にしたので、最新から過去まで全期間のログが表示されています。
 

f:id:terilogy-tech:20191202203012p:plain

 
解析方法はファイルアップロードと同じなので、こちらをご参照ください。

■番外編1

コレクター設定時やソース設定時に "Fields" という項目を設定した事を覚えていますか?
 
"Fields" で設定した内容は取得したログにメタデータとして付与され、解析時に利用する事ができます。

f:id:terilogy-tech:20191202203114p:plain


赤枠で囲った部分の "file" はコレクターで、"server" はソースで設定したフィールドです。
例えば、行内にマシンを識別する文字がない場合や1つのコレクターで複数のサーバからログを集める場合などに識別子的に付与すると便利になるかと思います。
 
ちなみに、青枠にはコレクターで設定した "Host Name" の値がセットされています。
この辺りを上手く設定すれば便利になりそうですね。
 
■番外編2

先程はコレクターをインストールする際に、コレクターを一度ローカルのPCにをダウンロードしてからサーバにアップしましたが、サーバ上で "Linux(64-bit/x86_64/amd64)" のリンクURL から直接コレクターをダウンロードしてインストールする事もできます。
 

f:id:terilogy-tech:20191202203157p:plain

 

■番外編3
 
取り込み時の Splunk との挙動の違いについて
 
1行が 1MB 未満のログを取り込んだ場合:
Splunk では、"Trancating line because limits of 10000byte has been exceeded with a line length >= 15872." といったメッセージが表示され、10000byte 以下(※)までしか取り込まれませんでした。

※ファイルのエンコードが UTF-8 で漢字や仮名文字が含まれていたため、テキストエディタで開いたサイズとは多少の差異があります。
 
一方 Sumo Logic では、64KByte毎に区切り "_messageCount" という "Fields" に連番(最大16)を振って全てが取り込まれました。
 

f:id:terilogy-tech:20191202203254p:plain


※1MB = 64KB(65536byte)×16
 
1行が 1MB以上のログを取り込んだ場合:
Splunk は 1MB の時と同じ挙動でした。
 
Sumo Logic は 1MB までは "_messageCount" に連番を割り当てて取り込んでくれましたが、1MB より後ろは分割されて別な行として扱われました。分割された部分に日時の文字列がなかったため、取り込み実行時の日時で取り込まれてしまいました。

f:id:terilogy-tech:20191202203327p:plain


赤枠はログの日時の含まれている部分で、青枠は分割以降の部分です。
ただ普通に考えて 1行が 1MB 以上もあるメッセージなんてあり得ないので、「1M 以上が正常に取り込めない」なんて気にしなくても良い事ですね。
 
以上、ありがとうございました。
 
 
 
Sumo Logic へのファイルアップロードについて(ストリーミング編)(1)

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