○ isoqlogのインストール

・postfixのmaillogの解析をします
・isoqlog-2.2.1をソースからインストールし、設定します
・isoqlogは C言語 で書かれており、軽快に動作します
・nognogサイトさんの日本語パッチを当てています
・httpdが先に起動している必要があります
・make はメンテナンスマシンで行っています

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

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

○関連サイト

:isoqlog-2.2.1.tar.gz (http://www.enderunix.org/isoqlog/)
:isoqlog-2.2.1_japanese.patch  (http://www.nognog.com/techmemo/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)
httpd/phpのインストール

○インストール環境

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

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



○isoqlog-2.2.1

○ファイルの展開・インストール

# cd ~/src
[root@jupiter:~/src]
# tar zxvf isoqlog-2.2.1.tar.gz
# chown -R root:root isoqlog-2.2.1
# cd isoqlog-2.2.1
[root@jupiter:~/src/isoqlog-2.2.1]

・パッチを当てます (下記参照)
・パッチファイルは~/srcのディレクトリにおきます

# patch -p1 < ../isoqlog-2.2.1_UTF8.patch
# make distclean
# ./configure CFLAGS="-O2 -march=i686 -mtune=atom"

・CFLAGS="-O2 -march=i686 -mtune=atom" (CPU最適化オプション)
・該当しない場合は指定しない

# make
# make uninstall
# make install

# cd ~/src
[root@jupiter:~/src]
# tar jcvf isoqlog-2.2.1-160531.tar.bz2 isoqlog-2.2.1/

・WEB用ディレクトリの作成

# mkdir -p /home/www/myhome/isoqlog

・必要なファイルのコピー

# cd /usr/local/etc
[root@jupiter:/usr/local/etc]
# cp isoqlog.conf-dist isoqlog.conf
# cp isoqlog.domains-dist isoqlog.domains
# cd /usr/local/share/isoqlog/htmltemp
[root@jupiter:/usr/local/share/isoqlog/htmltemp]
# cp -a images library /home/www/myhome/isoqlog

・オーナー・グループ・パーミッションの変更

# cd /home/www/myhome
[root@jupiter:/home/www/myhome]
# chown -R apache:apache isoqlog
# find isoqlog -type f | xargs chmod g-w,o-rwx
# find isoqlog -type d | xargs chmod g-rw,o-rw

isoqlog-2.2.1_UTF8.patch

・nognogサイトさんのpatchを使わせてもらいます
・このサイトに合わせてコードをUTF-8にしています

○isoqlog.confの修正

・logstoreは[レポートhtml作成スクリプト]に合わせています

:/usr/local/etc/isoqlog.conf

#isoqlog Configuration file

logtype     = "postfix"
logstore    = "/var/log/mail.isoqlog"

domainsfile = "/usr/local/etc/isoqlog.domains"
outputdir   = "/home/www/myhome/isoqlog"
htmldir     = "/usr/local/share/isoqlog/htmltemp"
langfile    = "/usr/local/share/isoqlog/lang/japanese"
hostname    = "mail.528p.com"

maxsender   = 100
maxreceiver = 100
maxtotal    = 100
maxbyte     = 100

○isoqlog.domainsの修正

:/usr/local/etc/isoqlog.domains

mail.528p.com
528p.com

○レポートhtml作成スクリプト

:/usr/local/sbin/isoq-repo.sh (root root 700)

・logrotateでログが切り替わるので以前のものと合わせます
・rm, chown, chmod は危険なコマンドなので実行権に注意

#!/bin/bash

IQLDIR=/home/www/myhome/isoqlog

cat /var/log/{maillog,maillog.1} > /var/log/mail.isoqlog

/usr/local/bin/isoqlog >/dev/null 2>&1

rm -f /var/log/mail.isoqlog

find $IQLDIR -group root | xargs -r chown apache:apache
find $IQLDIR -type f -perm -o+r | xargs -r chmod g-w,o-rwx
find $IQLDIR -type d -perm -o+r | xargs -r chmod g-rw,o-rw

:/etc/cron.d/isoqlog-repo (root root 644)

・一日の終わりに isoq-repo.sh を実行します

MAILTO=""
58 23 * * * root /usr/local/sbin/isoq-repo.sh

○アクセス制限をします

・ローカルからの接続のみ許可します

:httpd-personal.conf(ファイル名は各自、httpdの設定を参照)

・httpd(apache) 2.4 の場合

<IfModule alias_module>
    Alias /isoqlog "/home/www/myhome/isoqlog"
</IfModule>

<Directory "/home/www/myhome/isoqlog">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
        Require ip 192.168.0
</Directory>

・httpd(apache) 2.2 の場合

<IfModule alias_module>
    Alias /isoqlog "/home/www/myhome/isoqlog"
</IfModule>

<Directory "/home/www/myhome/isoqlog">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 192.168.0
</Directory>



○isoqlog.css (参考)

・WEB用ディレクトリにコピーしたファイルを編集します
・文字サイズ pt (絶対サイズ) から px (相対サイズ) に変更してあります
・オリジナルでは.table_footherになっています (意図的?)

.table_header {
    font-size: 12px;
    font-weight: bold;
    color: #CC3333;
    text-decoration: none;
    background-color: #E9E9E9;
}

.header {
    font-size: 16px;
    color: #336633;
}

.table_data {
    font-size: 12px;
    color: #000000;
    text-decoration: none
}

.table_data_mon {
    font-size: 12px;
    font-weight: bold;
    color: #339966;
    text-decoration: underline;
}

.table_data_day {
    font-size: 12px;
    font-weight: bold;
    color: #339966;
    text-decoration: underline;
}

.table_data_total {
    font-size: 12px;
    color: #000000;
    text-decoration: none;
    font-weight: bold;
}

.table_footer {
    font-size: 12px;
    font-weight: bold;
    color: #CC3333;
    text-decoration: none;
    background-color: #E9E9E9;
}

.table_top_header {
    font-size: 14px;
    font-weight: bold;
    color: #0000CC;
    text-decoration: none;
    background-color: #E9E9E9;
}

.created_date {
    font-size: 12px;
    font-style: italic;
    color: #999999;
}

.domains {
    font-size: 16px;
    color: #990000;
    text-decoration: none;
}

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