2018年11月12日月曜日

フリー版でできるリアルタイムログ監視 #4 - 機器固有のログ形式に対応するダッシュボードを作りたい

機器ごとに異なる形式で出力されるログを一元管理し、Web GUI上で簡単に調査できるようにしたい...。Nagios Log Serverを使えば、各機器のログ形式に応じたカスタムダッシュボードを作成することができるため、ログの調査が簡単になります。もちろんフリー版でも可能です。ただし、機器固有のログ形式を反映したわかりやすいカスタムダッシュボードを作成するためには、Nagios Log Serverのログ収集処理をカスタマイズする必要があります。

*前回までのブログ記事はこちらからご参照ください。

Nagios Log ServerのベースはELK Stack

Nagios Log Serverはオープンソース製品群 ELK Stack (Elasticsearch, Logstash, Kibana) をベースに開発されたソフトウエアアプリケーションです。各機器からNagios Log Serverへ送信されたログは、Logstashが受信しElasticsearchデータベースに保存します。ユーザーはKibanaをベースに開発されたNagios Log ServerのWeb GUIへアクセスしてElasticsearchに保存されたログデータを閲覧します。


Nagios Log Serverのログ収集処理をカスタマイズするということは、Logstashのインプット、フィルター構成をカスタマイズすることを意味します。

Nagios Log Serverの Logstash構成

Nagios Log Serverにはデフォルトで4つのインプットと1つのフィルターが定義されています([構成] > [グローバル構成])。

それぞれの定義の[+]アイコンをクリックすると、定義内容が展開表示されます。

左上の[Syslog(Default)]が、Syslog受信用のデフォルトインプット定義です。これは、RFC 3164形式に準拠したSyslogを受信するためのもので、5544(tcp/udp)ポートで送信されたSyslogを受信し、typeフィールドにsyslogという値を設定するように定義されています。

RFC 3164形式に準拠しないSyslogをNagios Log Serverで受信したい場合は、syslogインプットではなく、tcpまたはudpインプット定義を追加する(またはデフォルトの syslogインプットをtcpまたはudpインプットに変更する)必要があります。下は、5545(tcp/udp)ポートで送信されたログを受信し、typeフィールドにsyslog2という値を設定するカスタムインプットを追加した例です。
注記:
  • インプット定義で使用するポート番号は重複しないようにしてください。
  • デフォルト以外のポート番号を使用する場合は、OSのFirewallでこのポートの使用を許可する必要があります。
  • 1024未満の特権ポートを使用したい場合は追加の作業が必要です。詳しくは「Nagios Log Server 管理者ガイド」をご参照ください。

さらに機器固有のログ形式を反映するカスタムダッシュボードを作成するためには、ログのメッセージ内容をフィールドに分割する必要があります。これはLogstashのフィルター定義で行います。デフォルトでは、Apacheログ用のフィルターが1つだけ定義されています。

下はカスタムフィルターの定義例です。ニーズにあわせてメッセージの内容を任意のフィールドに分割します。詳しくは「Nagios Log Server 管理者ガイド」をご参照ください。

カスタムインプットおよびフィルターの定義が完了したら、[保存] ボタンをクリックして設定を保存した後に [確認] ボタンをクリックして定義が正しいことを確認します。

定義に誤りがないことが確認できたら、[構成の適用] > [適用] を実行して構成変更をシステムに反映させます。
※Nagios Log Serverでは(サーバーコンソールではなく)Web GUI上でLogstash構文の編集や構成の適用(Logstashサービスの再起動)作業を行うことができます。

構成の適用以降に受信したログが新しいLogstash構成で処理されます(既に保存済みのログは処理されません)。これによりログメッセージがフィールドごとに分割して保存されるようになるため、各フィールドの情報をダッシュボード上で棒グラフ、折れ線グラフ、円グラフ、テーブル形式などで表現することができるようになります。さらに任意のフィールドに対してマウス操作で簡単にフィルター条件を追加しログデータを絞り込むこともできるようになります。

下はカスタムダッシュボードの例です。
新しいダッシュボードの作成方法については「Nagios Log Server 管理者ガイド」をご参照ください。

Logstashのフィルター定義は多少骨が折れますが、一度定義すればNagios Log Serverでのログ調査が格段に楽になります。まずは評価版からお試しください。

Logstash構文の参考サイト

以下はLogstash構文およびgrokフィルターのパターン定義作業に役立つサイトです:

Nagios Log Serverダウンロード

Nagios Log Serverは以下からダウンロードできます。ぜひお試しください。
  • インストール直後は、60日間無料で機能制限なしで利用可能な「評価版」モードで動作します。
  • 「フリー版(使用期限なし、ログ収集上限あり:500MB/日(7日間平均))」としてご利用いただく場合は、インストール後にライセンスタイプを「フリー版」に切り替えてください。詳しくは「Nagios Log Server管理者ガイド」をご参照ください。
https://www.jtc-i.co.jp/product/nagioslogserver/nagioslogserver.html

Nagios Log Server製品紹介ページ

Nagios Log Serverの特長や機能については製品紹介ページをご参照ください:
 https://www.jtc-i.co.jp/product/nagioslogserver/nagioslogserver.html

お問合せ 

購入前のNagios Log Serverについてのお問合せやお見積もりの依頼は以下から承っております。
ご不明な点やお気づきの点がございましたらお問合せください。
https://www.jtc-i.co.jp/contact/scontact.php