○ Logcheckのインストール (参考)

・logを定期的にチェックし、管理者にメールを送ります
・logcheck-1.2.69をソースからインストールし、設定します
・logcheck-1.3.13はmime-constructを必要とします
・debianでメンテナンスされているバージョンです
・logwatchパッケージと競合するので停止します

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:logcheck_1.2.69.tar.gz (http://packages.debian.org/lenny/logcheck)
:lockfile-progs_0.1.11-0.1.tar.gz  (http://packages.debian.org/lenny/lockfile-progs)
:liblockfile_1.08.orig.tar.gz (http://packages.debian.org/lenny/liblockfile1)

○参照ファイル

:パッケージの追加
:最初の設定 (Xen)

○インストール環境

:OS CentOS 5.5
:selinux permissive
:インストール先 /usr/local/etc
:作業  /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○logcheck-1.2.69

○logwatchの調整

・/etc/cron.daily/@0logwatchシンボリックリンクを削除します
・またはlogwatchパッケージをアンインストールします

[root@earth:~]
# ls -l -o /etc/cron.daily
lrwxrwxrwx  1 root 28 Nov  7 13:15 0logwatch -> \
/usr/share/logwatch/scripts/logwatch.pl

# unlink /etc/cron.daily/0logwatch

・または

# rpm -e logwatch

○liblockfileのインストール

# cd /usr/src
[root@earth:/usr/src]
# tar zxf liblockfile_1.08.orig.tar.gz
# chown -R root:root liblockfile-1.08
# cd liblockfile-1.08
[root@earth:/usr/src/liblockfile-1.08]
# ./configure
# make

# mkdir -p /usr/local/man/{man1,man3}

# make install

○lockfile-progsのインストール

# cd /usr/src
[root@earth:/usr/src]
# tar zxf lockfile-progs_0.1.11-0.1.tar.gz
# chown -R root:root lockfile-progs-0.1.11
# cd lockfile-progs-0.1.11
[root@earth:/usr/src/lockfile-progs-0.1.11]
# make

・ファイルをコピーします

# cd bin
[root@earth:/usr/src/lockfile-progs-0.1.11/bin]
# cp -a * /usr/local/bin
# cd ../man
[root@earth:/usr/src/lockfile-progs-0.1.11/man]
# cp -a * /usr/local/man/man1

○logcheckのインストール

# cd /usr/src
[root@earth:/usr/src]
# tar zxf logcheck_1.2.69.tar.gz
# chown -R root:root logcheck-1.2.69
# cd logcheck-1.2.69
[root@earth:/usr/src/logcheck-1.2.69]
# make clean DESTDIR=
# make install DESTDIR=

・cronファイルをコピーします

# cp -a debian/logcheck.cron.d /etc/cron.d/logcheck

○専用ユーザの作成・ディレクトリ所有者の変更

・logcheckをsystemIDで登録します( <500 )

# cd ~
[root@earth:~]
# useradd -u 105 -G adm -d /var/lib/logcheck -s /sbin/nologin logcheck

・(ファイルを含む)ディレクトリ所有者を変更します

# chown -R logcheck:adm /etc/logcheck
# chown -R logcheck:adm /var/lock/logcheck 
# chown -R logcheck:adm /var/lib/logcheck

○logcheck.logfilesの修正

・チェックするログファイルを設定します

:/etc/logcheck/logcheck.logfiles

/var/log/maillog
/var/log/messages
/var/log/secure

○ログファイルのユーザ・グループ・パーミッションの変更

・ユーザlogcheckが読み込めるようにします

[root@earth:~]
# chmod 640 /var/log/{maillog,messages,secure}
# chgrp adm /var/log/{maillog,messages,secure}

○syslogローテートの修正

:/etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    create 0640 root adm
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

○cronファイルの修正

・毎日午前2時2分に実行します

:/etc/cron.d/logcheck (root root 644)

# /etc/cron.d/logcheck: crontab entries for the logcheck package

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

@reboot       logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi
02 2 * * *    logcheck    if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

# EOF

○logcheckスクリプトの修正

・lockfile-progsのインストール先 (/usr/local/bin) に合わせます
・ー部分 を +部分 にエディタで修正します(ー+は書き込まない)

:/usr/sbin/logcheck

--- logcheck.orig	2009-02-10 05:31:44.000000000 +0900
+++ logcheck	2010-12-16 07:14:45.000000000 +0900
@@ -31,9 +31,9 @@
     exit 1
 fi
 
-if [ ! -f /usr/bin/lockfile-create -o \
-     ! -f /usr/bin/lockfile-remove -o \
-     ! -f /usr/bin/lockfile-touch ]; then
+if [ ! -f /usr/local/bin/lockfile-create -o \
+     ! -f /usr/local/bin/lockfile-remove -o \
+     ! -f /usr/local/bin/lockfile-touch ]; then
     echo "fatal: lockfile-progs is a prerequisite for logcheck, and was not found."
     exit 1
 fi
@@ -211,7 +211,7 @@
 	    mkdir $cleaned \
 	        || error "Could not make dir $cleaned for cleaned rulefiles."
 	fi
-	for rulefile in $(run-parts --list $dir); do
+	for rulefile in $(run-parts $dir); do
 	    rulefile=$(basename $rulefile)
 	    if [ -f ${dir}/${rulefile} ]; then
 		debug "cleanrules: ${dir}/${rulefile}"

○・logcheckのテスト

[root@earth:~]
# su -s /bin/bash -c "/usr/sbin/logcheck -d" logcheck

○ Copyright(c) 528p.com All Rights Reserved.