さて、Observiumのインストールの続きです。まあ、見事にはまってしまい解決まで時間が掛かってしまいました。問題となった部分は後で説明するとしてインストール手順を引き続き説明します。
前回は、SELinuxを無効にしたところまででした。既に、ディレクトリは、/opt/observiumになっていると思います。そのディレクトリ内にconfig.php.defaultというファイルがあるので、そのファイルをコピーして、同じディレクトリ内にconfig.phpというファイルを作ります。
cp config.php.default config.php
ファイルを作成したら、そのファイル(config.php)を編集します。
編集するのは、MySQLの情報、config.phpでは、下記のように記載されています。
// Database config --- This MUST be configured $config['db_host'] = 'localhost'; $config['db_user'] = 'USERNAME'; $config['db_pass'] = 'PASSWORD'; $config['db_name'] = 'observium';
MySQLに接続できるよう、host, user, passの情報を書き込みます。その後、fpingの情報を追記します。これは、fpingが/usr/sbin/にインストールされている場合のものです。
$config['fping'] = "/usr/sbin/fping";
これらが終わったら、下記を実行します。
php includes/update/update.php
多少のエラーは問題ないとのことです。(SQL revisionでのエラーが006まで)
次に、logとrrdのディレクトリを作成し、所有者を変更します。
mkdir logs chown apache:apache logs mkdir rrd chown apache:apache rrd
そして、Observiumでのユーザを追加します。
./adduser.php 「ユーザ名」 「パスワード」 「レベル」
管理者権限を持たせる場合、レベルは10です。
下記で機器を追加します。
./add_device.php 「ホスト名」 「コミュニティ」 v2c
要はsnmpの情報を書き込めばOKです。
下記を行い、追加した機器の情報を取得します。
./discovery.php -h all ./poller.php -h all
/etc/cron.d/observiumというファイルを作成し、cronを設定します。ユーザ名が入っているため、/etc/crontabもしくは/etc/cron.d/でないとちゃんと動きません。
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 */5 * * * * root /opt/observium/poller-wrapper.py 2 >> /dev/null 2>&1
さて、ここまでくれば、残すはhttpdの設定のみです。ここではまりました。Observiumのインストール手順には、稼働しているドメインがObserviumのみであれば、これでOKという形で設定が載せてあります。
<VirtualHost *:80> DocumentRoot /opt/observium/html/ ServerName observium.domain.com CustomLog /opt/observium/logs/access_log combined ErrorLog /opt/observium/logs/error_log <Directory "/opt/observium/html/"> AllowOverride All Options FollowSymLinks MultiViews </Directory> </VirtualHost>
しかし、うまくいきませんでした。アクセス権限が問題だったのですが、apacheの設定がバージョンによって異なっていたのではまりました。はい、apacheの2.4系が入っているサーバでインストールしていました。2.4系だとRequire all grantedが必要です。それ以前だとOrder Allow, Deny Allow from allの2文が必要になってきます。インストールに失敗したと思って何度も試してしまいました。テストだからといって、2.2系→2.4系に急に変えるもんじゃありませんね。