LoginSignup
12
11

More than 5 years have passed since last update.

Netfilx Vector と Performance Co-Pilot のインストール

Posted at

Vectorを試用してみたのでメモ。

Vectorとは

VectorはNetflixが開発している"on-host performance monitoring framework"。

ざっくり言うと、サーバメトリクス収集ツールのPerformance Co-Pilotのデータ可視化ツール。
Vectorは、ブラウザから直接サーバのWebAPI(pmweb)にアクセスし、メトリクスを収集して表示する。クライアントとなるPCとサーバがIP通信可能ができる必要がある。

vector1.png

Netflixでは、別にAltasという、メトリクス収集・集計・可視化フレームワークを使っていて、基本的にはこちらで集計データを確認しつつ、トラブルシューティングなど、サーバ・インスタンスレベルでのメトリクスを詳細に確認したい時にのみ、Vectorを利用しているようだ。参考ブログ

Performance Co-Pilotとは

Performance Co-Pilotは、サーバのメトリクス収集ツールセット。
2007年から開発されていて、今も活発なOSSなのだが、日本での利用事例はほとんど見つからない。
sar(System Admin Reporter)で良い気もするけど、メトリクス取集、データ保存、可視化がモジュール化されていて、拡張可能になっている。(ElasticSearch, Apache, MySQL Agentなど色々そろっている)

インストール

環境

AWSのAmazon Linuxを利用。

$ cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2015.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.03"
PRETTY_NAME="Amazon Linux AMI 2015.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"

Performance Co-Pilot(PCP)のインストール

メトリクスを確認サーバにインストールする。
Vectorが要求するPCPのVersionが(>3.10)と高く、まだいい感じのrpmがないので自分でビルドする事にする。

# 必要なパッケージ
$ sudo yum install perl-Tk-devel bison flex libmicrohttpd-devel gcc-c++
# pcpユーザ/グループの作成
$ sudo groupadd pcp
$ sudo adduser -s /sbin/nologin -g pcp -M pcp
# ソースからビルド
$ git clone git://git.pcp.io/pcp
$ cd pcp
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-webapi=true
$ make
# インストール
$ sudo make install 
$ sudo ldconfig -v

Vectorのインストール

Webサーバがあれば何でもOK、下記は公式の手順。

node.jsとnpmをyumでインストール(手抜き)

$ sudo yum install  nodejs npm

Bowerのインストール

$ sudo yum install  nodejs npm

Vectorと依存ライブラリのインストール

$ git clone https://github.com/Netflix/vector.git
$ cd vector
$ bower install
$ npm install

起動方法

Performance Co-Pilot(PCP)の起動

$ sudo /sbin/chkconfig pmwebd on
$ sudo /etc/init.d/pcp start

Vectorの起動

$ cd vector
$ gulp

http://localhost:8080 にアクセスする。

他の起動方法

Vectorは静的HTMLが表示できればいいので、サーバ側はApacheでも大丈夫。
とりあえずの検証目的なら、Pythonが簡単。

$ cd vector/app
$ python -m SimpleHTTPServer 8080

localhost以外でgulp利用

vector/gulpfile.js を下記の様に修正すればよい。

var gulp = require('gulp'),
    connect = require('gulp-connect');

gulp.task('webserver', function() {
    connect.server({
        root: 'app',
        host: '0.0.0.0',
        livereload: true
    });
});

gulp.task('default', ['webserver']);

おしまい

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11