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

 

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

ルータだって嘘をつく

全てのVersionで該当するかは判らないがハマったお話(´・ω・`)

 

IOS-XRにてBGP Peer の IN/OUT route-policy更新後に

即反映して欲しくないので運用上この設定を入れてました。

router bgp XXXXXX

 bgp auto-policy-soft-reset disable

これを入れるとclear bgp ipv4 unicast X.X.X.X soft [in|out] をするまで

反映しなくなります。

 

ただし、BGP Peerのout policyを変更して新たに経路を広報しようとした場合

clear直前のステータス確認として

show bgp ipv4 unicast neighbors X.X.X.X advertised-routes を打つと

clear後の状態を表示してしまいます。

あれ?もうadvertiseしてるならclear不要なのかな?って思うかもしれませんが

実際には反映されてません。

 

これ、対向が自社内ならreceived routeとかで確認して気がつけるかもしれないが

うっかり更新を忘れる可能性があるのでご注意を。

 

因みに、4.3系で引っかかりました(´・ω・`)

 

Raspberry Pi 2 で 802.1Q

やっと、Raspberry Pi を買いました(`・ω・´)

 

利用先の環境はVlan必須なのでRaspberry Piでの設定を探すも出てこない・・・。

Ubuntuと同じ様な設定で行けたので一応メモ

 

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

# sudo apt-get install vlan 

Vlan追加 (eth0にvlan200とvlan400を追加)

# sudo vconfig add eth0 200

# sudo vconfig add eth0 400

/etc/network/interface配下にeth0.200 と eth0.400 の設定を記述

(auto eth0.X00を忘れるとリブート後にifが見えない)

auto eth0.200
iface eth0.200 inet static
address X.X.X.X
netmask X.X.X.X

auto eth0.400
iface eth0.400 inet static
address X.X.X.X
netmask X.X.X.X

やっぱり、Debian系とRedHat系で癖が違いすぎるよね・・・。

The Netflix ISP Speed Index

ついに日本のISPに対しての結果が公表されたようです。

 

http://ispspeedindex.netflix.com/country/japan/

 

各社色々と思うところはあるんでしょうけど

晒しあげを食らった形になるFreebitさんはどうするんでしょうねw

AS714とのPeering

iOS祭りも落ち着いた感じですが、今回の騒ぎも偉い人からお金の話について

色々と文句を言われて萎えました。

CDNの某A社が使われなくなったのは、こちら側のコントロールの範疇を

越えてるのでどうしようにもできんがな・・・(´・ω・`)

 

Appleだけに影響があるなら良いんですが、今回は他の所にも

迷惑かけてしまったので何かしら対策は講じようとしてるんですけどね。

 

そこで、AS714のPeeringDB見てて気がついたのですが

国内のIXではIPを2つ持って所が多いんですね。

 

http://www.peeringdb.com/view.php?asn=714

BBIX Tokyo : 218.100.6.89

EQUINIX Tokyo :203.190.230.109

EQUINIX Tokyo :203.190.230.107

JPIX :210.171.224.164 

JPIX :210.171.224.64 

JPNAP Tokyo :210.173.176.131 

JPNAP Tokyo :210.173.176.129

 

他所様から聞いたお話とかと合わせると、

どうやら配信元が違うらしいので2つともPeerしておいた良いらしいです。

本当は他所様に迷惑かけるからIXで繋ぐのは勘弁して欲しいんですけどね・・・。

 

また、面倒な仕事が増えて嫌になるわ(ヽ´ω`)

PSNowのTraffic

気になったきっかけはPeeringのRequestが来てたからから(´・ω・`)

ゲームがTrafficに与える影響って結構あったりするので色々調査。

 

まずは公式HPを見る。

http://www.jp.playstation.com/psnow/

PlayStation™ Now」(PS Now)は、クラウド技術を活用したPlayStation®のストリーミングゲームサービスです。クラウドサーバーに格納された幅広いジャンルのPlayStation®3タイトルを、様々な対応デバイスからストリーミング経由で遊ぶことができます。

この中でストリーミング経由という文言が厄介。

図には更に映像をストリーミング配信と書いてあるΣ(・∀・;)

これ、ローカルにデータを一切置かない方式なんだろうね。

 

もう、サービス自体は始まってるみたいなのでPeering Requestが来た

AS番号を元にPeeringDBやFlowデータから色々と確認してみると。

  • Facilityは海外(USとUK)にしか無いっぽい?
  • 送信元Prefixは/24が1個のみ

映像のストリーミングなのに海外拠点のみで遅延が問題になりそう?

遅延でアクション系のゲームはまともに動かないんじゃないかと心配に・・・。

 

Prefixが/24 1個なのでRIPEstatからBGPlayで上位のTransitが何処か調べると

  • KDDI (AS2516)
  • NTT-Communications (AS2914)

 の2つのみ。

この面子だと国内に鯖がありそうな匂いがしますね。 

AS2914の方のNTT-Communicationsは各Prefixに対して

何処のRegionから受信したかBGP Communityを付けてくれるので

次はLooking Glass - NTT Americaで調べてみる。

 

 Community: 2914:370 2914:1408 2914:2401 2914:3400

 

という結果が出たので次はPolicies & Procedures - Routing Policies

答え合わせ(`・ω・´)

  • 2914:370 → よくわかんない(´・ω・`)
  • 2914:1408 → Tokyo, Japan
  • 2914:2401 → jp (Japan)
  • 2914:3400 → Asia

という事でPSNowの鯖は都内にありそうですね〜。

 

今後、サービスが流行ると結構厄介なので注視しておきますか。

 

AppStoreからのダウンロードが遅い

という問い合わせを受けて調べることに・・・(´・ω・`)

 

Flowデータから調べるとTransit回線経由なので各事業者に問い合わせつつ

自分自身でも出来る限り調査をする。

 

該当PrefixはAppleからPCCW、Telstra、TATAへ広報されてる様で

そこからうちが契約してる事業者経由で落ちて来てるみたい。

 

うちが複数社Transit回線契約してても全部Telstra経由みたいなので

Apple〜Telstra間が輻輳してて全滅な可能性が高い/(^o^)\

 

Transit事業者にうちの経路をTelstraに広報しない様にするか

Prependつけて貰うしか無いかなぁ・・・。

 

まぁ、PCCW/Telstra/TATAって面子をみるとSingaporeや香港あたりに

サーバが置いてあったりするんですかね〜 ヽ(´ー`)ノ