

Linuxサーバー上において，nginx, php-fpm, mysqldといったサービスを起動しています．  
これらのサービスのログファイルを簡単に確認できるソフトウェアはあるでしょうか？

現状では不具合がある度に `sudo tail -f /var/log/nginx/error.log`
のようにコマンドを打って確認しており，非常に効率が悪く感じます．


CC BY-SA 3.0
2015-03-15T05:03:11.663
7931
2015-07-11T21:20:00.323
4027
question
linux
Linuxサーバーのサービスログ確認の良い方法は？


`tail -f`なのでリアルタイムのログが見たいという前提で回答します。

これを実現する他のソフトウェアというのはなかなかありません。普通は表示の操作をしたタイミングまでのログまででしょう(`cat`や`-f`なしの`tail`相当)。確認してませんが、PleskやHDE
Controllerのような商用のサーバ管理ソフトウェアであればできるかもしれません。

`sudo tail -f
/var/log/nginx/error.log`と打つのが大変、ということであれば、aliasを設定してはいかがでしょう。.bashrcに

[code]

    alias tf='sudo tail -f'
    
[/code]

と書いておけば、`tf /var/log/...`で`sudo tail -f
/var/log/...`が実行できます。いっそのことファイル名まで含めたaliasにしてもよいでしょう。

また、ログを確認する専用のユーザを作って、.bashrcに

`sudo tail -f ...`

を書いてもいいかもしれません。ログインしたら勝手にログが表示されます。


CC BY-SA 3.0
2015-03-16T00:08:54.223
7947
2015-03-16T00:08:54.223
5793
7931
answer


他の方もおっしゃっているように、どうなれば便利と感じるかを示して頂ければより具体的な回答ができると思われます。

例えばログファイルが分散しているのが不便ということであれば、nginx、php-
fpm、mysqldいずれもsyslog出力に対応していますので、syslogサーバを立ててそこに集中して飛ばせば、ログの確認は1か所で済みますね。また、ログに特定の文字列が出力された際にメール等のアラートを上げたいということであれば、Zabbixなどの監視ソフトでログファイル監視をすることも可能です。


CC BY-SA 3.0
2015-04-12T12:53:20.253
9075
2015-04-12T12:53:20.253
9277
7931
answer


エラーを見つけたいとのことですので、`tail
-f`では垂れ流しになってしまい、難しいのではないかと思います。商用のアプリは山ほどありますが、無料でオープンソースであればELKスタック
(Elasticsearch, Logstash, Kibana)が人気です。ログの収集からエラー検出条件の設定、グラフの描画まで簡単にできます。

それぞれの役割は

  1. LogstashはETL(データの収集、書式変換、格納）
  2. Elasticsearchは検索に特化したデータベース
  3. Kibanaはユーザーインターフェース

インストール手順は[こちら](https://www.digitalocean.com/community/tutorials/how-to-use-
logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04)。

応用編としては、エラーが起きた時のスタックトレースの文字列のハッシュをLogstashで計算して、IDとして格納します。同じIDの出現頻度を数えれば、頻出エラーのバグフィックスを先にやるということもできるし、逆にレア物から修正して大問題になるのを未然に防ぐということもできそうです。


CC BY-SA 3.0
2015-07-11T21:13:41.807
12284
2015-07-11T21:20:00.323
2015-07-11T21:20:00.323
7837
7837
7931
answer