0

複数のマシンにデプロイされ、同時に実行されてセントラルキューのタスクを処理するWindowsサービスアプリケーションを実装しました。私は、サービスの各インスタンスが実行されているログファイルを持っています。しかし、私は、サービスのすべてのインスタンスを監視し、各サービスによって処理されているタスクの名前やIDなどのアプリケーション固有の情報を定期的に取得できるようにしたいと考えています。マシンクラスタ内の複数のWindowsサービスインスタンスを監視する

各マシンにWebサービスを追加して、これらの読み取り専用情報を公開し、ネットワークを介してこれらの情報を取得してうまく表示する別のアプリ(たぶんWebアプリケーション)を作成することを考えています。しかしこれは良いアプローチですか?他の考え?また、私は既製の製品を使用しないことを好む。あなたのアドバイスを提供してください。

ありがとうございます!

[私は答えとして私のimplementaionを提供しようとします。興味があればお読みください。おかげで]

答えて

0

私はリードコプシーが提案したものと非常によく似た何かをimplmenetedしました。アプリケーションはすでにWindowsサービスであるため、同じサービスでWCFを公開してホストする情報のサービス/データコントラクトを定義します。このソリューションにより、私のクライアント(スケジューラーまたはUIアプリ)は、クラスター内で実行されているすべてのサービスインスタンスから情報を取得できます。

0

恐ろしいかもしれませんが、System Center Operations Managerをチェックしてください。 「ダッシュボード」スタイルの情報を、アプリケーションだけでなく、多くのマシン(またはデータセンター)のマシンとデータベースの状態にも反映させたい場合は、SCOMを開始するのがよいでしょう。

1

サービスでネットワーク経由でこの情報を取得するAPIがある場合は、実行中のすべてのサーバーの状態を確認するクライアントを作成するのはかなり簡単です。

これは、実行するコンピューティングクラスタサービスの数です。クライアントは、タスクをスケジュールしてクエリを実行することもできます。 .NETの場合、WCFはおそらくこれをかなり簡単で堅牢なものにしますが、どんな技術もここで使用できます。

関連する問題