share facebook facebook twitter menu hatena pocket slack

2011.05.23 MON

PHPでCloudWatchにメトリクスのデータを登録

鈴木 宏康

WRITTEN BY 鈴木 宏康

NagiosとCloudWatchを融合させようとするために、まず、Nagiosでパフォーマンスデータをファイルに出力して処理するで、Nagiosの準備をしたのですが、今回は、CloudWatchの方の準備(というか練習)です。

内容としては、下記のPHPスクリプトを実行して、AWS Management Consoleでグラフ表示の確認するところまでになります。

require_once("/opt/aws/php/sdk.class.php");

define("AWS_KEY"       , "AAAAAAAA");
define("AWS_SECRET_KEY", "SSSSSSSS");

date_default_timezone_set("Asia/Tokyo");
$cw = new AmazonCloudWatch();
$cw->set_region(AmazonCloudWatch::REGION_US_E1);

$response = $cw->put_metric_data("suz-lab", array(
    array(
        "MetricName" => "Load Average",
        "Dimensions" => array(
            array("Name" => "Host"  , "Value" => "suz-lab-dev"),
            array("Name" => "Minute", "Value" => "1"),
        ),
        "Timestamp" => "now",
        "Value"     => 1,
        "Unit"      => "None"
    ),
));
var_dump($response->isOK());

$response = $cw->put_metric_data("suz-lab", array(
    array(
        "MetricName" => "Load Average",
        "Dimensions" => array(
            array("Name" => "Host"  , "Value" => "suz-lab-dev"),
            array("Name" => "Minute", "Value" => "5"),
        ),
        "Timestamp" => "now",
        "Value"     => 2,
        "Unit"      => "None"
    ),
));
var_dump($response->isOK());

$response = $cw->put_metric_data("suz-lab", array(
    array(
        "MetricName" => "Load Average",
        "Dimensions" => array(
            array("Name" => "Host"  , "Value" => "suz-lab-mac"),
            array("Name" => "Minute", "Value" => "5"),
        ),
        "Timestamp" => "now",
        "Value"     => 3,
        "Unit"      => "None"
    ),
));
var_dump($response->isOK());

実行後、AWS Management Consoleを確認すると、下記のように表示されます。
これによりデータが登録されて、グラフ表示までできていることを確認できました。

後は、Nagiosのパフォーマンスデータ処理に利用できるよう、このスクリプトを改良するだけです。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。