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 |