Pandora FMSで遊ぶ(1)

Zabbixもいい加減古い。
UIも古臭いから、なにか試そうと思って見つけたPandora FMSをFreeBSD環境に入れてみた。
今回はインストールの話だけ。

FreeBSDにもpkgで簡単に入れられる。
portsだとダメだのなんだの、古い情報が山のように残ってるけど、今はpkgで一発。

# pkg install pandora-console pandora-server
(お茶を淹れてケーキを食べても終わらないインストールを待つ)
# pkg info | wc -l
     172

一発ではあるが、恐ろしい量の依存パッケージがあるので、テストしたい人は仮想マシンでも立てて試すことをお勧めする。(※1)
そして、一発でインストールはできるが動作はしない。
pkgでphp-fpmなモノを入れるのは初めてだったので知らないが、LoadModuleなどを手書きする必要がある。
jailで専用に作っているので、ほかのモジュールのことなど考えず、以下を作る。

/usr/local/etc/apache24/Includes/pandora_console_fpm.conf:

LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so

<LocationMatch ^/pandora_console/(.*\.php(/.*)?)$>
    ProxyPassMatch fcgi://10.0.0.2:9000/usr/local/www/pandora_console/$1
    DirectoryIndex /index.php index.php
</LocationMatch>

もちろん10.0.0.2:9000のところは、自分のIPアドレスにする。jailでないなら127.0.0.1でいい。

あとはrc.confを書いて、全部起こす。(もちろん再起動でもいいしservice startでもいい。)
pandora_serverはまだ設定が済んでいないので、起動に失敗するが気にしない。

# sysrc apache24_enable=YES
# sysrc php_fpm_enable=YES
# sysrc pandora_server_enable=YES

これでWebブラウザから http:///pandora_console/ で初期設定画面が見えるようになる。
あとは画面にしたがってmysqlmariadbサーバ(材料に含まない)のアドレスやユーザを入れてやれば、データベースを作ってくれる。

ちなみに、ここで使うユーザはmysqlのデータベースを作成して、GRANTを実行できるような非常に強い権限を持ったユーザが必要なことに注意する。
もっと言うと、mysqlのGRANT ALL PRIVILEGESはGRANT OPTIONを含まないので、pandoraのセットアップ用に一時ユーザを作る場合はこの点に注意しておかないといけない。
もっともっと言うと、GRANTが失敗した場合、初期設定画面のSTEP 6にまともなエラーが出ない。こんな風になる。

この画面を見ると「なにも失敗してないのに失敗してるの?」と思う。「全部緑になってるじゃないか」と。
これを書いた時点で気づくだろうが、右側が赤くなっているあいつが失敗を表している。
重要だからよく読め、ということではない。あのステップが失敗している。エラーメッセージなど書いていないが。

さて、途中でデータベースのパスワードが作られるので、それを /usr/local/etc/pandora_server/pandora_server.conf に書いてやる。
その後、mariadbサーバとpandorafmsのサーバのtimezoneを確認して、pandora_serverを起こす。

# tzsetup Asia/Tokyo
# service pandora_server start

これで動くようになった。あとは煮るなり焼くなりする。
セットアップに4日ほどかかったので、実際の運用はこれから。

※1 量が多いだけ?甘く見ないほうがいい。

# zfs list dryad_local/jail/pandorafms_1
NAME                          USED  AVAIL  REFER  MOUNTPOINT
dryad_local/jail/pandorafms_1 2.24G  11.2G  2.70G  /local/jail/pandorafms_1

このzfs datasetはFreeBSD 11.0-RELEASEに最小限のpkgを入れたものからcloneしている。(REFER-USED=0.56Gくらいがbaseの分であろう。)
なので、pandora-{console,server}と依存パッケージだけで2.24Gを食っている。