複数のサーバーでプログラムの進行状況を監視する


9

tmuxセッション内でデータ分析タスクを実行しているPythonプログラムを実行している3つのサーバーがあります。現在使用している方法は、tmuxセッションに接続し、コマンドラインで出力を監視するそれぞれにSSHで接続することです。

この方法は面倒なので、探しているのは、複数のサーバーのプログラムの進行状況(CLIでの出力)の監視を同時に自動化するソリューションです。Web UIソリューションが理想的ですが、CLIも完全に適しています。

読んでくれてありがとう。


プロメテウスとグラファナを使用する:-)
モニカの復活

回答:


8

アドホックの長時間実行コマンドを実行しているときはいつでも、エラー処理を含めて自動化する必要があるため、前に戻ってプロセスを再考する必要があります。

サーバーに接続してステータスを確認するのではなく、その情報をプッシュするのがより良い方法です。一連のカスタムコードを作成する場合は、さまざまなことができますが、おそらく最も簡単なのは、syslogを介して中央のロギングシステム(syslog自体、またはELKなど)に出力を送信することです。そうすれば、中央の場所からすべてを監視できます。

前向きに考えると、これが1回限りのタスクではない場合は、監視を自動化する必要があります。つまり、ログを監視して、想定どおりに進んでいるかどうかを確認する必要はありません。代わりに、アラートが発生するまで、それらがそうであると想定する必要があります(他の作業を続行します)。これは、信頼性の高い広範囲のアラートを取得するための時間の投資ですが、システムが複雑になるにつれて、何かを変更するたびにすべてを監視する必要がないため、成果が得られます。


これは1回限りのものではありません。ロギングの監視と集中化の自動化に時間を費やすことについてのあなたの考えが好きです。無料で使用でき、プログラムを実行しているubuntuホストでうまく機能するツールについて何か提案はありますか?
グアノ

@guano Wissamは、Sensuのようなものを使用してアラートを強化することを除いて、私が言及する特定のツールすべてカバーしていると思います。
モニカチェリオのボイコットSE、2017年

4

グレイログ

2人がすでに現在のプロセスを再考するようにアドバイスしているため(ある時点で眠れない夜になるので、2番目に説明します;))、別のルートに進んで、私の意見では、ニーズ:Graylog

ログの集約とビジネスインテリジェンスの両方にいくつかのELKスタックを実装して使用し、現在の雇用主で約2年間グレーログを実行/維持しています。以下の機能が組み込まれていて、私の意見ではセットアップと保守が少し簡単なので、graylogをお勧めします。

  • ウェブインターフェース
  • マルチユーザー機能
  • アラート

私があなたのシナリオを理解している限り、ログメッセージのストリームに表示される特定のイベントについて行動するか警告を受ける必要があるかのように見えます。グレイログの機能を見ると:

ログイン試行の失敗、例外、パフォーマンスの低下など、注意が必要なときにアクションをトリガーするか通知を受け取ります。

アイデア:メールまたはSlackメッセージをチームに送信します。新しいマシンを生成して、処理負荷のバランスをとります。攻撃が検出されたときにファイアウォールのIP範囲を自動的にブロックします。

graylogを試すには、次の2つのステップをお勧めします。

  • すべてのアプリケーションホストから到達可能な専用ホストをセットアップして、graylog(およびその依存関係MongoDBとElasticSearch)を実行します。
  • アプリケーションからグレーログにログを送信します(おそらくGELFメッセージとして)。

注:これらの2つのステップは、ページおよびベストプラクティスのページを埋める機能を備えており、少なくともいくつかの考えを受け取る必要があります。言うまでもなく、graylogは監視ソリューションではなく、graylog自体は適切な監視ツール(たとえば、Icinga、Prometheus、Nagiosなど)で監視する必要があります。


3

@Xiong Chiamiovに同意し、より明確なオプションを提供したいと思います。あなたはCLI内のすべての行を監視したい場合は、私は、使用し、特定のファイルや他のファイルにエラーが発生したため、すべての出力をリダイレクトすることをお勧めlogstashまたはfilebeatをこのファイルの両方を送信するためにElasticsearch、あなたが設定することができLogtrilをしてKibanaはあなたが閲覧、分析、検索、DevOpsチームフレンドリーなインターフェイスでリアルタイムに複数のホストからのテール・ログイベント与えます


1

一元化された tmux

他の答えは長期的にはより賢明で賢明ですが、迅速なハックCLIソリューションは言及する価値があると思います。tmux他のすべてに到達できる1つのサーバーで実行します。これに適した場所は、ジャンプボックスや、とにかく一般的にログインしている他の場所です。この "中央" tmuxssh 内で、別のペインの各ボックスに移動し、必要なログファイルをテールにします。ctrl- b "を使用して、内の1つのタブでさらに多くのペインを取得できますtmux。今、誰かが物事をチェックするためにやらなければならないすべては「中央」tmuxセッションにアタッチされ、彼らは一目でクラスター全体を見ることができます。

私はあなたが目指しているWeb UIソリューションの構築に多くの時間を費やしましたが、今日それが必要であれば、何かをハッキングすることでtmux1日を節約できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.