ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
SpamAssassin回りのログをチェックしていたら、razor2のエラーが出ているのに気づきました。
Feb 9 15:11:53 kamatans spamd[6576]: razor2: razor2 check failed: No such file or directory razor2: Can't read conf file: /etc/razor/razor-agent.conf at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Plugin/Razor2.pm line 331.
テストしてみましたが、not vailableになっています。
# cd /usr/share/doc/spamassassin # spamassassin -t -D razor2 < sample-spam.txt 2月 09 23:03:55.558 [1674] warn: config: created user preferences file: /root/.spamassassin/user_prefs 2月 09 23:03:55.571 [1674] dbg: razor2: razor2 is not available 2月 09 23:03:55.897 [1674] info: config: failed to parse, now a plugin, skipping, in "/etc/mail/spamassassin/local.cf": ok_languages ja en 2月 09 23:04:18.890 [1674] info: rules: meta test TO_EQ_FM_SPF_FAIL has dependency 'ALL_TRUSTED' with a zero score 2月 09 23:04:18.890 [1674] info: rules: meta test URI_DATA has dependency 'ALL_TRUSTED' with a zero score 2月 09 23:04:18.890 [1674] info: rules: meta test MSMAIL_PRI_ABNORMAL has dependency 'ALL_TRUSTED' with a zero score …
/etc/mail/spamassassin/local.cfを確認してみると、use_razor2が1となり使用する設定となっています。
# Spamassassinは全てのメールを対象に次のようなユーティリティを使うのがデフォルトになってるが、
# (詳しくは http://www.spamassassin.org/dist/INSTALL で)
# CPU負荷になるものを避けるために当分インストールせずに使用不可にしておく。
use_pyzor 0
# razor2チェックを使用
use_razor2 1
loadplugin Mail::SpamAssassin::Plugin::Razor2
razor_config /etc/razor/razor-agent.conf
local.cfは秘伝のタレと化していますので、いままでずっとrazor2はエラー出ていたんだろうな…。ということでちゃんと対応することにします。
razor2は今はパッケージでダウンロード&インストール可能です。
# dnf install pyzor メタデータの期限切れの最終確認: 0:37:11 時間前の 2021年02月09日 22時22分27秒 に実施しました。 依存関係が解決しました。 =================================================================================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ =================================================================================================================================================================================== インストール: pyzor noarch 1.0.0-19.20180724git2b8d76d.el8 epel 84 k トランザクションの概要 =================================================================================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 84 k インストール済みのサイズ: 249 k これでよろしいですか? [y/N]: y
/etc/razor/razor-agent.confを以下のように作成します。
#
# Razor2 config file
#
# Autogenerated by Razor-Agents v2.84
# Sat Feb 29 22:19:37 2020
# Non-default values taken from /etc/razor/razor-agent.conf
#
# see razor-agent.conf(5) man page
#
debuglevel = 3
identity = identity
ignorelist = 0
listfile_catalogue = servers.catalogue.lst
listfile_discovery = servers.discovery.lst
listfile_nomination = servers.nomination.lst
logfile = razor-agent.log
logic_method = 4
min_cf = ac
razordiscovery = discovery.razor.cloudmark.com
razorhome = /etc/mail/spamassassin/.razor
rediscovery_wait = 172800
report_headers = 1
turn_off_discovery = 0
use_engines = 4,8
whitelist = razor-whitelist
テストしてみます。
# spamassassin -t -D razor2 < sample-spam.txt Feb 9 23:07:37.397 [2328] dbg: razor2: razor2 is available, version 2.84 Feb 9 23:07:37.985 [2328] warn: netset: cannot include 127.0.0.0/8 as it has already been included Razor-Log: read_file: 16 items read from /etc/razor/razor-agent.conf Razor-Log: Found razorhome: /etc/mail/spamassassin/.razor Feb 09 23:07:42.412129 check[2328]: [ 2] [bootup] Logging initiated LogDebugLevel=9 to stdout Feb 09 23:07:42.412246 check[2328]: [ 5] computed razorhome=/etc/mail/spamassassin/.razor, conf=/etc/razor/razor-agent.conf, ident=/etc/mail/spamassassin/.razor/identity Feb 09 23:07:42.412290 check[2328]: [ 8] Client supported_engines: 4 8 Feb 09 23:07:42.412395 check[2328]: [ 8] prep_mail done: mail 1 headers=293, mime0=616 …
せっかくなのでuse_pyzorも1にセットします。
# Spamassassinは全てのメールを対象に次のようなユーティリティを使うのがデフォルトになってるが、
# (詳しくは http://www.spamassassin.org/dist/INSTALL で)
# CPU負荷になるものを避けるために当分インストールせずに使用不可にしておく。
use_pyzor 1
# razor2チェックを使用
use_razor2 1
loadplugin Mail::SpamAssassin::Plugin::Razor2
razor_config /etc/razor/razor-agent.conf
SpamAssassinはCPUに負荷を掛けますのでリミッターをかけておきます。
/usr/lib/systemd/system/spamassassin.serviceを編集して12-13行目を追加しておきます。
[Unit]
Description=Spamassassin daemon
After=syslog.target network.target
Wants=sa-update.timer
[Service]
EnvironmentFile=-/etc/sysconfig/spamassassin
ExecStart=/usr/bin/spamd $SPAMDOPTIONS
StandardOutput=null
StandardError=null
Restart=always
CPUQuota=30%
Nice=19
[Install]
WantedBy=multi-user.target
systemctl daemon-reload; systemctl restart spamassassinの後、topコマンドで設定が反映されているか確認します。
# systemctl daemon-reload # systemctl restart spamassassin # top top - 10:26:12 up 11:14, 3 users, load average: 0.00, 0.02, 0.00 Tasks: 269 total, 2 running, 267 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 2823.6 total, 604.7 free, 1640.0 used, 579.0 buff/cache MiB Swap: 4152.0 total, 3427.2 free, 724.8 used. 957.0 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1356 amavis 20 0 1461944 513604 8308 S 0.0 17.8 0:18.23 clamd 1341 named 20 0 746580 304012 7232 S 0.0 10.5 0:25.37 named 3016 amavis 20 0 354008 183352 12556 S 0.0 6.3 0:03.65 /usr/sbin/amavi 3015 amavis 20 0 353304 181760 12516 S 0.0 6.3 0:02.45 /usr/sbin/amavi 3010 amavis 20 0 340312 169016 10356 S 0.0 5.8 0:05.29 /usr/sbin/amavi 5680 root 39 19 252268 128792 11004 S 0.0 4.5 0:05.79 spamd 5687 root 39 19 252268 119904 2116 S 0.0 4.1 0:00.00 spamd child 5688 root 39 19 252268 119584 1796 S 0.0 4.1 0:00.00 spamd child
"NI"の欄がnice値となり、spamdは19に変更されているのが確認できます。これでプロセスの優先度は劣後し、CPUの使用率も上限30%までに制限されます。
記事は以上!