サーバを支える技術 サーバデータの表示について

サーバデータを表示するプログラムを作りました。

今回その成果物の、内容を公開しようと思います。

と言っても、参加人数を表示するプログラム部分のみです。

サーバが分かれているので、それを統合して表示するプログラムがなかったのです。

他の表示部分は

[Bukkit/Spigot]MinecraftサーバをZabbixで監視する

ココの情報で、作成しました。

■ サーバーが分かれている場合の参加人数をグラフにするやり方。

今回ご紹介するのはこれです。

やり方は、

1 PHPからマイクラサーバに接続。参加人数を表示するプログラムをつくる。

2 ZABBIX でこのプログラムを外部チェックで人数を取得する。

と言うことです。

まず。1のプログラム。

minecraft.php

#!/bin/php
<?php

fetch_server_info("IPアドレスを入れる",25565);

function fetch_server_info($ip,$port){
$socket = @fsockopen($ip,$port,$errno,$errstr,0.5);
if($socket == false){
return 0;
}

fwrite($socket,"\xfe");
$data = fread($socket,256);

if(substr($data,0,1)!= "\xff"){
return 0;
}

$data = explode('§', mb_convert_encoding(substr($data,3),'UTF8','UCS-2'));

#print "motd:".$data[0]."\n";
print intval($data[1])."\n";
#print "max_players".intval($data[2])."\n";
}

?>

これを /usr/lib/zabbix/externalscripts に入れます。

chown zabbix:zabbix /usr/lib/zabbix/externalscripts/minecraft.php します。

chmod 700 /usr/lib/zabbix/externalscripts/minecraft.php します。

これで後は、ZABBIX で外部チェックで取得すればOKです。

以上となります。

PHPプログラムもWEBで参考にした物を改造しただけです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です