Netdata を使用して Ubuntu のパフォーマンスを監視する方法
ネットデータは、クラウド サーバー、コンテナ、アプリケーション、オンプレミス IT インフラストラクチャ用の無料のオープンソースのリアルタイム監視およびトラブルシューティング ツールです。いくつか例を挙げると、CPU パフォーマンス、RAM とディスクの使用率、帯域幅の統計など、詳細かつリアルタイムのシステム メトリクスを提供します。
さらに、Netdata は、システム障害のトラブルシューティングに役立つインテリジェントなアラームとともに、Web ブラウザでアクセスできるインタラクティブなメトリックの視覚化も提供します。
Netdata の最先端のテクノロジーと人気により、2020 年にフォーブス誌のクラウド 100 の新星に選ばれましたが、これは並大抵のことではありません。実際、このガイドの執筆時点では、Github でほぼ50,000 個のスターを獲得しています。
Netdata をインストールするには 2 つの方法があります。 BASH シェルで自動化されたスクリプトをすぐに実行できます。これにより、システムが更新され、Netdata のインストールが開始されます。または、Netdata の Git リポジトリのクローンを作成し、その後自動スクリプトを実行することもできます。最初の方法はシンプルで簡単で、このガイドではこれに焦点を当てます。
この記事では、Ubuntu にNetdata をインストールして、サーバーとアプリケーションのリアルタイム監視、パフォーマンス監視、健全性監視を行う方法を説明します。
サポートされているプラットフォーム
Netdata は、次の Ubuntu LTS ディストリビューションをサポートしています。
- Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
Ubuntu Linux に Netdata をインストールする方法
インストールを開始するには、bash ターミナルで以下のコマンドを実行し、スクリプトをダウンロードして実行します。
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
スクリプトの実行中に、次のことが行われます。
- このスクリプトは、Linux ディストリビューションを自動的に検出し、パッケージ リストを更新し、必要なソフトウェア パッケージをすべてインストールします。
- 最新の netdata ソース ツリーは /usr/src/netdata.git パスにダウンロードされます。
- このスクリプトは、ソース ツリーから ./netdata-installer.sh スクリプトを実行することにより、netdata をインストールします。
- ネットデータが毎日更新されるように、cron.daily が更新されます。
スクリプトを実行すると、 ブラウザーでネットデータにアクセスする方法と、 それをsystemdサービスとして管理する方法に関するヒントが表示されます。
インストールには時間がかかるので、10 分ほど待ってから戻ってください。最後に、スクリプトがインストールを完了すると、以下の出力が得られます。
インストールしたら、図のように Netdata を起動して有効にし、ステータスを確認します。
sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata
デフォルトでは、Netdata はポート 19999 で待機します。これは、次のように netstat コマンドを使用して確認できます。
sudo netstat -pnltu | grep netdata
UFW を実行している場合は、ブラウザでネットデータにアクセスするときにポート 19999 が必要になるため、ポートを開くように努めてください。
sudo ufw allow 19999/tcp
sudo ufw reload
最後に、ネットデータにアクセスするには、ブラウザに切り替えて次の URL を参照します。
http://server-ip:19999/
URL を参照すると、これが表示されます。実際、ログインする必要がないことがわかります。システムのすべてのメトリクスが次のように表示されます。
ダッシュボードの右側のサイドバーで好みの指標をクリックすると、さまざまなグラフを切り替えることができます。たとえば、ネットワーク インターフェイスの統計を確認するには、[ネットワーク インターフェイス] オプションをクリックします。
Ubuntu での基本認証によるネットデータの保護
この時点までは、 誰でもネットデータ ダッシュボードにアクセスして、さまざまなシステム メトリクスを覗くことができます。これはセキュリティ侵害に相当するため、これは絶対に避けたいと考えています。
これを念頭に置いて、 基本的なHTTP 認証を構成します。ユーザーのユーザー名とパスワードの設定に使用されるhtpasswd プログラムを提供する apache2-utils パッケージをインストールする必要があります。さらに、リバース プロキシとして機能する Nginx Web サーバーをインストールします。
Nginx Web サーバーとapache2-utils パッケージをインストールするには、コマンドを実行します。
sudo apt install nginx apache2-utils
Nginx と apache2-utils がインストールされたら、/etc/nginx/conf.d ディレクトリ内に構成ファイルを作成します。ただし、ネットデータ以外の目的でNginxを使用している場合は、 サイト利用可能ディレクトリを自由に使用してください。
sudo vim /etc/nginx/conf.d/default.conf
構成ファイル内では、まずNginx にネットデータ ダッシュボードへの受信リクエストをプロキシするように指示します。その後、ユーザー名/パスワード認証を使用して、承認されたユーザーにのみネットデータダッシュボードへのアクセスを許可する基本認証プロンプトを追加します。
全体の構成は次のとおりです。 server_ip ディレクティブと example.com ディレクティブを独自のサーバー IP アドレスとサーバー名に置き換えてください。
upstream netdata-backend {
server 127.0.0.1:19999;
keepalive 64;
}
server {
listen server_ip:80;
server_name example.com;
auth_basic "Authentication Required";
auth_basic_user_file netdata-access;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://netdata-backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}
セクションごとに構成を理解してみましょう。
セクション 1:
upstream netdata-backend {
server 127.0.0.1:19999;
keepalive 64;
}
ループバックアドレス 127.0.0.1< を使用して Netdata の組み込み Web サーバーを参照する netdata-backend というアップストリームモジュールを指定しました。 とポート 19999 は、Netdata がリッスンするデフォルトのポートです。 キープアライブ ディレクティブは、開いたままにできるアイドル接続の最大数を定義します。
第2節:
server {
listen server_ip:80;
server_name example.com;
auth_basic "Authentication Required";
auth_basic_user_file netdata-access;
これはメインのNginx サーバー ブロック セクションです。最初の行は、クライアントがリクエストを送信するときに Nginx がリッスンする必要がある外部 IP アドレスを指定します。 server_name ディレクティブはサーバーのドメイン名を指定し、クライアントが外部 IP アドレスの代わりにドメイン名を呼び出したときにサーバー ブロックを実行するように Nginx に指示します。
最後の 2 行は、ユーザーがユーザー名とパスワードを使用してサインインすることを要求する単純な HTTP 認証を示しています。 auth_basic モジュールは、ブラウザ上でユーザー名/パスワードのポップアップをトリガーし、タイトルに「認証が必要」と表示します。これは後で好みに合わせてカスタマイズできます。
auth_basic_user_file モジュールは、Netdata のダッシュボードへのアクセスを許可されたユーザー (この場合は netdata-access) のユーザー名とパスワードが含まれるファイル名を指します。このファイルは後で作成します。
セクション 3:
最後のセクションは、server ブロック内に含まれるlocation ブロックです。これは、Nginx Web サーバーへの受信リクエストのプロキシ処理と転送を処理します。
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://netdata-backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
認証のために、htpasswd ユーティリティを使用して tecmint というユーザーのユーザー名とパスワードを作成し、 認証情報を netdata-access ファイル内に保存します。 。
sudo htpasswd -c /etc/nginx/netdata-access tecmint
パスワードを入力して確認します。
次に、変更を有効にするために Nginx Web サーバーを再起動します。
sudo systemctl restart nginx
構成が正しく行われたかどうかをテストするには、続行してサーバーの IP アドレスを参照します。
http://server-ip
以下のような認証ポップアップが表示されます。ユーザー名とパスワードを入力し、ENTER を押します。
その後、ネットデータダッシュボードにアクセスできるようになります。
これで今日のテーマは終わりです。 Netdata 監視ツールをインストールし、Ubuntu に基本的な HTTP 認証を構成する方法を学びました。さまざまなシステム指標に関する他のグラフもお気軽にチェックしてください。