CentOS 6 系 - ログ監視ツール SWATCH!
Updated:
Linux サーバでログ監視ツール SWATCH を利用されていいる方も結構いらっしゃると思います。 しかし、CentOS 6 系の場合は 5 系と同様の方法で設定しても SWATCH は起動しません。 (人によって手順・設定が異なるので一概には言えませんが、自分はそうでした。) 慌ててサーバ設定をしていると見逃してしまう事があります。 後になって、実は起動していなかった等となります。
ひいては、SWATCH が正常に作動していなかったことにより、DoS攻撃等を受けやすくなり Out of Memory による OOM-Killer 発動でマシン自体が正常に動作しなくなる事も考えられると思っています。 これに気付かず、本当は Apache 以外に原因があるにも関わらず、Apache の設定をむやみに変更したりしてしまう事にもなります。 もちろん、これでは根本的な解決にはなっていませんよね。
今日は、SWATCH を導入したにもかかわらず、起動時にエラーが発生してしまう場合の対処方法について記録です。
記録
0. 前提条件
- OS : CentOS 6.2 (i386)
- epel リポジトリが利用できるようになっている
- SWATCH を epel リポから導入し、各種設定済み
※CentOS 5 系は RPMforgeリポジトリから導入すると思いますが、CentOS 6 系になると、RPMforgeリポジトリに SWATCH がありませんので、epel リポジトリを使用しています。
1. エラー内容
SWATCH 起動時に発生するエラー内容は以下の通り。 (”/var/log/swatch/swatch.log” に(実際は2行で)出力)
Can't locate File/Tail.pm in @INC
(@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5
/usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl
/usr/lib/perl5 /usr/share/perl5 .) at /tmp/.swatch_script.5381 line 90.
BEGIN failed--compilation aborted at /tmp/.swatch_script.5381 line 90.
2. 原因
エラー内容からすると、”File/Tail.pm” が所定の場所に見つからないと言っているようです。 要は Perl モジュール perl-File-Tail がインストールされていないという事です。
3. 対策
Perl モジュール perl-File-Tail をインストールすればよいだけです。 このモジュールも SWATCH 同様 epel リポジトリからインストールします。
# yum --enablerepo=epel -y install perl-File-Tail
※当方は、epel リポジトリは普段は利用しないように “enabled=0” としているので、”–enablerepo=epel” オプションを付けています。
4. 動作確認
SWATCH を起動してみる。
# /etc/rc.d/init.d/swatch start
Starting swatch
起動に失敗しても、コンソールにはエラー内容は出力されません。(これが、起動しているものと勘違いする原因です)
そして、”/var/log/swatch/swatch.log” にエラーが出力されなくなったことを確認します。
# cat /var/log/swatch/swatch.log
また、ステータスを確認して以下のように出力されれば、SWATCH は動いていると確認できます。
# /etc/rc.d/init.d/swatch status
swatch (pid 7932 7940 7947) is running...
以上。
Comments