AlmaLinux/RockyLinux8以降のメーリングリストを考える

メーリングリストとして長らくMailmanのお世話になっていたものの、CentOS 7のサポート終了が近く、OSを移行する事に。

ここで、AlmaLinux/RockyLinuxでMailmanを使おうとすると、以下の点に気が付く。

  • CenOS7まで使っていたMailmanは、python2で書かれたmailman2である
  • AlmaLinux/RockyLinux8では、python2は Retirement Date:Jun 2024 (末尾のLife Cycleを参照)
  • そもそも、python2はとっくにEOL(2020年)


AlmaLinux/RockyLinux8では、Mailman2をOSのサポート期限終了(2029年)まで安心して使えないため、使い慣れたMailman2を諦める事に・・・。

という訳で、Mailman2だった環境からMLを乗り換える時の選択肢を調べた。
(移行先はクラウドNG、オンプレ限定)

Mailman3(python3)

Mailman」と冠しているが、Mailman2と互換性は無い。
Fedora向けのepel9ではRPMパッケージがある。

mlmmj(本体はC、WebUIはperlまたはPHP

機能は少なくシンプル。
本体はCで書かれているため高速と思われる。
epel8/9でパッケージ提供あり。
公式のソースが2017年で開発が止まっている。EOLでは無さそう。
件名のprefixに連番を付ける機能が標準で無さそう(たぶん)
WebUIが微妙な感じ。

sympa(perl

mailmanのように高機能。
epel8/9でパッケージ提供あり。
件名のprefixに連番を付ける機能がある。(テキストのファイルを修正すれば、値を途中からにも変更可能)
GUIにはmod_proxyが必要。
(動作させて分かったが)メモリ消費が多く、sympaだけで1GB以上必要。
メモリが少ない環境では厳しい可能性あり。

fml(perl

ソースからインストールするしかない。
公式のソースが2018年で開発が止まっている。EOLでは無さそう?
WebUI環境を使えるようにするまでの敷居が高く見える。

majordomo(perl

ソースからインストールするしかない。
公式のソースが2000年で開発が止まっている。
こちらを選択する理由は無い。


なお、他にもezmlm(qmail環境下で利用)があるが、postfix環境のため除外。

インストールやアップデートのし易さから考えると、mlmmj または sympaが良さそう。

mlmmjはシンプル・省リソース、sympaは高機能・要メモリといった特徴になる。

awstatsでgeoipfreeプラグインが動作しない

久々にawstatsを触る機会があり、セットアップしたものの解析が動作しない。

特定のプラグインを有効化していたが、その動作に必要なperlモジュールをインストールし忘れていただけ、というオチだった(´・ω・`)

環境

AlmaLinux release 8.9 (Midnight Oncilla)

症状と原因

awstasを設置したが、ログが解析されない。

何が起こっているのか調べるために、
/etc/cron.hourly/awstats に記述されているコマンドから、/dev/null への出力を無しにして手動で実行してみる。

# cat /etc/cron.hourly/awstats
#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now -configdir="/etc/awstats" -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

以下だけ実行。

# exec /usr/share/awstats/tools/awstats_updateall.pl now -configdir="/etc/awstats" -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl"

次のようなエラーが出た。

Error: Plugin load for plugin 'geoipfree' failed with return code: Error: Can't locate Geo/IPfree.pm in @INC (you may need to install the Geo::IPfree module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 /usr/share/awstats/lib /usr/share/awstats/plugins /usr/share/awstats/wwwroot/cgi-bin/plugins) at (eval 2) line 1.


aestatsのconfファイルにて、

LoadPlugin="geoipfree"

の行を有効化しているにもかかわらず、そのプラグインを動作するためのGeo/IPfree.pmが無いらしい。

解決法

cpanからGeo::IPfreeをインストール。

cpan> install Geo::IPfree

これでログが解析されるようになる。
但し、パッケージ同梱の国判定DBは古く、定義を更新しなければ精度が良くならない。

DB定義を更新する geoipupdate パッケージをインストールしても、ライセンスを投入しなければ定義ファイルが更新されないので注意。
ライセンスは、maxmind へユーザ登録して入手する必要あり。

MaxMind / Updating GeoIP and GeoLite Databases
Updating GeoIP and GeoLite Databases | MaxMind Developer Portal