hirupon’s diary

Twitterの文章を投げ捨てる感じが好きなのですが、たまに長く書きたいときがあるので・・・。

Raspberry Pi 2 Model B で Observium

Raspberry Pi 2 Model B に Observiumを入れたお話

以下を参考にしました。偉大なる先人に感謝

Observium on a Raspberry Pi | Linuxpinguin.de

sudo bash

 

  • パッケージをインストール

apt-get install libapache2-mod-php5 \
php5-cli php5-mysql php5-gd \
php5-mcrypt php5-json \
php-pear snmp fping \
mysql-server mysql-client python-mysqldb \
rrdtool subversion whois \
mtr-tiny ipmitool \
graphviz imagemagick

なんかパッケージが取得出来なかった物があってエラーでとまった(´・ω・`)
気休めでupdateしてみる

apt-get update

再度パッケージインストール

apt-get install libapache2-mod-php5 \
php5-cli php5-mysql php5-gd \
php5-mcrypt php5-json \
php-pear snmp fping \
mysql-server mysql-client python-mysqldb \
rrdtool subversion whois \
mtr-tiny ipmitool \
graphviz imagemagick

ちゃんと進んだのでインストール終わるまで暫く放置

インストールが終わるとMySQLのroot passwordを作れ!って言われるので作る。

 

  • observium用のディレクトリを作成&移動

mkdir -p /opt/observium && cd /opt

 

  • observiumのパッケージを取得してtar解凍

wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz

 

  • ディレクトリ移動とテンプレからコピーしてconfigを作る

cd /opt/observium
cp config.php.default config.php

 

  • mysqlにrootとして入る。
  • パスワード聞かれるのでインストール時に設定した物を入力

mysql -u root -p

 

  • observiumというデータベースを作成

mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

 

  • GRANT構文の実行権限を持つユーザを作成

mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '<observium db password>';

一度エラーになったので備忘録的メモ

ERROR 1064 (42000): You have an error in your SQL syntax;

IDENTIFIED BY の後でパスワードを入れる時にシングルクォーテーションで囲むの忘れたらエラーした。

 

  • 権限反映だけど、GRANT構文で付与する場合は不要っぽいのでおまじない的?

mysql> flush privileges;

 

  • 終わったので抜ける

mysql> \q

 

php ./includes/update/update.php

実行すると怒られる(´・ω・`)

WARNING. Direct call to this script is no longer supported, please use './discovery.php -u' from main observium directory.

本家のDocumentationにも'./discovery.php -u'でやれって書いてるのでそれで行けそう。

Ubuntu/Debian Installation - Observium Documentation

今度はどうだ!

./discovery.php -u

また怒られた(´・ω・`)

MySQL Error 1045: Access denied for user 'USERNAME'@'localhost' (using password: YES)

 

ちょっと調べると「config.php」の冒頭にMySQLで設定したユーザー名/パスワードを

記入する場所があるのでそこを編集する。言われなきゃわかんないよ!!

// Database config --- This MUST be configured
$config['db_extension'] = 'mysqli';
$config['db_host'] = 'localhost';
$config['db_user'] = 'USERNAME';
$config['db_pass'] = 'PASSWORD';
$config['db_name'] = 'observium';

リベンジ!

./discovery.php -u

キタ━━━━(゚∀゚)━━━━!!

___ _ _
/ _ \ | |__ ___ ___ _ __ __ __(_) _ _ _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \| __/| | \ V / | || |_| || | | | | |
\___/ |_.__/ |___/ \___||_| \_/ |_| \__,_||_| |_| |_|
Observium Community Edition 0.16.1.7533
http://www.observium.org

Install initial database schema ...

 

 

  • log用とRRD用のディレクトリを作成してオーナー変更

mkdir logs
mkdir rrd
chown www-data:www-data rrd 

 

apache2.4になってて書式が変更されてるので
公式のサンプルの方から持ってくる。

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>

/etc/apache2/sites-available/default って書いてあるけど自分の環境は

/etc/apache2/sites-available/000-default.conf でした。

 

  • apacheのモジュール追加&有効化してリスタート

php5enmod mcrypt
a2enmod rewrite
apache2ctl restart 

 

  • ユーザ追加  

 

cd /opt/observium
./adduser.php <username> <password> <level>

 

  • CRONに追加 & リスタート

vi /etc/cron.d/observium

Add these lines:

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

And now restart cron:

service cron restart

 

 以上で終了。お疲れ様でした(´・ω・`)