183 Views
September 30, 26
スライド概要
アニメ、ラノベ、きららが好きです 競技プログラミング、電子工作、Web系のなにかに興味があります。
uriboooooon
875
自宅マインクラフトサーバー を監視してみた
前回までのあらずじ Raspberry Piを使用してマインクラフトサーバーを建てた docker compose(サーバー) minecraft playit agent © playit クライアント
監視 • サーバーの稼働状況を確認し、正常に動いているか確認 • メトリクスやログを取得して状態を把握 • 障害が起こった時の原因を認識するのに必要
監視 • サーバーの稼働状況を確認し、正常に動いているか確認 • メトリクスやログを取得して状態を把握 • 障害が起こった時の原因を認識するのに必要
構成図 その1 docker compose(Raspberry Piサーバー) Grafana(ノートPC) minecraft playit agent mc backup mc router Loki promtail Victoriametrics mc monitor node exporter © playit クライアント
コア機能
itzg/minecraft-server • めっちゃ管理されているマイクラサーバのdockerイメージ • docker-compose.ymlの環境変数を設定するだけでいい感じに • メモリ上限 • 最大プレイヤー • ワールド難易度 docker-compose.yml
playit • アクセスキーを取得してエージェントとトンネルを作成 仕組み クライアント © playit サーバー
監視スタック
Node Exporter • ハードのメトリクスを取得 • CPU使用率 • メモリ使用率など
mc monitor • プレイヤー数やレスポンスを可視化するdocker image • マインクラフトサーバー用イメージと作者が同じ
VictoriaMetrics • 時系列監視データベース • ここにメトリクス情報を保存しておき、 検索をかける
Promtail • ログを集約してLokiへ送信するエージェント • 2026/3に開発終了なのであとで切り替え
Loki • ログ保存、クエリできる
Grafana • メトリクスやログを可視化するダッシュボード • データソースは選択可能 • OSSだけでなくCloudもあり
GrafanaCloudを使う
構成図 その1 docker compose(Raspberry Piサーバー) Grafana(ノートPC) minecraft playit agent mc backup mc router Loki promtail Victoriametrics mc monitor node exporter © playit クライアント
構成図 その2 docker compose(Raspberry Piサーバー) GrafanaCloud minecraft playit agent mc backup mc router Alloy mc monitor node exporter © playit クライアント
Alloy • メトリクス、ログ、トレース、プロ ファイルを取得できるよう一元的に 使用できる • GrafanaCloudへこれを使用して送 信
GrafanaCloud • Grafanaのクラウドサービス • 無料枠 • 50GBまで使用可能 • データは14日まで保持 • 公式ページの日本語対応がしっかりしている
Pyroscope • Alloyでプロファイルも取得できるので追加した • GrafanaCloudで確認
VPNなしでスマホから家のPCを確認
その他 • Clouflare R2でバックアップ先を確保 • 10GBまで無料
今後やりたいこと • 監視サーバーとマインクラフトサーバーを分ける • 通知 • Discordのwebhookとかよさそう • VictoriaLogsの検討
次回予告 (※書いてある内容はフィクションです)
やめて!Dos攻撃で、計算リソースを焼き払われたら、仮想環境 でサーバーと繋がっているマインクラフトの資源まで燃え尽き ちゃう! お願い、死なないでRaspberry Pi!あんたが今ここで倒れたら、 ユーザとの可用率の約束はどうなっちゃうの? メモリはまだ 残ってる。ここを耐えれば、mc routerで制限できるんだから!
やめて!Dos攻撃で、計算リソースを焼き払われたら、仮想環境 でサーバーと繋がっているマインクラフトの資源まで燃え尽き ちゃう! 次回 お願い、死なないでRaspberry Pi!あんたが今ここで倒れたら、 ユーザとの可用率の約束はどうなっちゃうの? メモリはまだ 残ってる。ここを耐えれば、mc routerで制限できるんだから!
やめて!Dos攻撃で、計算リソースを焼き払われたら、仮想環境 でサーバーと繋がっているマインクラフトの資源まで燃え尽き ちゃう! 次回 自宅内サーバー死す お願い、死なないでRaspberry Pi!あんたが今ここで倒れたら、 ユーザとの可用率の約束はどうなっちゃうの? メモリはまだ 残ってる。ここを耐えれば、mc routerで制限できるんだから!
やめて!Dos攻撃で、計算リソースを焼き払われたら、仮想環境 でサーバーと繋がっているマインクラフトの資源まで燃え尽き ちゃう! 次回 自宅内サーバー死す お願い、死なないでRaspberry Pi!あんたが今ここで倒れたら、 ユーザとの可用率の約束はどうなっちゃうの? メモリはまだ 残ってる。ここを耐えれば、mc routerで制限できるんだから! コールドスタンバイ!
とするときの...
OCI移植編(するかも...)
• OCI • ネットワークルール • セキュリティ • バックアップ • IaC • ロギング • モニタリング • 可視化 • 通知 • 公開方法 • 運用保守 • 監視 • 荒らし対策 • ドキュメント整備 • 通知 つらそう
実際にコールドスタンバイするなら • Playitggのキーにトンネルが紐づいている • トンネルのアドレスは短期間なら変化しないのでコンテナ起動 して終わり(?)
まとめ • 自宅マインクラフトサーバーのメトリクス、ログ、プロファイ ルを一元的に取得して、クラウドに送ることにより遠隔地から 状態を確認できるようになった