## FreeBSDへインストール（任意）

FreeBSDへインストール（任意） — FreeBSDへのmilter manager関連ソフトウェアのインストール方法

## このドキュメントについて

FreeBSDに特化したmilter manager関連ソフトウェアのインストール方法について説明します。milter manager本体のインストール情報は FreeBSDへインストール 、FreeBSDに依存しない一般的なインストール情報は インストール を見てください。

## milter-manager-log-analyzerのインストール

milter-manager-log-analyzerはmilter managerのログを解析して統計情報をグラフ化します。

milter-manager-log-analyzerが出力するグラフは同じホストにWebサーバを設置して閲覧する方法と Munin を利用して別ホストで閲覧する方法があります。すでにMuninを導入していたり、メールサーバとは別にシステム監視用のサーバがある場合はMuninを利用するとよいでしょう。そうでない場合は同じホストにWebサーバを設置するのがよいでしょう [6] 。

まずは、milter-manager-log-analyzerのインストール方法を説明します。次に、グラフを閲覧する環境を説明します。

グラフを閲覧する環境の設定方法は、まず、同じホストにWebサーバを設置する方法を説明し、次に別ホストにあるMuninから閲覧する方法を説明します。

それでは、まず、milter-manager-log-analyzerのインストール方法です。

### パッケージのインストール

グラフを生成するためにRRDtoolを使います。RRDtoolのRubyインターフェイスもインストールします。

注: RRDtool 1.3.8のRubyバインディングにはバグがあるので、1.3.8を使うときは"-M'WITH_RUBY_MODULE=yes'"オプションは指定しないでください。

    % sudo /usr/local/sbin/portupgrade -NRr -m 'WITH_RUBY_MODULE=true' databases/rrdtool

### milter-manager-log-analyzerの設定

milter-manager-log-analyzerはcronで定期的にログを解析し、グラフを生成します。そのためのcronの設定をするファイルが/usr/local/etc/milter-manager/cron.d/freebsd/milter-manager-logにインストールされています。このファイルを使うと、5分毎にログを解析し、~milter-manager/public_html/log/以下にグラフを生成します。

    % sudo -u milter-manager -H crontab /usr/local/etc/milter-manager/cron.d/freebsd/milter-manager-log

milter-manager-log-analyzerは5分おきに実行されているかどうかは、/var/log/cronを見ると確認できます。

これで、milter-manager-log-analyzerのインストールが完了したので、milter-manager-log-analyzerが生成するグラフを閲覧するための環境を設定します。まずは、同じホストにWebサーバを設置する方法です。

### 同じホストにWebサーバを設置する場合

#### パッケージのインストール

WebサーバとしてApacheを使います。ここでは、Apache 2.2系列（www/apache22）をインストールします。

    % sudo /usr/local/sbin/portupgrade -NRr www/apache22

#### Apacheの設定

グラフは~milter-manager/public_html/log/以下に生成しているので、http://localhost/~milter-manager/log/で閲覧できるようにします。

Apacheで各ユーザ毎にファイルを公開できるようにします。/usr/local/etc/apache22/httpd.confを以下のように編集します。

編集前:

    # User home directories
    #Include etc/apache22/extra/httpd-userdir.conf

編集後:

    # User home directories
    Include etc/apache22/extra/httpd-userdir.conf

設定を再読み込みします。

    % sudo /usr/local/etc/rc.d/apache22 reload

これでhttp://localhost/~milter-manager/log/でグラフを閲覧できるようになります。

### 別ホストにあるMuninを利用する方法

次は、別ホストにあるMunin上でグラフを閲覧する方法です。

#### パッケージのインストール

Muninサーバに統計情報を送るmunin-nodeをインストールします。

    % sudo /usr/local/sbin/portupgrade -NRr munin-node

#### munin-nodeの設定

