【2025年7月最新】マイクラ OpenTelemetry サーバー監視
PrometheusとGrafanaで完璧な監視体制を構築
※本記事は2025年7月時点の情報に基づいて執筆されています。内容の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。
マイクラサーバーの安定運用には、適切な監視システムが不可欠です。OpenTelemetryを使用したモダンな監視システムと、Prometheus exporterによるメトリクス収集、そしてGrafanaでのTPSダッシュボード構築まで、プロレベルの監視体制を構築する方法を詳しく解説します。
OpenTelemetryの主な利点:
- 統一されたメトリクス収集
- 分散トレーシング機能
- 多様な監視バックエンドとの連携
- スケーラブルな設計
- 標準化されたAPI
↓
AlertManager
コンポーネント | 役割 | ポート |
---|---|---|
OpenTelemetry Collector | メトリクス収集・変換 | 4317, 4318 |
Prometheus | 時系列データベース | 9090 |
Grafana | 可視化ダッシュボード | 3000 |
AlertManager | アラート通知 | 9093 |
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
prometheus:
config:
scrape_configs:
– job_name: ‘minecraft-server’
static_configs:
– targets: [‘localhost:9225’]
scrape_interval: 30s
processors:
batch:
timeout: 1s
send_batch_size: 1024
resource:
attributes:
– key: service.name
value: minecraft-server
action: insert
exporters:
prometheus:
endpoint: “0.0.0.0:8889”
namespace: minecraft
logging:
loglevel: debug
service:
pipelines:
metrics:
receivers: [otlp, prometheus]
processors: [batch, resource]
exporters: [prometheus, logging]
重要な注意点:
Prometheus Exporterプラグインの設定例:
enable_metrics: true
host: 0.0.0.0
port: 9225
metrics:
– player_count
– tps
– memory_usage
– world_size
– entities_count
– chunk_count
minecraft_server_tps:
help: “Server TPS (Ticks Per Second)”
type: gauge
minecraft_server_memory_usage:
help: “Server memory usage in bytes”
type: gauge
minecraft_server_player_count:
help: “Current online players”
type: gauge
minecraft_server_world_size:
help: “World size in megabytes”
type: gauge
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
– “minecraft_alerts.yml”
scrape_configs:
– job_name: ‘minecraft-server’
static_configs:
– targets: [‘localhost:9225’]
scrape_interval: 30s
metrics_path: /metrics
– job_name: ‘node-exporter’
static_configs:
– targets: [‘localhost:9100’]
scrape_interval: 30s
– job_name: ‘opentelemetry-collector’
static_configs:
– targets: [‘localhost:8889’]
scrape_interval: 30s
alerting:
alertmanagers:
– static_configs:
– targets:
– alertmanager:9093
TPS監視パネル設定例:
avg(minecraft_server_tps{job=”minecraft-server”})
# Memory Usage Query
minecraft_server_memory_usage{job=”minecraft-server”} / 1024 / 1024
# Player Count Query
minecraft_server_player_count{job=”minecraft-server”}
パネル | メトリクス | アラート閾値 |
---|---|---|
TPS | minecraft_server_tps | < 18 |
メモリ使用率 | minecraft_server_memory_usage | > 80% |
プレイヤー数 | minecraft_server_player_count | N/A |
チャンク数 | minecraft_server_chunk_count | > 10000 |
groups:
– name: minecraft_alerts
rules:
– alert: MinecraftServerDown
expr: up{job=”minecraft-server”} == 0
for: 1m
labels:
severity: critical
annotations:
summary: “Minecraft server is down”
– alert: LowTPS
expr: minecraft_server_tps < 18
for: 2m
labels:
severity: warning
annotations:
summary: "Server TPS is below 18"
- alert: HighMemoryUsage
expr: (minecraft_server_memory_usage / minecraft_server_memory_max) > 0.8
for: 5m
labels:
severity: warning
annotations:
summary: “Server memory usage is above 80%”
統合監視システムの構築:
services:
otel-collector:
image: otel/opentelemetry-collector:latest
ports:
– “4317:4317”
– “4318:4318”
– “8889:8889”
volumes:
– ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
prometheus:
image: prom/prometheus:latest
ports:
– “9090:9090”
volumes:
– ./prometheus.yml:/etc/prometheus/prometheus.yml
– ./minecraft_alerts.yml:/etc/prometheus/minecraft_alerts.yml
grafana:
image: grafana/grafana:latest
ports:
– “3000:3000”
environment:
– GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
– grafana-storage:/var/lib/grafana
volumes:
grafana-storage:
最適化のポイント
- 適切なスクレイプ間隔の設定
- 必要なメトリクスのみの収集
- データ保持期間の調整
- 効率的なクエリの作成
よくある問題と解決法:
- メトリクスが収集されない
→ Exporterの設定とファイアウォールの確認 - Grafanaでデータが表示されない
→ Prometheusとのデータソース設定確認 - アラートが動作しない
→ AlertManagerの設定とSMTP設定確認
監視システムを含むマイクラサーバー構築におすすめのVPSサービス: