コンテンツにスキップ

Netdata - リアルタイムパフォーマンスモニタリングチートシート

Netdata - リアルタイムパフォーマンスモニタリングチートシート

Netdata はオープンソースのモニタリングエージェントで、1秒あたり数千のメトリクスをほぼゼロ設定で収集し、ライブ Web ダッシュボード(デフォルトポート 19999)に視覚化します。800 以上のコレクターを通じてサービス(データベース、Web サーバー、コンテナ、Kubernetes)を自動検出し、異常検出と組み込みアラート エンジンを備えています。

Installation

MethodCommand
ユニバーサルキックスタートwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
curl バリアントcurl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Debian/Ubuntu pkgsudo apt install netdata
Fedora/RHEL pkgsudo dnf install netdata
Dockerdocker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata
Helm (Kubernetes)helm install netdata netdata/netdata

インストール後、http://localhost:19999(またはサーバーの IP)を開きます。

Service Management

CommandDescription
sudo systemctl start netdataエージェントを開始
sudo systemctl enable netdata起動時に開始
sudo systemctl restart netdata再起動(設定変更を適用)
sudo systemctl status netdataステータスを確認
sudo journalctl -u netdata -fエージェントログをテール
netdatacli reload-health完全な再起動なしでアラームを再読み込み
netdatacli reload-labelsホストラベルを再読み込み
netdatacli shutdown-agentエージェントを正常に停止

Configuration

常に edit-config ラッパーで設定を編集します。これはストックファイルを /usr/lib/netdata/conf.d から /etc/netdata にコピーするため、アップグレードで上書きされません。

cd /etc/netdata
sudo ./edit-config netdata.conf          # メインエージェント設定
sudo ./edit-config health_alarm_notify.conf   # 通知
sudo ./edit-config go.d.conf             # Go コレクターを有効/無効化
Setting (in netdata.conf)Purpose
[global] update every = 1収集間隔(秒)
[global] history / dbengine保持 / オンディスク データベース層サイズ
[web] bind to = *ダッシュボードがリッスンするネットワークインターフェース
[web] default port = 19999ダッシュボードポート
[plugins]プラグイングループ全体のオン/オフを切り替え

Collectors (Plugins)

TaskHow
コレクターごとの設定ファイルをリストcd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf
モジュールを有効にする(例:nginx)sudo ./edit-config go.d/nginx.conf を実行してステータス URL にポイント
Go コレクターをデバッグsudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
一般的に自動検出されるモジュールnginx、apache、mysql、postgres、redis、docker、systemd ユニット、ディスク、ネットワーク、センサー

Health & Alarms

アラーム定義は /etc/netdata/health.d/*.conf に存在します。

cd /etc/netdata
sudo ./edit-config health.d/cpu.conf     # 組み込みアラームを調整
netdatacli reload-health                  # 適用
CommandDescription
curl http://localhost:19999/api/v1/alarms?allすべてのアラームと現在の状態をリスト(JSON)
curl http://localhost:19999/api/v1/infoエージェント情報、バージョン、コレクター
health_alarm_notify.conf を編集メール、Slack、PagerDuty、Discord などを配線

Useful API Endpoints

EndpointReturns
/api/v1/chartsノード上の利用可能なすべてのチャート
/api/v1/data?chart=system.cpuチャートのタイムシリーズデータ
/api/v1/allmetrics?format=prometheusPrometheus のスクレイプターゲット
/api/v1/badge.svg?chart=system.cpu&value_color=green埋め込み可能なステータスバッジ

Netdata Cloud (Optional)

# ノードを Netdata Cloud に接続(請求)してマルチノード ダッシュボード
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud

エージェントは、請求しない場合は完全にスタンドアロンで動作し続けます。クラウドはクロスノードビューと一元管理アラートのみを追加します。

Common Workflows

# シェルからの迅速なヘルスチェック
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'

# メトリクスを既存の Prometheus スタックに公開
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head

# 小さい VM の CPU/ディスクフットプリントを低下(netdata.conf)
#   [global] update every = 2
#   [db] mode = ram         # メモリのみにメトリクスを保持

# 保持を削減しますが、1秒間の粒度を保持してから再読み込み
sudo systemctl restart netdata

Netdata vs Prometheus + Grafana

AspectNetdataPrometheus + Grafana
セットアップ数分、自動検出マニュアルエクスポーター + ダッシュボード
粒度デフォルトで 1 秒ごと通常 15 秒スクレイプ
ストレージローカル層状 db(dbengine)中央 TSDB
最適な対象シングルノード深さ、高速トリアージ大規模フロート、長期クエリ
相互運用性Prometheus 形式をエクスポートNetdata をスクレイプ可能

Resources