milter-manager-log-analyzerが収集した統計情報をMuninに提供するMuninプラグインをインストールします。プラグインは/usr/local/share/munin/plugins/以下にインストールされているので、まずは、それらをmunin-nodeのプラグインディレクトリにインストールします。

    % sudo ln -s /usr/local/share/milter-manager/munin/plugins/* /usr/local/share/munin/plugins

これらのプラグインの設定を書いた/usr/local/etc/munin/plugin-conf.d/milter-manager.confを作成します。

/usr/local/etc/munin/plugin-conf.d/milter-manager.conf:

    [milter_manager_*]
      user milter-manager
      env.PATH /bin:/usr/local/bin:/usr/bin
      env.logdir /home/milter-manager/public_html/log
      env.pidfile /var/run/milter-manager/milter-manager.pid

最後にインストールしたプラグインのうち必要なものだけ有効にします。

    % sudo /usr/local/sbin/munin-node-configure --shell | grep -e '\(milter_manager_\|postfix_processes\|sendmail_processes\)' | sudo sh

プラグインのインストールはこれで完了です。

注: Muninに統計情報を提供する場合はmilter manager 1.5.0以降のmilter-manager-log-analyzerが生成したデータベースを使う必要があります。1.5.0より前のバージョンからアップデートしている場合は~milter-manager/public_html/log/以下を削除してください。削除すると5分後に新しく統計情報データベースが作成されます。

次に、Muninサーバからの接続を許可します。Muninサーバが192.168.1.254の場合は以下の行を/usr/local/etc/munin/munin-node.confに追加します。

/usr/local/etc/munin/munin-node.conf:

    allow ^192\.168\.1\.254$

munin-nodeを再起動し設定を反映させます。

    % sudo /usr/local/etc/rc.d/munin-node.sh restart

#### Muninサーバの設定

ここからは監視用サーバでの設定です。監視用サーバもFreeBSDで動いているとします。

まず、muninとApacheをインストールします。

    monitoring-server% sudo /usr/local/sbin/portupgrade -NRr munin-main www/apache22

muninの監視対象にmunin-nodeが動いているメールサーバを追加します。メールサーバが以下の場合の/usr/local/etc/munin/munin.confへ追加する設定項目を示します。

ホスト名 | mail.example.com
IPアドレス | 192.168.1.2

このメールサーバを登録するには、以下の内容を/usr/local/etc/munin/munin.confに追記します。

/usr/local/etc/munin/munin.conf:

    [mail.example.com]
        address 192.168.1.2
        use_node_name yes

Muninは/usr/local/www/munin/以下にグラフを生成するので、それをhttp://monitoring-server/munin/で閲覧できるようにします。

    % sudo ln -s /usr/local/www/munin/ /usr/local/www/apache22/data/

5分後にはhttp://monitoring-server/munin/でグラフを閲覧できるようになります。

## milter manager adminのインストール

### パッケージのインストール

以下のパッケージをインストールすることにより、関連するパッケージもインストールされます。

    % sudo /usr/local/sbin/portupgrade -NRr rubygem-sqlite3 ruby-iconv

### gemのインストール

    % sudo gem install rack -v '1.1.3'
    % sudo gem install rails -v '2.3.14'
    % sudo gem install passenger -v '2.2.15'

### Passengerのインストール

以下のコマンドを実行し、Passengerをビルドします。

    % (echo 1; echo) | sudo passenger-install-apache2-module

以下の内容の/usr/local/etc/apache22/Includes/passenger.confを作成します。

    LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
    PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
    PassengerRuby /usr/local/bin/ruby18

    RailsBaseURI /milter-manager

設定ファイルを再読み込みします。

    % sudo /usr/local/etc/rc.d/apache22 reload

milter manager adminはパスワード認証がついていますが、可能であれば信頼できるホストからのみ接続を受け付ける方がセキュリティ上は好ましいです。例えば、ローカルホストのみ信頼できるのであれば、以下の設定を/usr/local/etc/apache22/Includes/passenger.conf に追記してください。

    <Location /milter-manager>
      Allow from 127.0.0.1
      Deny from ALL
    </Location>

追記した場合は設定ファイルを再読み込みするのを忘れないでください。

    % sudo /usr/local/etc/rc.d/apache22 reload

### milter manager adminの設定

milter manager adminは/usr/local/share/milter-manager/admin/以下にインストールされています。これをmilter-managerユーザ権限で動かし、http://localhost/milter-manager/でアクセスできるようにします。

    % tar cf - -C /usr/local/share/milter-manager admin | sudo -u milter-manager -H tar xf - -C ~milter-manager
    % sudo ln -s ~milter-manager/admin/public /usr/local/www/apache22/data/milter-manager
    % cd ~milter-manager/admin
    % sudo -u milter-manager -H rake gems:install
    % sudo -u milter-manager -H rake RAILS_ENV=production db:migrate

最後に以下の内容の~milter-manager/admin/config/initializers/relative_url_root.rbを作成します。

~milter-manager/admin/config/initializers/relative_url_root.rb

    ActionController::Base.relative_url_root = "/milter-manager"

http://localhost/milter-manager/にアクセスしてユーザを登録してください。ユーザを登録したら、milter-managerと接続するための情報を設定するページへ移動します。milter-managerがどこで接続を受け付けているかは以下で確認可能です。

    % sudo -u milter-manager -H /usr/local/sbin/milter-manager --show-config | grep controller.connection_spec
    controller.connection_spec = "unix:/var/run/milter-manager/milter-manager-controller.sock"

確認した値をブラウザから登録してください。上記の場合だと、まず、「種類」から「unix」を選びます。これで編集フォームに「パス」がでてきます。「パス」には「/var/run/milter-manager/milter-manager-controller.sock」を指定してください。

登録すると、milter-managerに登録されている子milterやその設定状況をブラウザから確認することができます。

## まとめ

milter-manager-log-analyzerを利用することによりmilterを導入した効果を視覚的に確認することができます。MTAとしてPostfixを使用しているのであれば、 Mailgraph のグラフと見くらべてmilter導入の効果を確認することができます。milterを試験的に導入している場合などに有効に活用できます。

milter manager adminを利用することで設定ファイルを変更せずに運用できる領域が広がり、メールシステムの管理コストを下げることができます。

また、Webブラウザからmilterの有効・無効を切り替えることもできるため、milterの効果を試行錯誤する場合に便利です。milter-manager-log-analyzerのグラフとあわせて、それぞれのメールシステムに適した迷惑メール対策の適用を支援します。

[6] 同じホストでMuninを動かす場合もWebサーバが必要になります。