私は長年開発者ですが、運用の経験があまりないので、これが新しい質問である場合はお詫びします。
私の会社では、主にTomcat Webサーバーに基づいてJavaで記述されたWebサービスを実行しています。それぞれ約10のホストを持つ2つのデータセンターがあります。ホストには、Dababase、Tomcat、一部がオフラインです。 Javaプロセス、memcachedサーバー。すべてのホストはLinux CentOS
これまで、新しいバージョンを本番環境にリリースするときに、jar/warsをコピーしてtomcatを再起動する一連の社内シェルスクリプトを使用してきました。
会社が大きくなったため、これらすべてを運用し、開発からQA、ステージング、そして本番に至るまでコードを取得することがますます困難になっています。多くの場合、一般的なリリースには人的エラーが含まれ、貴重な稼働時間がかかります。時々、最後に知られている善に戻る必要があり、これは控えめに言っても簡単ではありません...
私たちは、以下を提供するツール、フレームワーク、ソリューションを探しています。
誰かが彼らの経験を共有できますか?いくつかのツールを提案しますか?
ありがとう!
免責事項、私はゼノスコミュニティマネージャーです。
Zenoss 構成管理を除くすべての箇条書きをカバーしていますが、別のシステムと組み合わせて使用することもできます。
SpringSourceの TC Server を試してみることを強くお勧めします。これにより、企業内のTomcatインスタンスの管理と診断が簡単になり、Tomcatプロジェクトに関与している人たちから大きなサポートを受けることができます。ただし、これにはすべて値札が付いています。:(
構成管理の場合、 Chef は、さまざまなタイプのLinuxサーバー間でさまざまな側面を構成できる優れたツールであり、アプリケーションの構成と潜在的な展開の管理にも使用できます。サーバーの管理には、Chefまたは同様のもの(Puppetなど)を使用することを強くお勧めします。
また、 Hudson のようなものも検討してください。これは、継続的インテグレーション(誰かがソースに変更をコミットするたびに自動テストをビルドして実行する)に使用でき、アプリケーションのビルドをサーバーにデプロイするためにも使用できます。 (開発、ステージ、ライブなど)。実際にソフトウェアをデプロイするには、スクリプト(Ant、Maven、Shellなど)と組み合わせて使用する必要がありますが、パズルの便利な部分です。
私が興味を持っているがまだ掘り下げていないものは Cloud Tools です。これは、Tomcat/MySQLスタックへのアプリケーションのデプロイを自動化するためのツールセットです。 IaaSクラウド(Amazon EC2など)での使用を目的としていますが、通常のサーバーでも使用できるはずです。主な潜在的な欠点は、現時点ではあまり積極的に開発されていないように見えることです。
また、MuleSoft Tcat Server をチェックアウトします。これは、Tomcatの使いやすい展開、構成管理、信頼性の高い再起動、および診断を提供します。
免責事項:私はMuleSoftで働いています。
まあ、少なくとも部分的には、Java独自のjVisualVMを使用できます。
すべてのJDKに含まれていますJavaインストール...
Libフォルダーを見るだけで、すぐそこにあります。
Hyperic はJavaアプリに適していると聞きました。
個人的な経験はありません、ごめんなさい。
単一のTomcatでの監視と展開の場合、 psi-probe が可能な解決策です。ラムダプローブのフォークです。
穴のインフラストラクチャを監視するために、私はNagiosの回答に同意します。
JVisualVMの代わりにjconsoleがあります。これもJDKの一部です。
穴のインフラストラクチャを管理するために、bash、Perl、ant、puppetマニフェストなどで記述されているかどうかにかかわらず、カスタムスクリプトを回避する方法はないと思います。しかし、すでに述べたハドソン、パペット、cfengine、シェフなどのツールの背後にそれらの複雑さを隠すことができます...