そして、コンピューターから遠く離れて、最近立ち上げられた大きくて恐ろしいサービスの消耗を監視しますか?
もちろん、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つの条件付きエンティティに分割できます。
- 2つのビューをレンダリングするhttp「サーバー」 。
- jsonrpc api 。コンソールクライアントがセッションを開始し、サーバーにデータを送信します。
- APIを介して受信した回線をクライアントにリアルタイムで送信するためのプッシュサーバー 。
システムの各部分間の相互作用は、RabbitMQを使用して行われます。
プッシュはtornado-sockjsを通じて機能します。
リソースを節約するために、ログはすぐにファイルにロードされ、djangoをバイパスしてnginx経由で送信されます。
/ dev / urandomまたは大きなログをアップロードする場合は、5分ごとに「重大な」スクリプトが実行されます。
展開する

この場合、それは自明ではありませんが、私はすでに同様の状況に遭遇しています 。 そのようなスキームを選択する主な理由:
- 非標準ポートが切断されることは珍しいことではないため、tornadoとdjangoは同じ標準ポートでハングするはずです。
- WebSocketでnginxを正常に動作させることには問題があります。
- HAProxyは統計を配布しません。
- 私は、このスキームを非実験的プロジェクトの生産で運用することに成功しました=)
エラーが発生した場合は、 サーバーとクライアントのトラッカーにバグレポートを作成します 。 またはこの投稿へのコメントで=)
PS habrastorageで何らかの種類の妨害が発生し、写真を自分にリロードしました。