Netdata - リアルタイムパフォーマンスモニタリングチートシート
Netdata はオープンソースのモニタリングエージェントで、1秒あたり数千のメトリクスをほぼゼロ設定で収集し、ライブ Web ダッシュボード(デフォルトポート 19999)に視覚化します。800 以上のコレクターを通じてサービス(データベース、Web サーバー、コンテナ、Kubernetes)を自動検出し、異常検出と組み込みアラート エンジンを備えています。
Installation
| Method | Command |
|---|
| ユニバーサルキックスタート | 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 pkg | sudo apt install netdata |
| Fedora/RHEL pkg | sudo dnf install netdata |
| Docker | docker 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
| Command | Description |
|---|
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)
| Task | How |
|---|
| コレクターごとの設定ファイルをリスト | 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 # 適用
| Command | Description |
|---|
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
| Endpoint | Returns |
|---|
/api/v1/charts | ノード上の利用可能なすべてのチャート |
/api/v1/data?chart=system.cpu | チャートのタイムシリーズデータ |
/api/v1/allmetrics?format=prometheus | Prometheus のスクレイプターゲット |
/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
| Aspect | Netdata | Prometheus + Grafana |
|---|
| セットアップ | 数分、自動検出 | マニュアルエクスポーター + ダッシュボード |
| 粒度 | デフォルトで 1 秒ごと | 通常 15 秒スクレイプ |
| ストレージ | ローカル層状 db(dbengine) | 中央 TSDB |
| 最適な対象 | シングルノード深さ、高速トリアージ | 大規模フロート、長期クエリ |
| 相互運用性 | Prometheus 形式をエクスポート | Netdata をスクレイプ可能 |
Resources