OS は fedora core 5 / 6 で、以下のような構成で。
- www (192.168.0.10)
- Apache, spread
- loghost (192.168.0.11)
- spread, spreadlogd
spread-src-3.17.4.tar.gz をダウンロードし、展開。
$ ./configure $ make # make install
/usr/local/lib にライブラリがインストールされるので、ld.so.conf に /usr/local/lib を追加し、/sbin/ldconfig しておく。
Perl モジュールもインストール。
$ cd perl/Spread $ perl Makefile.PL $ make $ make test # make install
Spread.pm はインターフェースが Perl っぽくなくて、いまいち使いづらいので、Perl 使いの方は Spread::Session も入れておくと吉かも。
/usr/local/etc/spread.conf
# ブロードキャストを使う場合
Spread_Segment 192.168.0.255:4803 {
www 192.168.0.10
loghost 192.168.0.11
}
# マルチキャストを使う場合
Spread_Segment 225.0.0.1:4803 {
www 192.168.0.10
loghost 192.168.0.11
}
RuntimeDir = /var/run/spread
DaemonUser = nobody
DaemonGroup = nobody最初、閉じたネットワーク (default gateway がない) でマルチキャストを使おうとしたら
DL_init_channel: problem in setsockopt to multicast address
というエラーが出て spread が起動せず。かなりはまった。
# route add -net 224.0.0.0/4 dev eth0
として、マルチキャストの経路を設定してやる必要があった。
DaemonUser, DaemonGroup を指定した場合は RuntimeDir に chroot して動作するため、あらかじめ /var/run/spread を作成しておく。
起動。
# /usr/local/sbin/spread
(中略)
Conf_init: using file: /usr/local/etc/spread.conf
Successfully configured Segment 0 [225.0.0.1:4803] with 2 procs:
www: 192.168.0.10
loghost: 192.168.0.11
Set user name to 'nobody'
Set group name to 'nobody'
Membership id is ( -1062731627, 1169641071)
--------------------
Configuration at fc5 is:
Num Segments 1
2 225.0.0.1 4803
www 192.168.0.10
loghost 192.168.0.11
====================
++++++++++++++++++++++
Num of groups: 0www, loghost 両方で起動すると、数秒でこんな感じに。
spread が起動した状態で、spuser という対話コマンドを使うと、メッセージの送受信がテストできます。