web-dev-qa-db-ja.com

Java / Tomcat / Linux環境用のデプロイメントおよびモニタリングツール

私は長年開発者ですが、運用の経験があまりないので、これが新しい質問である場合はお詫びします。

私の会社では、主にTomcat Webサーバーに基づいてJavaで記述されたWebサービスを実行しています。それぞれ約10のホストを持つ2つのデータセンターがあります。ホストには、Dababase、Tomcat、一部がオフラインです。 Javaプロセス、memcachedサーバー。すべてのホストはLinux CentOS

これまで、新しいバージョンを本番環境にリリースするときに、jar/warsをコピーしてtomcatを再起動する一連の社内シェルスクリプトを使用してきました。

会社が大きくなったため、これらすべてを運用し、開発からQA、ステージング、そして本番に至るまでコードを取得することがますます困難になっています。多くの場合、一般的なリリースには人的エラーが含まれ、貴重な稼働時間がかかります。時々、最後に知られている善に戻る必要があり、これは控えめに言っても簡単ではありません...

私たちは、以下を提供するツール、フレームワーク、ソリューションを探しています。

  • 指定されたテクノロジのリスト(Java、Tomcat、Linuxなど)をサポートします
  • QAや本番環境など、さまざまな段階で簡単に導入できます
  • 構成管理を提供します。例えば。サーバープロパティ(各ホストの接続URLなど)、server.xmlまたはコンテキスト構成などの設定
  • モニタリング。同じパッケージで監視を取得できれば、それは素晴らしいことです。そうでない場合は、サーバーを監視するために使用できるさらに別のツール。
  • できれば、大量のドキュメントを含むオープンソース;)

誰かが彼らの経験を共有できますか?いくつかのツールを提案しますか?

ありがとう!

6
Ran

免責事項、私はゼノスコミュニティマネージャーです。

Zenoss 構成管理を除くすべての箇条書きをカバーしていますが、別のシステムと組み合わせて使用​​することもできます。

  • 指定されたテクノロジのリスト(Java、Tomcat、Linuxなど)をサポートします
    • 絶対に、 ZenJMX ZenPackは、Tomcatまたはその他のJMX対応アプリに使用できるJMX監視を追加します。
  • QAや本番環境など、さまざまな段階で簡単に導入できます[.____]。
    • Zenossにはさまざまな実稼働状態があるため、「テスト」、「実稼働」、「実稼働前」、「メンテナンス」、「廃止」のいずれの場合でも、デバイスを監視する方法を決定できます。
  • 構成管理を提供します。例えば。サーバープロパティ(各ホストの接続URLなど)、server.xmlまたはコンテキスト構成などの設定
    • Zenossは、Puppet、Cfengineなどと組み合わせて使用​​できます。
  • モニタリング。同じパッケージで監視を取得できれば、それは素晴らしいことです。そうでない場合は、サーバーを監視するために使用できるさらに別のツール。
    • それがゼノスの目的です。
  • できれば、大量のドキュメントを含むオープンソース;)
3
mray

SpringSourceの TC Server を試してみることを強くお勧めします。これにより、企業内のTomcatインスタンスの管理と診断が簡単になり、Tomcatプロジェクトに関与している人たちから大きなサポートを受けることができます。ただし、これにはすべて値札が付いています。:(

2
Kaitsu

構成管理の場合、 Chef は、さまざまなタイプのLinuxサーバー間でさまざまな側面を構成できる優れたツールであり、アプリケーションの構成と潜在的な展開の管理にも使用できます。サーバーの管理には、Chefまたは同様のもの(Puppetなど)を使用することを強くお勧めします。

また、 Hudson のようなものも検討してください。これは、継続的インテグレーション(誰かがソースに変更をコミットするたびに自動テストをビルドして実行する)に使用でき、アプリケーションのビルドをサーバーにデプロイするためにも使用できます。 (開発、ステージ、ライブなど)。実際にソフトウェアをデプロイするには、スクリプト(Ant、Maven、Shellなど)と組み合わせて使用​​する必要がありますが、パズルの便利な部分です。

私が興味を持っているがまだ掘り下げていないものは Cloud Tools です。これは、Tomcat/MySQLスタックへのアプリケーションのデプロイを自動化するためのツールセットです。 IaaSクラウド(Amazon EC2など)での使用を目的としていますが、通常のサーバーでも使用できるはずです。主な潜在的な欠点は、現時点ではあまり積極的に開発されていないように見えることです。

1
Kief

また、MuleSoft Tcat Server をチェックアウトします。これは、Tomcatの使いやすい展開、構成管理、信頼性の高い再起動、および診断を提供します。

免責事項:私はMuleSoftで働いています。

1

まあ、少なくとも部分的には、Java独自のjVisualVMを使用できます。

すべてのJDKに含まれていますJavaインストール...

Libフォルダーを見るだけで、すぐそこにあります。

1
KdgDev

Hyperic はJavaアプリに適していると聞きました。

個人的な経験はありません、ごめんなさい。

1
Not Now

単一のTomcatでの監視と展開の場合、 psi-probe が可能な解決策です。ラムダプローブのフォークです。

穴のインフラストラクチャを監視するために、私はNagiosの回答に同意します。

JVisualVMの代わりにjconsoleがあります。これもJDKの一部です。

穴のインフラストラクチャを管理するために、bash、Perl、ant、puppetマニフェストなどで記述されているかどうかにかかわらず、カスタムスクリプトを回避する方法はないと思います。しかし、すでに述べたハドソン、パペット、cfengine、シェフなどのツールの背後にそれらの複雑さを隠すことができます...

0
Christian