2007年12月17日
検証サーバの限界…そして次の一手
メインで使用している「お爺ちゃんサーバ」。その「お爺ちゃんサーバ」のリソースの大半をspamdが使っている。
自分が使用可能な検証サーバが複数あるので、試しにspamdを外部サーバへ切替えてみた。
spamc(procmail)の設定
procmailのレシピ例:0fw | /usr/bin/spamc -u spamd -d spamd.example.comspamdに-dオプションを指定すると、サーバを指定可能。
spamdの設定
設定の詳細は割愛。分かる人にはわかる設定。自分はdaemontoolsが好きなのでsuperviseとenvdirでプロセスを管理している。
envdirを使うと、共通項目とサーバ固有の設定を分離出来る点がとても良い。
# cat /service/spamd-shared-ro/run
#!/bin/sh
#
# for spamd-ro (read-only)
#
exec 2>&1
sleep 3
PATH=/sbin:/bin:/usr/sbin:/usr/bin
exec envdir ./env sh -c '
exec /usr/sbin/spamd \
--siteconfigpath=${SITECONFIGPATH:-/etc/spamassassin/spamd-ro} \
--helper-home-dir=${HELPERHOMEDIR:-/var/lib/spamd/ro} \
--username=${USERNAME:-spamd} \
--groupname=${GROUPNAME:-spamd} \
--max-children=${MAXCHILDREN:-2} \
--debug=${DEBUGAREAS} \
--syslog=${SYSLOG} \
--allowed-ips=${ALLOWEDIPS:-127.0.0.1} \
--listen-ip=${LISTENIP:-127.0.0.1}
'
allowd-ipsには接続を許可する元IPアドレスを指定する。これにより、論理的でも物理的でもいいけど、spamcとspamdを別サーバで動かせる。
効果
[変更前] 作業をしていてストレスを感じる事がたたあった。↓
[変更後] ストレスを感じなくなった。
共用spamd構想
そこそこのスペックのspamdサーバと、数台のspamcサーバで検証するのはどうなんだろうか。
社内向けに『spamdだけサービス提供』と言うのも面白い…かな。