Minecraftサーバーを動かす知識

Zabbigotの使い方と設定

投稿:  By: HimaJyun

このページではZabbigotの使い方、導入方法、コマンド、パーミッション、設定などを解説します。

プラグイン名Jecon
開発者HimaJyun
配布場所GitHub
ライセンスApache License 2.0
ソースコードGitHub(HimaJyun/Zabbigot)
執筆時バージョン1.2.0 (Spigot 1.13.2)
備考当サイト管理人作

スポンサーリンク

Zabbigotとは

ZabbigotはBukkitサーバーのTPSやメモリ使用量、チャンクロードなどをZabbixで監視できるようにするプラグインです。

実際の例です。
/bukkit/plugin/zabbigot/001.png
/bukkit/plugin/zabbigot/002.png
/bukkit/plugin/zabbigot/003.png

使い方

基本的に何かの操作を行う必要はありません。

Zabbigotは定期的に自動でZabbixにサーバーの状態を送信します。

/zabbigot showコマンドで現在の状態を表示することも可能なので、サーバーの様子がおかしい時などには確認してみると良いでしょう。

導入方法

Zabbigotには前提プラグインなどは必要ありません。

GitHubからプラグインをダウンロードして設定を行ってください。

プラグインの設定後にZabbixの設定も必要となります。

コマンド

< >は必須、[ ]はオプションの引数です。

コマンドパーミッション説明
/zabbigot showzabbigot.show現在の状態を表示
/zabbigot sendzabbigot.send現在の状態を送信
/zabbigot reloadzabbigot.reload設定をリロード

/zabbigot showコマンドの出力は次のようになっています。

======== Zabbigot (Player: {オンラインプレイヤー}/{最大プレイヤー}) ========
TPS: [####################] {tps} ({tps}%)
MEM: [###################_] {free}MB/{total}MB ({free}%)
CUR: [###############_____] {ロード済みチャンク} ({アンロード率}%)

高負荷時などにTPSが20を超えることがありますが、これは高負荷によって低下したTPS分の遅延を取り戻すための正常な動作です。

CUR(Chunk Unload Ratio)はチャンクのロードとアンロードの比率を示します。

{ロード済みチャンク}には現在ロード中のチャンク数が表示されます。

設定

ZabbigotではZabbix Senderプロトコルを使用するため、Zabbix agentなどの設定は必要ありません。

config.ymlにZabbixサーバーの設定を記載してください。

# 送信間隔 (単位: 秒)
# 0に設定すると送信が止まります
Interval: 60

# 送信方法
# zabbix: Zabbix Senderプロトコルを使用
# json: jsonファイルとして出力
# tsv: tsvとして出力
Sender: "zabbix"

# Zabbixサーバーの設定
Zabbix:
    Server: "localhost"
    Port: 10051
    Hostname: "MinecraftServer"
    # 複数のサーバーを監視する(Zabbixのキー重複制限を回避する)際に使用する機能
    # 指定した識別子が渡される
    # 例:
    # Identifier: "Minecraft" -> "minecraft.tps[Minecraft]"
    # Identifier: "Zabbigot" -> "minecraft.tps[Zabbigot]"
    Identifier: "Minecraft"

# 指定したキーの出力を停止する
Disable:
    - "example"
    #- "user"

# 触らない
version: 1

Zabbixの設定

監視項目には次の物があります。タイプは「Zabbixトラッパー」です。

キー説明データ型
minecraft.userオンラインユーザー数数値 (整数)
minecraft.tpsサーバーTPS数値 (浮動小数)
minecraft.pingPingパケットのカウント数値 (整数)
minecraft.memory.free未使用メモリ数値 (整数)
minecraft.memory.used使用済メモリ数値 (整数)
minecraft.chunk.loadチャンクロード回数数値 (整数)
minecraft.chunk.unloadチャンクアンロード回数数値 (整数)
minecraft.chunk.loadedロード済みチャンク数数値 (整数)
minecraft.chunk.generateチャンク生産回数数値 (整数)
minecraft.chunk.ratioチャンクロード/アンロード比率数値 (浮動小数)

minecraft.chunk.load/unload/generateの3つはサーバー起動後から増え続ける値のため、Zabbix側で保存時の計算に「差分」などを使用する必要があります。

また、実際にはminecraft.user[Minecraft]のようにconfig.ymlのIdentifierで指定した値を付け加える必要があります。

Zabbix以外で使う場合

config.ymlのSenderjsontsvにするとテキストファイルとして出力されるようになります。

Zabbix以外の監視システムを使っている場合はこれらの機能を利用して出力された値を登録すると良いでしょう。