zabbixのAPIを使用したデータの取得のPHP [プログラム]
zabbix APIを使用してデータを取得する場合のPHP処理。
authとURLのところは変更して下さい。
authはこれを実行する前に一度認証処理を行って、返ってきた値です。
itemidsは取得したい値のIDです。
time_fromは指定した時刻以降のデータを取得します。
Zabbix-API用のユーザに特権管理者権限を付与して下さい。
<?php
//cURL初期化
$channel = curl_init();
//パラメータ設定
$options = array(
//リダイレクトする前のURLをセット
CURLOPT_AUTOREFERER => TRUE,
//HTTP で 400 以上のコードが返ってきた際に 処理失敗と判断し、何もしない
CURLOPT_FAILONERROR => FALSE,
//戻り値を文字列として扱う
CURLOPT_RETURNTRANSFER => TRUE,
//POST
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => '{"auth":"aaabbbcccddd11122233344455566fff","method":"history.get",
"id":1,"params":{"itemids":["10"],"time_from":"1316058010",
"output":"extend"},"jsonrpc":"2.0"}',
//Header
CURLOPT_HTTPHEADER => array('Content-Type: application/json-rpc'),
//URL
CURLOPT_URL => 'http://192.168.0.1/zabbix/api_jsonrpc.php',
//ユーザエージェント
CURLOPT_USERAGENT => 'Mozilla/4.0',
);
//オプション設定の追加
curl_setopt_array($channel, $options);
//cURLを実行
$body = curl_exec($channel);
$response_data['body'] = $body;
//URL IDのデータを配列に追加
//閉じる
curl_close($channel);
unset($channel);
$result_buf = json_decode($response_data['body'], true);
$result = array();
foreach($result_buf['result'] as $value)
{
$clock = date('Y/m/d H:i:s', $value['clock']);
$result[$clock] = $value['value'];
}
var_dump($result);
?>
![[わーい(嬉しい顔)]](http://blog.so-net.ne.jp/_images_e/140.gif)
これの結果
array(7) {
["2011/09/15 12:40:10"]=>
string(2) "61"
["2011/09/15 12:50:10"]=>
string(2) "61"
["2011/09/15 13:00:10"]=>
string(2) "61"
["2011/09/15 13:10:10"]=>
string(2) "61"
["2011/09/15 13:20:10"]=>
string(2) "61"
["2011/09/15 13:30:10"]=>
string(2) "61"
["2011/09/15 13:40:10"]=>
string(2) "61"
}
authとURLのところは変更して下さい。
authはこれを実行する前に一度認証処理を行って、返ってきた値です。
itemidsは取得したい値のIDです。
time_fromは指定した時刻以降のデータを取得します。
Zabbix-API用のユーザに特権管理者権限を付与して下さい。
<?php
//cURL初期化
$channel = curl_init();
//パラメータ設定
$options = array(
//リダイレクトする前のURLをセット
CURLOPT_AUTOREFERER => TRUE,
//HTTP で 400 以上のコードが返ってきた際に 処理失敗と判断し、何もしない
CURLOPT_FAILONERROR => FALSE,
//戻り値を文字列として扱う
CURLOPT_RETURNTRANSFER => TRUE,
//POST
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => '{"auth":"aaabbbcccddd11122233344455566fff","method":"history.get",
"id":1,"params":{"itemids":["10"],"time_from":"1316058010",
"output":"extend"},"jsonrpc":"2.0"}',
//Header
CURLOPT_HTTPHEADER => array('Content-Type: application/json-rpc'),
//URL
CURLOPT_URL => 'http://192.168.0.1/zabbix/api_jsonrpc.php',
//ユーザエージェント
CURLOPT_USERAGENT => 'Mozilla/4.0',
);
//オプション設定の追加
curl_setopt_array($channel, $options);
//cURLを実行
$body = curl_exec($channel);
$response_data['body'] = $body;
//URL IDのデータを配列に追加
//閉じる
curl_close($channel);
unset($channel);
$result_buf = json_decode($response_data['body'], true);
$result = array();
foreach($result_buf['result'] as $value)
{
$clock = date('Y/m/d H:i:s', $value['clock']);
$result[$clock] = $value['value'];
}
var_dump($result);
?>
これの結果
array(7) {
["2011/09/15 12:40:10"]=>
string(2) "61"
["2011/09/15 12:50:10"]=>
string(2) "61"
["2011/09/15 13:00:10"]=>
string(2) "61"
["2011/09/15 13:10:10"]=>
string(2) "61"
["2011/09/15 13:20:10"]=>
string(2) "61"
["2011/09/15 13:30:10"]=>
string(2) "61"
["2011/09/15 13:40:10"]=>
string(2) "61"
}






コメント 0