qmailanalogでメールログ解析
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*qmailanalogでできること [#lfc9f1d6]
-zdeferrals:deferrals(配送が先延ばし)されたときの理由...
-zddist:メール遅送の集計
-zfailures:失敗メールの確認
-zoverall:基本的で最も重要な統計
-zrecipients:受け取り先の統計
-zrhosts:相手のホストの集計
-zrxdelay:受け取り先の統計(遅れ具合でソート)
-zsenders:差し出し元の集計
-zsuccesses:成功時の理由の集計
-zsuids:差し出し元のUID集計
qmailanalogにはmultilogから特定の期間を取り出して解析する...
+/var/log/qmail/ディレクトリ下のログファイルからqlogselec...
+抽出したログをmatchupで整形し、一時ファイルに保存
+一時保存したファイルを各スクリプトで必要な情報を収集する
+メールで管理者に報告
*qmailanalogインストール [#a1df9d7c]
http://cr.yp.to/qmailanalog.html から qmailanalog-0.70.ta...
# tar xvfz qmailanalog-0.70.tar.gz
# cd qmailanalog-0.70
# make
# make setup check
/usr/local/qmailanalog にインストールされる
*qlogselectの準備 [#oba0a208]
# wget http://www.qcc.sk.ca/~charlesc/software/misc/qlog...
# chmod +x qlogselect
# mv qlogselect /usr/local/qmailanalog/bin
*実行スクリプトの作成 [#k63f5636]
tai64n2tai コマンドがないので http://untroubled.org/qlogt...
# tar xvzf qlogtools-3.1.tar.gz
# cd qlogtools-3.1
# make
# mv tai64n2tai /usr/local/qmailanalog/bin
# cd ..
# rm -fr qlogtools-3.1*
# vi /usr/local/qmailanalog/bin/analog.sh
#!/bin/sh
MAILTO=mailto@example.com
MAILFROM=mailfrom@example.com
export PATH="$PATH:/usr/local/qmailanalog/bin:/var/qmail...
tmpdir=/tmp/qmail-cron.$$.$RANDOM
mkdir $tmpdir
pushd $tmpdir >/dev/null
s_year=`date -d '1 day ago' +%Y`
s_month=`date -d '1 day ago' +%m`
s_day=`date -d '1 day ago' +%d`
e_year=`date +%Y`
e_month=`date +%m`
e_day=`date +%d`
start="$s_year-$s_month-$s_day"
end="$e_year-$e_month-$e_day"
LOGDIR=/var/log/qmail
cat "$LOGDIR"/{"@",cur}* \
| tai64n2tai \
| qlogselect start $start end $end \
| matchup >logfile 5>/dev/null
for ana in zoverall zddist zdeferrals zfailures zrhosts ...
echo "" >>result
echo "-----------Result of $ana------------" >>result
$ana 2>/dev/null <logfile >>result
done
rm -f logfile
(echo "To: $MAILTO"
echo "From: $MAILFROM"
echo "Subject: mailstats for $s_year-$s_month-$s_day"
echo ""
cat result )| qmail-inject -f $MAILFROM
rm -f result
popd >/dev/null
rm -rf $tmpdir
2日間を対象にするなら「2 days ago」、1週間なら「1 week ag...
# chmod +x /usr/local/qmailanalog/bin/analog.sh
# /usr/local/qmailanalog/bin/analog.sh
でメールが MAILTO 宛に届けばOK
crontabで実行するには
# crontab -e
30 4 * * * /usr/local/qmailanalog/bin/analog.sh 2>/dev/n...
#exlink
終了行:
*qmailanalogでできること [#lfc9f1d6]
-zdeferrals:deferrals(配送が先延ばし)されたときの理由...
-zddist:メール遅送の集計
-zfailures:失敗メールの確認
-zoverall:基本的で最も重要な統計
-zrecipients:受け取り先の統計
-zrhosts:相手のホストの集計
-zrxdelay:受け取り先の統計(遅れ具合でソート)
-zsenders:差し出し元の集計
-zsuccesses:成功時の理由の集計
-zsuids:差し出し元のUID集計
qmailanalogにはmultilogから特定の期間を取り出して解析する...
+/var/log/qmail/ディレクトリ下のログファイルからqlogselec...
+抽出したログをmatchupで整形し、一時ファイルに保存
+一時保存したファイルを各スクリプトで必要な情報を収集する
+メールで管理者に報告
*qmailanalogインストール [#a1df9d7c]
http://cr.yp.to/qmailanalog.html から qmailanalog-0.70.ta...
# tar xvfz qmailanalog-0.70.tar.gz
# cd qmailanalog-0.70
# make
# make setup check
/usr/local/qmailanalog にインストールされる
*qlogselectの準備 [#oba0a208]
# wget http://www.qcc.sk.ca/~charlesc/software/misc/qlog...
# chmod +x qlogselect
# mv qlogselect /usr/local/qmailanalog/bin
*実行スクリプトの作成 [#k63f5636]
tai64n2tai コマンドがないので http://untroubled.org/qlogt...
# tar xvzf qlogtools-3.1.tar.gz
# cd qlogtools-3.1
# make
# mv tai64n2tai /usr/local/qmailanalog/bin
# cd ..
# rm -fr qlogtools-3.1*
# vi /usr/local/qmailanalog/bin/analog.sh
#!/bin/sh
MAILTO=mailto@example.com
MAILFROM=mailfrom@example.com
export PATH="$PATH:/usr/local/qmailanalog/bin:/var/qmail...
tmpdir=/tmp/qmail-cron.$$.$RANDOM
mkdir $tmpdir
pushd $tmpdir >/dev/null
s_year=`date -d '1 day ago' +%Y`
s_month=`date -d '1 day ago' +%m`
s_day=`date -d '1 day ago' +%d`
e_year=`date +%Y`
e_month=`date +%m`
e_day=`date +%d`
start="$s_year-$s_month-$s_day"
end="$e_year-$e_month-$e_day"
LOGDIR=/var/log/qmail
cat "$LOGDIR"/{"@",cur}* \
| tai64n2tai \
| qlogselect start $start end $end \
| matchup >logfile 5>/dev/null
for ana in zoverall zddist zdeferrals zfailures zrhosts ...
echo "" >>result
echo "-----------Result of $ana------------" >>result
$ana 2>/dev/null <logfile >>result
done
rm -f logfile
(echo "To: $MAILTO"
echo "From: $MAILFROM"
echo "Subject: mailstats for $s_year-$s_month-$s_day"
echo ""
cat result )| qmail-inject -f $MAILFROM
rm -f result
popd >/dev/null
rm -rf $tmpdir
2日間を対象にするなら「2 days ago」、1週間なら「1 week ag...
# chmod +x /usr/local/qmailanalog/bin/analog.sh
# /usr/local/qmailanalog/bin/analog.sh
でメールが MAILTO 宛に届けばOK
crontabで実行するには
# crontab -e
30 4 * * * /usr/local/qmailanalog/bin/analog.sh 2>/dev/n...
#exlink
ページ名: