リアルモニタリングツールnetdataのインストールと利用方法【ISUCON】

インフラ

こんにちは。仁科(@nishina555)です。

Webのパフォーマンスをチューニングするにあたり、サーバーのパフォーマンスを監視することは非常に重要です。

今回はnetdataというモニタリングツールの導入手順について紹介をしたいと思います。

netdataはリアルタイムで計測ができるという特徴を持っており、過去に開催されたISUCON(Webパフォーマンスチューニング大会)の勉強会の資料でも紹介されるほど有名なものとなっております。

なお、今回は実行環境としてサーバーはConoHa、OSはUbuntu16.04.4、クエリのサンプルデータはISUCON7(予選)過去問環境をConoHaで構築する手順で構築したISUCON7の過去問を利用しております。

netdataをインストールする方法

netdataのインストール方法は非常に簡単で、インストールガイドに書いてある以下のコマンドでインストールをすることができます。

なお、インストールガイドにも書いてありますが、sudoは必要があればスクリプト内で自動で行われるため、sudoをつけずに以下のコマンドを実行します。

$ bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)

コマンドの意味について少し補足をします。

<()の部分はプロセス置換と呼ばれるもので括弧の内容が入力として利用されます。

curlコマンドの-sは進捗状態を表示しない(–silent)、-Sはエラーを表示する(–show-error)のオプションです。つまり、-sSでエラーのみが表示されるようになります。

上記のコマンドの意味をまとめると、curlコマンドで取得したWebサーバー上のシェルがプロセス置換を通じてbashで実行されるということになります。

『<』と『(』の間にスペースが入ると-bash: syntax error near unexpected token ‘(‘というエラーが発生してしまうので注意してください

netdataの動作確認

インストールが正常に完了するとnetdataが起動します。
netdataは19999のポートで実行されます。

まずはプロセスを確認してみます。以下のようにプロセスが存在していればOKです。

$ sudo lsof -i tcp:19999

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
netdata 2466 netdata    4u  IPv4  19304      0t0  TCP *:19999 (LISTEN)
netdata 2466 netdata    5u  IPv6  19305      0t0  TCP *:19999 (LISTEN)

次にnetdataのダッシュボードにアクセスしてみます。
接続先はhttp://[サーバーのIPアドレス]:19999となっております。

以下のような画面がでればOKです。

では実際にベンチマークを実行してnetdataの画面を確認してみます。

ベンチマークのコマンドはConoHaの公式ページに書いてあるものを参考にします。

$ /home/isucon/isubata/bench/bin/bench -data=/home/isucon/isubata/bench/data -remotes=localhost -output=result.json

負荷をかけると以下のようにリアルタイムでグラフが変化していることがわかります。

netdataでは概要だけでなく、例えばCPUの詳細情報なども見ることができます。

netdataの操作について

netdataを利用するにあたり、必要になる可能性がある操作方法について紹介をします。

より詳しく知りたい方はnetdataのwikiをご覧になってください。

netdataの停止

$ service netdata stop
もしくは
$ systemctl stop netdata

netdataをサーバー起動時に実行しないようにする

$ systemctl disable netdata

もしくは以下のいずれかのコマンドを利用します。

$ rc-update del netdata
$ update-rc.d netdata disable
$ chkconfig netdata off

netdataファイルの削除方法

以下の手順で削除をします。

$ rm -rf /opt/netdata
$ groupdel netdata
$ userdel netdata
$ rm /etc/logrotate.d/netdata
$ rm /etc/systemd/system/netdata.service もしくは rm /etc/init.d/netdata # OSによる

まとめ

以上でnetdataのインストール方法とnetdataの操作について紹介を終わります。
netdataを利用することでボトルネック調査などがしやすくなるため、パフォーマンスチューニグなどをする際にはぜひ利用してみてください。

この記事がいいなと思いましたらツイッター(@nishina555)のフォローもよろしくお願いします!