概要
Netflixという会社がなんかサーバのパフォーマンスを確認するツール(PCP)のクライアントであるVectorというツールをオープンソース化したらしい。
PCPというツールがサーバ上の情報を集めて、Vectorがその情報を綺麗に可視化する、というイメージのよう。
Introducing Vector: Netflix's On-Host Performance Monitoring Tool
インストール方法などは英語だけどそこまで大変なことは書いていないので、素直にインストールできた。
インストール
サーバサイド
PCPのインストール
まず、パフォーマンスを収集したいサーバ上でPCP(Performance Co-Pilot)をインストールする。
ただし、Vector3.10以降は、各Linuxディストリビューションで利用されている標準的なリポジトリからインストールするPCPだとちょっとダメよ、とのことで、ソースからインストールする必要がある。
インストール作業はrootユーザで行う。
Performance Co-Pilot
Building from source
なお、私の環境では、以下のパッケージ3つを追加でインストールしないとコンパイルできなかった。
yum install flex
yum install bison
yum install gcc-c++
-- web apiのために必要
yum install libmicrohttpd
yum install libmicrohttpd-devel
また、make install
でディレクトリのユーザ名とグループ名にpcp
を付与しているっぽいので、コレを事前に作成しておく。
(多分ログインさせる必要はないだろうからnologinでホームディレクトリ無しとして作成。)
groupadd pcp
adduser -s /sbin/nologin -g pcp -M pcp
適当なディレクトリ(例えば/usr/local/src)に移動して以下のコマンドを入力し、インストールする。
$ git clone git://git.pcp.io/pcp
$ cd pcp
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-webapi
$ make
# make install
上記のインストールが完了したら、以下のコマンドを実行してPCPを起動する。
pmwebdがconfigureで指定した--withwe-api
でインストールされる部分。
/etc/init.d/pcp start
/etc/init.d/pmwebd start
クライアントサイド
node.jsのインストール
node.jsは実は触ったことがないけど、nvmというツールで簡単にnode.jsの各バージョンをインストール、切り替えることが出来るらしい。Groovyで言うところのgvmっぽい。
nvmのインストールはコチラを参考にした。
いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜
kkuwana% git clone git://github.com/creationix/nvm.git ~/.nvm
kkuwana% source ~/.nvm/nvm.sh
これでnvm ls-remote
と実行すれば、インストール可能なnode.jsの一覧が表示される。
今回は最新版っぽいv0.12.2をインストール
kkuwana% nvm install 0.12.2
何もエラーが出ていなければインストールされているはず。
以下のコマンドでバージョンを確認してみる。
kkuwana% node -v
v0.12.2
ちゃんとインストールされているっぽい。
このインストールしたバージョンをデフォルトに設定する。
kkuwana% nvm alias default v0.12.2
default -> v0.12.2
私はzshを使っているので、以下の行を$HOME/.zshrcの末尾に追記する。
[[ -s "/home/k-kuwana/.nvm/nvm.sh" ]] && source "/home/k-kuwana/.nvm/nvm.sh"
bowerのインストール
凄く簡単。
以下のコマンドを実行するだけ。
npm install -g bower
gulpのインストール
例のごとく簡単。
以下のコマンドを実行するだけ。
npm install -g gulp
Vectorのインストール
やっと本題。
適当なディレクトリにVectorのソースをcloneして、先ほどインストールしたbowerを使って必要なライブラリをダウンロードさせる。
git clone https://github.com/Netflix/vector.git
cd vector
bower install
続いていよいよ実行。
npm install
gulp
これで、デフォルトだとlocalhost:8080にアクセスすればOK.
後は、最初にPCPをインストールしたサーバのドメインを入力すれば完了。
問題点
現時点で、どこからでもPCPにアクセスできる。
何とかしてアクセス元を制御する必要がある。
参考
https://github.com/Netflix/vector
http://pcp.io/index.html
http://www.pcp.io/man/man1/pmwebd.1.html
いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