オープンソースネットワーク監視比較:Zabbix vs Netdata vs LibreNMS でインフラ監視をセルフホストする
オープンソースラボ編集部 ・ 2026年6月13日
オープンソースネットワーク監視比較:Zabbix vs Netdata vs LibreNMS でインフラ監視をセルフホストする
サーバー・ネットワーク機器・クラウドインフラのメトリクスを可視化する監視ツールをオープンソースでセルフホストしましょう。Zabbix・Netdata・LibreNMSはDatadogやNagiosの代替として自社インフラを無料でモニタリングできます。
ネットワーク監視で収集するメトリクス
- CPU・メモリ・ディスク使用率: サーバーリソースのボトルネック検出
- ネットワーク帯域・パケットロス: インターフェースの障害・輻輳
- サービス稼働状態: HTTP・HTTPS・TCP・DNS・SMTPの応答確認
- SNMP監視: ルーター・スイッチ・UPS・プリンターのステータス
- アラート: しきい値超過でSlack・Eメール・PagerDutyに通知
主要ツールの概要
Zabbix
PHP/C言語で実装された老舗エンタープライズ級監視プラットフォームです。エージェントレス(SNMP・ICMP・HTTP)とエージェントベースの両方に対応し、数千台規模のインフラ監視に耐える実績があります。
# Zabbixをdocker-composeで起動(PostgreSQL構成)
version: '3.5'
services:
zabbix-db:
image: postgres:16
environment:
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix_pass
volumes:
- zabbix_db:/var/lib/postgresql/data
zabbix-server:
image: zabbix/zabbix-server-pgsql:ubuntu-7.0-latest
environment:
DB_SERVER_HOST: zabbix-db
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix_pass
ports:
- "10051:10051"
depends_on:
- zabbix-db
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:ubuntu-7.0-latest
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: zabbix-db
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix_pass
ports:
- "80:8080"
depends_on:
- zabbix-db
- zabbix-server
# 監視対象にZabbixエージェントをインストール
curl -s https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu24.04_all.deb -o /tmp/zabbix-release.deb
dpkg -i /tmp/zabbix-release.deb
apt-get update && apt-get install -y zabbix-agent2
# /etc/zabbix/zabbix_agent2.conf を設定
Server=your-zabbix-server-ip
Hostname=web-server-01
# Zabbix APIでホスト情報を取得(Python)
import requests
import json
zabbix_url = "http://localhost/zabbix/api_jsonrpc.php"
# 認証トークン取得
auth_response = requests.post(zabbix_url, json={
"jsonrpc": "2.0",
"method": "user.login",
"params": {"username": "Admin", "password": "zabbix"},
"id": 1,
})
token = auth_response.json()["result"]
# 問題(アラート)一覧取得
problems = requests.post(zabbix_url, json={
"jsonrpc": "2.0",
"method": "problem.get",
"params": {
"output": ["eventid", "name", "severity", "clock"],
"severities": [3, 4, 5], # 警告・重大・災害
"recent": True,
"limit": 50,
},
"auth": token,
"id": 2,
}).json()
for p in problems["result"]:
severity_map = {3: "WARNING", 4: "HIGH", 5: "DISASTER"}
sev = severity_map.get(int(p["severity"]), "UNKNOWN")
print(f"[{sev}] {p['name']}")
Netdata
Goで書かれたリアルタイム・ゼロ設定の分散監視エージェントです。1秒間隔のメトリクス収集・機械学習による異常検知・美しいダッシュボードが特徴です。単独でも使えますが、Netdata Parentサーバーに集約して一元管理もできます。
# Netdataを1コマンドでインストール
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --no-updates
# Dockerで起動
docker run -d --name=netdata -p 19999:19999 -v netdataconfig:/etc/netdata -v netdatalib:/var/lib/netdata -v netdatacache:/var/cache/netdata -v /etc/passwd:/host/etc/passwd:ro -v /etc/group:/host/etc/group:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro --cap-add SYS_PTRACE --security-opt apparmor=unconfined netdata/netdata
# UIは http://localhost:19999 でアクセス
# /etc/netdata/health.d/custom_alerts.conf
# カスタムアラートの定義
alarm: high_cpu_usage
on: system.cpu
lookup: average -1m unaligned of user,system,softirq,irq,guest
units: %
every: 10s
warn: $this > 80
crit: $this > 95
info: CPU使用率が高すぎます(アプリの暴走を確認してください)
to: sysadmin
alarm: disk_space_critical
on: disk.space
lookup: average -1m unaligned of avail
units: %
every: 1m
warn: $this < 20
crit: $this < 10
info: ディスク空き容量が残り$thisです
to: sysadmin
LibreNMS
PHP/MySQL製のAuto-discovery機能付きネットワーク監視ツールです。SNMPでルーター・スイッチ・ファイアウォールを自動検出し、ネットワークマップを自動生成します。Nagiosよりも設定が簡単でSNMP機器の可視化に強みがあります。
# LibreNMSをdocker-composeで起動
git clone https://github.com/librenms/docker.git librenms-docker
cd librenms-docker
cp .env.example .env
# .envを編集してDB_PASSWORD・APP_KEY等を設定
docker compose up -d
# UIは http://localhost でアクセス
# SNMPデバイスの追加(CLIから)
docker exec librenms lnms device:add 192.168.1.1 --v2c -c public
# または自動検出の設定(サブネット全体をスキャン)
docker exec librenms lnms device:discover --all
機能比較表
| 比較項目 | Zabbix | Netdata | LibreNMS |
|---|---|---|---|
| エージェントベース | ✅ | ✅ | ⚠️ オプション |
| エージェントレス(SNMP) | ✅ | ⚠️ | ✅ 強力 |
| ICMP(ping)監視 | ✅ | ✅ | ✅ |
| ネットワーク機器自動検出 | ⚠️ | ❌ | ✅ 自動 |
| ネットワークマップ | ⚠️ | ❌ | ✅ |
| 機械学習異常検知 | ✅ | ✅ | ❌ |
| リアルタイム(1秒) | ⚠️ | ✅ | ❌ |
| スケーラビリティ | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 初期設定の容易さ | ★★☆☆☆ | ★★★★★ | ★★★☆☆ |
| カスタムダッシュボード | ✅ | ✅ | ✅ |
| Slack/PagerDuty通知 | ✅ | ✅ | ✅ |
| ライセンス | AGPL 3.0 | GPL 3.0 | GPL 3.0 |
| GitHub Stars | 4k+ | 72k+ | 4k+ |
Zabbix + Grafana統合でダッシュボードを強化
# ZabbixのメトリクスをGrafanaで可視化
# grafana.ini / データソース設定
apiVersion: 1
datasources:
- name: Zabbix
type: alexanderzobnin-zabbix-datasource
url: http://zabbix-web:8080/zabbix/api_jsonrpc.php
jsonData:
username: Admin
trends: true
trendsFrom: "7d"
trendsRange: "4d"
secureJsonData:
password: zabbix
# Prometheus exporterでZabbixメトリクスをPrometheus形式に変換
# zabbix-prometheus-exporterを使う場合
from prometheus_client import start_http_server, Gauge
import requests, time
cpu_gauge = Gauge('zabbix_host_cpu_usage', 'CPU usage from Zabbix', ['host'])
def collect_metrics():
# Zabbix APIから最新のCPUメトリクスを取得してPrometheus形式で公開
data = get_zabbix_items("system.cpu.util")
for item in data:
cpu_gauge.labels(host=item['host']).set(float(item['lastvalue']))
start_http_server(8000)
while True:
collect_metrics()
time.sleep(30)
DevOps・監視ツールはDevOpsカテゴリ(/categories/devops)で一覧でき、セキュリティ監視(SIEM)ツールはセキュリティカテゴリ(/categories/security)でも探せます。
FAQ
Q. ZabbixはDatadogの代替になりますか?
A. 機能面ではかなり近いです。Zabbixはインフラ・アプリケーション・ネットワーク監視をオープンソースで実現できます。Datadogと比べてZabbixが劣る点: ログ管理(ログはGrafana Lokiなど別途必要)・APM(アプリケーションパフォーマンス監視)・クラウドネイティブなサービス統合数。優れる点: コスト(ホスト数が増えてもゼロ追加費用)・データ主権・カスタマイズの自由度。100台超えの環境でDatadogのコストが問題になったケースでZabbixへの移行が増えています。
Q. NetdataはPrometheus+Grafanaと比べて何が違いますか?
A. Prometheus+Grafanaは「メトリクス収集→保存→可視化」のスタックを自分で組み合わせる必要があります。Netdataはそれをオールインワンで提供しており、インストール直後から1秒間隔でCPU・メモリ・ディスク・ネットワーク・アプリのメトリクスが可視化されます。Prometheus+Grafanaの方が柔軟性・スケーラビリティが高く、Kubernetesとの統合が得意です。「すぐに監視を始めたい」ならNetdata、「大規模クラスター監視の基盤を作りたい」ならPrometheus+Grafanaを選んでください。
Q. LibreNMSでWi-Fiアクセスポイントは監視できますか?
A. SNMPに対応したアクセスポイント(Cisco・Juniper・Aruba・Ubiquiti UniFiなど)なら監視できます。LibreNMSにはCisco・Juniper・Fortigate・Palo Alto等の主要ベンダー向けのサポートが組み込まれており、接続クライアント数・電波強度・チャンネル・スループットを自動的にグラフ化します。UniFiのようにSNMPだけでなくAPIを持つ機器はUniFiのAPIポーラーを組み合わせるとより多くのメトリクスを取得できます。
Q. 数千台のサーバーをZabbixで監視する場合、パフォーマンスは大丈夫ですか?
A. Zabbixは数千台規模での動作実績があります。大規模環境のためのベストプラクティス: Zabbixプロキシ(Proxy)を各拠点に配置してデータを集約することで中央サーバーの負荷を分散させる・PostgreSQLのTimescaleDB拡張を使ってメトリクスデータのパーティショニングを有効化する・アイテムの収集間隔を適切に設定する(全アイテム1分は不要、ディスク容量は5分でも十分)。公式ドキュメントでは単一Zabbixサーバーで最大100万メトリクス/分を処理できると報告されています。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| エンタープライズ総合監視(大規模) | Zabbix |
| すぐ始める・リアルタイム監視 | Netdata |
| ネットワーク機器(SNMP)専門 | LibreNMS |
| DatadogのOSS代替 | Zabbix + Grafana |