はじめに
ログ調査などでリアルタイムでログを見るときは、とりあえず、tailでログを1個ずつ見ることが多いと思います。
# tail -f /var/log/[対象ログファイル]
または以下のように*"error"などで検索を行い、"error"*が出力されているログを特定したりすると思います。
# grep -r error /var/log/[対象ログファイル]
MultiTailを使うと効率的にログが見れます。
MultiTail
MultiTailはOSSのコマンドラインツールで、重要な単語をハイライト表示したり、マルチウインドウで複数のログファイルを同時に表示することができます。
MultiTailのインストール
- Fedoraの場合 ※CentOS、RHELはパッケージ提供なし
# yum install multitail
- Ubuntu/Debianの場合
# sudo apt-get install multitail
MultiTailのインストール(ソース)
※本手順で記載しているmultitailのバージョンは、執筆時のバージョン(注)
- パッケージのダウンロード
# wget https://www.vanheusden.com/multitail/multitail-6.4.2.tgz
- ソースの展開
# tar xzvf multitail-6.4.2.tgz
- ディレクトリの移動
# cd multitail-6.4.2/
- コンパイルの実行
# make
- インストールの実行
# make install
※makeでコンパイルが失敗する場合は以下を実施
# コンパイラがない場合のエラー
cc -funsigned-char -D`uname` -DVERSION=\"6.4.2\" -DCONFIG_FILE=\"/etc/multitail.conf\" -DUTF8_SUPPORT -D_FORTIFY_SOURCE=2 -O3 -c -o utils.o utils.c
/bin/sh: cc: コマンドが見つかりません
make: *** [utils.o] エラー 127
→# yum install gcc
# コンパイルエラー
cc -funsigned-char -D`uname` -DVERSION=\"6.4.2\" -DCONFIG_FILE=\"/etc/multitail.conf\" -DUTF8_SUPPORT -D_FORTIFY_SOURCE=2 -O3 -c -o utils.o utils.c
In file included from utils.c:34:0:
mt.h:63:29: 致命的エラー: ncursesw/panel.h: そのようなファイルやディレクトリはありません
#include <ncursesw/panel.h>
^
コンパイルを停止しました。
make: *** [utils.o] エラー 1
→# yum install ncurses-devel.x86_64
multitailコマンド
multitailコマンドの基本的な使い方について記載します。
ちなみに、名前の通りにmultiなので引数に渡すファイルは何個でもいけます。
-
オプション-sでカラム数を指定すると横分割可能
# multitail -s 2 /var/log/messages /var/log/secure
-
オプション-lでさらにコマンド実行
# multitail -s 2 /var/log/messages /var/log/secure -l "ping 8.8.8.8"
応用的な使い方
- **multitail.confでカスタマイズ **
「multitail.conf」でカスタマイズすることができます。
ソースインストールするとデフォルトで「/etc/multitail.conf.new」が生成されるのでリネームして編集します。
# cp -p /etc/multitail.conf.new /etc/multitail.conf
# vi /etc/multitail.conf
当confファイルはセクション毎に区切られているので、例えばmessagesで*"error"*という単語を赤字で抽出したい場合は以下のように編集する。また、カラースキームの設定はデフォルトでも多くのログフォーマットにも対応し、syslog、ssh、postfix、apache、bind等主要デーモンに対応している。
confファイル編集後、multitailを実行する。そうすると、*"error"*の単語は赤字で出力される。
# multitail /var/log/messages
- 一度に複数のログをまとめて見る
# cd /var/log/
# multitail -s 7 *
*"/"を押すと検索画面になるので、例えば、"error"*で検索したい場合
/var/log配下にある全てのログから"error"のログを抽出してくれる
さいごに
実はmultitailは数年前からあるコマンドラインツールです。古い本読んでたら見つけて改めて使ってみると面白かったので、投稿しました。
it's your change your log life