Unixウェイまたはパイプをブラウザにアップグレード

おそらく、ログを使用して多数のウィンドウを同時に監視しなければならなかったすべての人が、それらの一部をタブレットや電話の画面に転送することを考えていました。
そして、コンピューターから遠く離れて、最近立ち上げられた大きくて恐ろしいサービスの消耗を監視しますか?
もちろん、sshクライアントを電話に置くこともできますが、これはあまり便利ではありません。
したがって、ログの「リモート」表示を簡素化するミニサービスを作成することにしました。




簡単な要約


githubに投稿されオープンソースのcantail.meサービス。
無料のコンソールクライアント( github )。 簡単なデータ送信には、それで十分です:
long-runnig-app | tailme 

そして、開いたブラウザウィンドウからリンクをコピーします。 または、 -sオプションを追加して、ターミナルからコピーすることもできます

たとえばコマンドのnginxログの公開が開始されました。
 tail -f /var/log/nginx/cantailme.access.log | tailme -s 


クライアントのインストール


ubuntu 11.10以降では、アプリケーションはppaからインストールできます。
 add-apt-repository ppa:nvbn-rm/ppa apt-get update apt-get install tailme 

他のディストリビューションでは、pipを介してインストールできます。
 pip install -e git+https://github.com/nvbn/cantailme-client.git#egg=tailme 

または、インストールスクリプトを通じて:
 git clone https://github.com/nvbn/cantailme-client.git cd cantailme-client python setup.py install 


ボンネットの下




クライアントの実装は非常に単純です-ループは標準入力を読み取り、サーバーに新しい行を送信します。
データのなりすましを防ぐため、セッションの初期化中にサーバーはハッシュ識別子と「シークレット」を提供し、これらは「文字列」の送信に使用されます。

サーバー部分はもう少し複雑で、3つの条件付きエンティティに分割できます。


システムの各部分間の相互作用は、RabbitMQを使用して行われます。
プッシュはtornado-sockjsを通じて機能します。
リソースを節約するために、ログはすぐにファイルにロードされ、djangoをバイパスしてnginx経由で送信されます。
/ dev / urandomまたは大きなログをアップロードする場合は、5分ごとに「重大な」スクリプトが実行されます。

展開する




この場合、それは自明ではありませんが、私はすでに同様の状況に遭遇しています 。 そのようなスキームを選択する主な理由:


エラーが発生した場合は、 サーバークライアントのトラッカーにバグレポートを作成します 。 またはこの投稿へのコメントで=)

PS habrastorageで何らかの種類の妨害が発生し、写真を自分にリロードしました。

Source: https://habr.com/ru/post/J147525/


All Articles