1

すべてのユーザーは廊下を歩いてすぐのところにいて、すべてのプログラムは同じ LAN 上のワークステーションで実行されています。数年前、私はスタッフにすべてのプログラムのログ ファイルを共有フォルダー階層に書き込んでもらい、アプリにちなんで名付けられたサブディレクトリ内のマシン名にちなんで各ログ ファイルに名前を付けました。

しかし、ファイル サーバーがダウンした場合、どのプログラムもログを書き込むことができなくなるため、この配置はそれほど優れたものではありませんでした。しかし、ログを各ワークステーションのローカルに保持すると、問題をデバッグする必要があるたびにログを読み取るのが面倒になります。

必要に応じてバックアップ マシンを指定できるように、ログ ファイル サーバーの DNS エイリアスを作成しようとしましたが、DNS エイリアスは Windows ファイル共有では機能しません。

数十台のマシンに数十個のプログラムがあるため、各プログラムに共有ログ フォルダーへのパスを配置するのは、たとえフィールドで構成可能であっても、あまり良くありません。

Microsoft の分散ファイル システムの使用も検討しましたが、価格はばかげています。

ローカル ネットワーク上の多くのプログラムのログを 1 か所に集めて、リモート マシンにアクセスしなくてもログを追跡して分析できるようにしたいと考えています。すべてのプログラムに .Net を使用しています。

編集:各ユーザーのワークステーションにファイル共有を設定したり、毎晩ログをトロールするソリューションを設定したりしたくないのは、オンデマンドで、または問題が報告された直後に新しいログを読み取れるようにしたいからです。

4

10 に答える 10

3

私が数年前に働いていた IT 環境では、各マシンのログ ファイルをローカルに書き込み、5 日ごとに消去していました。サーバーは毎晩ログインして、各マシンから最新のログを取得します。サーバーがダウンした場合、全員から 2 日分のログを取得するだけです。クライアントがダウンした場合、そのログは翌日にも取得できます。

于 2008-09-26T20:48:31.087 に答える
1

共有されているローカルの既知の場所にログを記録するアプローチを使用します。次に、2番目のプロセスでこれらのログをプルして後で処理するのは簡単です(データベースへのダンプ、収集、アーカイブなど)。収集プロセスが停止しても、実際には何も影響を受けません。

単一障害点がないことを確認してください。私は、すべてのアプリが依存している中央ログデータベースを使用したこの例を見てきましたが、それがダウンすると、他のすべても同様に機能しました。賢くない。

于 2008-09-26T22:33:36.873 に答える
1

当店は、ログをデータベース テーブルに保存することに関して、優れた経験を持っています。必要に応じていつでもクリーンアップをデータベース ジョブとしてスケジュールして、サイズが大きくなりすぎないようにすることができます。

于 2008-09-26T21:16:54.747 に答える
1

MSMQを使用できます。ログを MSMQ キューに書き込み、必要に応じてこれらのログをピックアップしてデータベースに格納するか、中央の場所にあるファイルに出力するサービスを用意します。すぐには実行できませんが、新しいログ エントリを取得したいときにいつでも実行するように指示できます。さらに、MSMQ を使用しているため、信頼性が高くなります。

于 2008-09-26T21:06:42.727 に答える
0

アプリケーションのロガーをサブスクライバー サービスとして (リモーティングを使用して) 持つのはどうですか。次に、アプリケーションをサブスクライブする LogServer を実装します。アプリがログに記録するものがある場合、サブスクライバーに送信します。サブスクライバーが応答しない/死んでいて、機能しているサブスクライバーがいないなどの問題がある場合は、ローカルに書き込みますが、アラームを鳴らします。たとえば、TraceListener クラスと Debug クラスのマルチマシン バージョンです。

ほぼ確実に、アプリケーションが別のスレッドからアプリケーションの残りの部分にログ メッセージを送信するようにします。

于 2008-09-26T21:02:58.353 に答える
0

他のアプリケーションをホストする単一のアプリケーションを作成しました (プラグイン アーキテクチャ)。例外が発生すると、必要な情報がユーザーのマシン上の XML ファイル (<USERNAME>.xml という名前) に書き込まれます。要求時またはアプリケーションの終了時に、XML を Web サービスに送信し、そこからファイルを確認できる場所に書き込みます。

Web サービスがダウンしても、XML ファイルはユーザーのマシン上に残っており、次回アプリケーションを実行したときにアップロードされるため、大した問題ではありません。

于 2008-09-26T21:11:24.900 に答える
0

データベースにも(CALMのように)書き込むので、データベースがダウンしたときにログファイルをトロールするだけで済みます

于 2008-09-26T21:30:50.127 に答える
0

DFSは Windows Server に含まれており、regeditで CNAME を使用して NetBIOS を有効にすることができます。

また、ログ ファイルをプルして分析するためにSplunkを試してみましたが、CPU を大量に消費するので、馬力を割くことができませんでした。それを除けばかなりいい商品でした。

于 2008-09-26T21:13:42.040 に答える
0

ログ ファイルをユーザーのローカル マシンに書き込み、それらを夜間のバッチ ジョブとして共通のファイル サーバーにプルするスクリプトを作成できますか?

于 2008-09-26T20:48:46.140 に答える