web-dev-qa-db-ja.com

大規模なログの転送と集約

UNIX/Linuxマシンからのログファイルをどのように分析していますか?数百台のサーバーを実行しており、それらはすべて、直接またはsyslogを介して独自のログファイルを生成します。これらを集約し、重要なイベントを選択するための適切なソリューションを探しています。この問題は、次の3つの要素に分類されます。

1)メッセージ転送

古典的な方法は、syslogを使用してメッセージをリモートホストに記録することです。これは、syslogにログインするアプリケーションでは正常に機能しますが、ローカルファイルに書き込むアプリケーションではあまり役に立ちません。これに対する解決策には、syslogを使用してメッセージを送信するプログラムに接続されたFIFOにアプリケーションをログインさせるか、ローカルファイルをgrepして出力を中央のsyslogに送信するものを書き込むことが含まれます。ホスト。ただし、syslogにメッセージを取り込むためのツールを作成する手間がかかる場合は、syslogよりも柔軟性と信頼性が高いFacebookの Scribe のようなものに全体を置き換える方がよいでしょうか。

2)メッセージの集約

ログエントリは、ホストごととサービスごとの2つのタイプのいずれかに分類されるようです。ホストごとのメッセージは、1台のマシンで発生するメッセージです。ディスク障害または疑わしいログインを考えてください。サービスごとのメッセージは、サービスを実行しているほとんどまたはすべてのホストで発生します。たとえば、ApacheがいつSSIエラーを検出したかを知りたいのですが、100台のマシンで同じエラーが発生することは望ましくありません。すべての場合において、各タイプのメッセージの1つだけを表示する必要があります。同じディスクに障害が発生したことを示す10個のメッセージは必要ありません。また、壊れたSSIがヒットするたびにメッセージを表示する必要もありません。

これを解決するための1つのアプローチは、同じタイプの複数のメッセージを各ホストで1つに集約し、メッセージを中央サーバーに送信してから、同じ種類のメッセージを1つの全体的なイベントに集約することです。 [〜#〜] ser [〜#〜] これは可能ですが、使用するのは面倒です。数日間いじった後でも、基本的な集計しか機能せず、SERがイベントを関連付けるために使用するロジックを常に検索する必要がありました。それは強力ですがトリッキーなものです。同僚が最短時間で手に取って使用できるものが必要です。 SERルールはその要件を満たしていません。

3)アラートの生成

何か面白いことが起こったとき、どうやって管理者に伝えるのですか?グループの受信トレイにメールを送信しますか? Nagiosに注入しますか?

では、この問題をどのように解決していますか?私は皿に答えを期待していません。私は自分で詳細を理解することができますが、確かに一般的な問題が何であるかについてのいくつかの高レベルの議論は素晴らしいでしょう。現時点では、cronジョブ、syslogのミッシュマッシュを使用しており、イベントを見つけるために他に何を知っているかを知っています。これは拡張性、保守性、柔軟性がないため、すべきではない多くのことを見逃しています。

更新:監視にはすでにNagiosを使用しています。これは、検出されたダウンホスト/テストサービスなどには最適ですが、ログファイルのスクレイピングにはあまり役立ちません。 Nagios用のログプラグインがあることは知っていますが、ホストごとのアラートよりもスケーラブルで階層的なものに興味があります。

14
markdrayton

ログを一元化するために3つの異なるシステムを使用しました。

  1. 1つのホストへのSyslog/syslog-ng転送
  2. イベントを集約して警告するためのZenoss
  3. Splunk ログの集約と検索

#3の場合、私は通常、syslog-ngを使用して、各ホストからのメッセージを直接splunkに転送します。ログファイルを直接解析することもできますが、それは少し面倒な場合があります。

Splunkは、ログの検索と分類に非常に適しています。ログアラートにsplunkを使用したことはありませんが、可能だと思います。

5
Gary Richardson

完全なオープンソースHIDSであるOSSECを見ることができます。これはログ分析を行い、アクションをトリガーしたり、アラートでメールを送信したりできます。アラートは、一連の単純なXMLベースのルールによってトリガーされ、さまざまなログ形式用に事前定義されたルールが多数含まれており、独自のルールを追加できます。

http://www.ossec.net/

2
Guillaume

Octopussy を見てください。それは完全にカスタマイズ可能であり、あなたのすべてのニーズに答えるようです...

PS:私はこのソリューションの開発者です。

1
sebthebert

たとえば、監視システムを調べる必要があります Zenoss Core 。とりわけ、それはイントロページで言います:

Zenoss Event Monitoring and Managementは、可用性監視、パフォーマンス監視、syslogソース、SNMPトラップソース、Windowsなどのさまざまなソースからのログおよびイベント情報を集約する機能を提供します。イベントログ。

what-tool-do-you-use-to-monitor-your-servers を参照してください。

0
gimel