AWS SDKを使ってSNSにCPU使用率を送りつける
「初めてのAWSメモ(2):CloudWatchからSNS→SQS、AWS SDK for RubyでQueue取り出し」ではEC2のDetailed Monitringを使って「対象EC2のCPU使用率を1分に1回SNSに通知→SQSに分配→監視サーバからAWS SDKを使って取り出し」していたんだけど、普通にAWS-SDKを使って通知もしちゃえば良いことに気づき、Script書いてみた。
(1)CPU使用率はmpstatを使って取得したいので、sysstatをinstallする。
$ sudo yum -y install sysstat
(2)通知スクリプト。mpstatで取得したCPU使用率をAWS-SDKを使ってSNSに送りつける。
(※追記:IAM Roke for EC2を設定してればアクセスキーとシークレットキーはいらない)
(3)実行すると1分に1回mpstatの結果をSNSに送りつけるので、監視サーバ側でSQSから取り出せばOK。
(1)CPU使用率はmpstatを使って取得したいので、sysstatをinstallする。
$ sudo yum -y install sysstat
(2)通知スクリプト。mpstatで取得したCPU使用率をAWS-SDKを使ってSNSに送りつける。
(※追記:IAM Roke for EC2を設定してればアクセスキーとシークレットキーはいらない)
#!/usr/bin/ruby require 'rubygems' require 'aws-sdk' access_key = 'アクセスキー' secret_key = 'シークレットキー' sns_endpoint = 'sns.xxxxx.amazonaws.com' topic_arn = 'arn:aws:sns:xxxxx:1234567890:cpu-alert' AWS.config(:access_key_id => access_key, :secret_access_key => secret_key, :sns_endpoint => sns_endpoint) topic = AWS::SNS::Topic.new(topic_arn) message = `mpstat -P ALL` while true topic.publish(message,'cpu usage.') sleep 60 end
(3)実行すると1分に1回mpstatの結果をSNSに送りつけるので、監視サーバ側でSQSから取り出せばOK。
Amazon Web Services クラウドデザインパターン実装ガイド 大澤 文孝,玉川 憲,片山 暁雄,鈴木 宏康 日経BP社 売り上げランキング : 17216 Amazonで詳しく見る by AZlink |