【Minecraft】Datadog を使った監視を考えてみる
■ 目次
■ 目次1. はじめに1.1. サーバーの環境2. 【ユーザー目線】サービスが正常であること2.1. チェック志向 『アラート発砲』■【ユーザー目線 : サービスが正常であること】 を監視2.2. メトリクス志向 『ダッシュボード』3. 【サーバー目線】サーバーが正常であること3.1. チェック志向 『アラート発砲』3.2. メトリクス志向 『ダッシュボード』4. 最後に
1. はじめに
普段、Minecraft のプラグインサーバーを運用していく上でよくあるのが 「急激に重い!」、「え?!めっちゃラグい!!」、「あれ?!サーバー落ちてない?!」 などが…あります。(たいへんもうしわけない)
Minecraft鯖の運営者としては、ユーザーが快適に遊べるている = 【つまりサービスが快適に提供出来ている】
ただ、ユーザーからは重かった報告は上がるが・・・現状ではいつ重かったのか不明である。
ならば、監視ツールを入れて報告があった時間を確認して更にはトライ・アンド・エラーで直していこうと思う。
以前に CloudWatch Agent を入れて、監視を実施していたが、わざわざ複数のステップを踏むのが面倒になって削除しました。
ここのページでは、Datadog を用いて何を監視するかを定義する。(実現出来たのはグラフとかを載せていきます。)
また、実現出来る出来ないは一旦隅に置いといて、コレがあったら良いなーと考えてみる。
1.1. サーバーの環境
CPU
項目 | 値 |
---|---|
アーキテクチャ | x86_64 |
Model name | Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz |
CPU(s) | 12 |
メモリ(新品 同じ型で2枚差し : 合計32GB)
項目 | 値 |
---|---|
Size | 16384 MB |
Type | DDR4 |
Speed | 2666 MT/s |
2. 【ユーザー目線】サービスが正常であること
まずは、ユーザー目線で考えてみる
2.1. チェック志向 『アラート発砲』
📝 特性 : 異常検知
- 典型的な動作 : 定期的に監視対象の動作確認を行う (HTTP 対応など)
- 典型的な出力 : 異常を通知するメール (Slack/Discord など)
- 狭義の監視 : 定期的/継続的に、観測し “異常” を検知し復旧させること
■【ユーザー目線 : サービスが正常であること】 を監視
- Minecraft サーバーに正常にログインができる
- 外部からの Ping 25565 番ポートが帰ってくる
- Web サイト (Dynmap) が正常に閲覧できる
- /map/ を GET したら 200 が帰ってくる
2.2. メトリクス志向 『ダッシュボード』
📝 特性 : 状況把握
- 典型的な動作 : 定期的に監視対象の状況を示すデータを取得/収集する (CPU利用率)
- 典型的な出力 : 監視対象の状況を示すグラフ
- 広義の監視 : 定期的/継続的に、観測しシステムの “価値” を維持/向上させる営みの全て
- Web サイトの閲覧数を表示
- Minecraft サーバーに対するユーザーのログイン数
3. 【サーバー目線】サーバーが正常であること
まずは、アンチパターンから考える
- CPU
- 使用率
- LoadAverage 1-5-15
- メモリ
- 搭載されているメモリの空き状況 『全体 – 使用率 = 空き状況』
- Minecraft サーバーに割り当てられているメモリの空き状況 『全体 – 使用率 = 空き状況』
- ストレージ
- SSDの全体の空き状況
- /opt/minecraft 配下のストレージの空き状況 『/opt/minecraft 全体 – 使用率 = 空き状況』
- 書き込み/読み込み速度
- inode
- プロセス
- Minecraft サーバーのプロセスを監視
- ネットワーク
- トラフィック量
- ログ監視
- Error を検知
3.1. チェック志向 『アラート発砲』
- Error ログ検知時にアラート
- 現状はフォーマットが確定していないのとコスト的に破産するので辞める
- Minecraft サーバーがダウン時にアラート
- ホストマシン自体がダウン時にアラート
- Web ページに対する 5XX シリーズを検知した時にアラート
- ストレージが枯渇時にアラート
- ストレージの書き込み速度が 5 分以上遅くなった時にアラート
- CPU 使用率が 5 分以上キープしてた時にアラート
- inode の空き数が枯渇してきたらアラート
- Web サイトの SSL 期限日の 10 日前になったらアラート
3.2. メトリクス志向 『ダッシュボード』
- CPU 使用率
- LoadAverage 1-5-15
- メモリ 空き状況
- ストレージ 使用率
- Minecraft サーバー プロセス数
- ネットワークトラフィック量
4. 最後に
フルマネージドサービスって便利ですね!