ターミナル経由でログをリアルタイムで見る方法は?


16

これは基本的な質問です。映画「ソーシャルネットワーク」では、Facebookの若いスタッフがPHP / Apacheサーバーがリアルタイムで端末にログオンしているのを見ている場面がいくつかあります。

私はRUBY / RoR環境でこれを行う方法に精通していますが、標準のLAMP Apache / PHP環境では、サーバーのアクションをリアルタイムで積極的に監視する方法はありますか?ターミナルでこれを行う簡単な方法があると思います。


私はこの映画を見たことがありません。Facebookのスタッフが映画で何をしているかの詳細を示すスクリーンショットまたはクリップはありますか?
ステファンLasiewski

通常、ログファイルのtail -fがこれを行います。
Fiasco Labs

回答:


47

多分彼らtail -fはアクセスログで使用しますか?


2
Facebookのように毎秒数千のリクエストがある大規模なサイトでは、これは本当に手に負えないものになりませんか?
Vilx-

3
ボリュームを減らすことができますが、特定の要求を探している場合は、-fは常にgrepを介して濾過することができ、尾...
マーク・ベイカー

3
tail -fいいえ。Windowsボックスに少なくとも最小のCygwinを配置する1つの理由!
ダニエル・アーウィッカー

1
@ダニエルGnuWin32にはテールコマンドもあると思う
Jader Dias

1
その速度の問題のために... tail -f /log/any.log | while read line; do echo $line; sleep 3; doneしかし、これはもう「リアルタイム」ではないでしょう
有神論



6

リアルタイムのApacheログビューアおよびアナライザを探している場合は、GoAccessをお勧めします。

http://goaccess.prosoftcorp.com/

次のように実行するだけです(confは必要ありません):

goaccess -f /var/log/apache2/access.log -s -b

3

もう1つ試すことができるのは、必要なログファイルに対してgrepコマンドを繰り返し実行できる "watch"コマンドです。適切な監視コマンドスイッチを使用すると、ログファイルの変更をリアルタイムで強調表示することもできます。

例えば:

watch -d -n5稼働時間


2

GoAccess 0.6.1は、バッグの中の少なくとも1つのツールである必要があります。オープンソース。高速かつ安定。

Rhel / Centos 6.4の場合

yum install glib2 glib2-devel glibc make geoip
yum install ncurses-devel
Download GoAccess - http://goaccess.prosoftcorp.com/download
Untar it and cd into it
./configure
make
make install

Finally: goaccess -f /var/log/httpd/access.log (or wherever your access logs are [maybe even /etc/httpd/logs/access_log]

geotoは、CENTOS 6でエラーを発生します
マイク

1

これは基本的な質問です。映画「ソーシャルネットワーク」では、Facebookの若いスタッフがPHP / Apacheサーバーがリアルタイムで端末にログオンしているのを見ている場面がいくつかあります。

Facebookのような大規模なシステムの場合、映画の制作でどの程度の芸術的ライセンス(別名bullsh * t)が与えられているのか疑問に思うでしょう。数千のシステムと数千のクラスターがある環境では、サーバーログが端末上でスクロールするのを監視することが必ずしも第1位の監視活動とは限りません。

そのような環境(または数十個のノードがある実稼働環境)では、インジケーター付きのソートのNOSCがあり、何かがその状態にあるとフラグが立てられた場合にのみcrapping out、ログを確認します(おそらく重要なイベントとメッセージでフィルタリングされます。)


十分に小さいサイトの場合、ログを見るのはちょっとおもしろく、あなたの期待がどれだけうまく達成されているかについての一般的な感触を与えることができます。いずれにせよ、質問は映画をインスピレーションとして使用し、「どうすればそのようなことをすることができますか?」「彼らはどうやってそれをしたのですか?」
エスワルド

さて、1つは、tail -fを下にスクロールして端末を開いたままにすることです。ただし、非常に高価な帯域幅を取得できます。たとえば、VNCまたはリモートデスクトップを介して表示されているリモート端末でログをスクロールしている場合、クライアントでの CPUのコストが非常に高くなる可能性があります。他のソリューションには、syslogへのログ出力の送信(syslogサーバーへのリモート送信)や、監視クライアントへのログ行のバッチ(圧縮およびUDP経由)の送信も含まれます。後者はUDPであるため、一部の回線が失われる可能性があります。ただし、状況によっては許容される場合があります。
luis.espinal

0

The Social Networkがほとんど正確な専門用語と用語を使用していることに興奮していますが、彼らが見せるためだけに行ったもののいくつかは。

私はサーバーの専門家ではありませんが、Zuckerbergがpingコマンドを実行してターミナルを開いているのを見て、彼がそれをランダムに行う理由を考えることはできません。(これは、彼らがすでにサーバーを稼働させていた後のことです)。

しかし、Pythonサーバーのハッキングシーンは非常に面白いと感じました。



0

LogLogicなどのリアルタイムログビューアを使用して、見たくないものをフィルタリングすることもできます。この方法では、Apacheログ以上のものを収集でき、ルーターログ、ftpログなどを取得できます。


0

あなたはポーリングスクリプトを非常に簡単に書くことができ、jsutはタイムスタンプまたはファイルサイズを比較し、変更された場合は、 tail -n1


0

Apachetailは、WindowsデスクトップアプリからApacheサーバーに直接接続することにより、Apacheログのリアルタイムの表示/分析も提供します。Apacheサーバーにソフトウェアをインストールする必要はありません。

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