最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
昨日の MySQL のスレッド数監視スクリプトに続いて、 Nginx の接続数を監視するスクリプトを作成しました。
Nginx の stub_status を使って取得できるステータス情報から Active connection の数値を取得しています。
昨日の mysqladmin status
は1行だけの出力でしたが、今回は複数行になるため、改行を別の文字に置き換えて1行にした上で目的の数値を取り出しています。
あと、スクリプトが複数になったので、共通する環境変数は別ファイル(.aws_profile)で設定できるように分割しました。
詳しい使い方、設定の方法は GitHub の README をお読みください。
GitHub: torut/cloudwatch
1 2 3 4 5 6 7 8 9 |
#!/bin/bash source `dirname $0`/../.aws_profile nginx_status_url=http://localhost/status active_connection=`curl -s ${nginx_status_url} | tr "\n" ";" | tr -s ' ' | awk -F\; '{print $1 };' | awk '{ print $3 }'` /opt/aws/bin/mon-put-data --metric-name "Nginx Active connections" --namespace "Nginx" --dimensions="InstanceId=$instanceid" --value "$active_connection" --unit "Count" |
スクリプトは GitHub で公開しています。
GitHub: torut/cloudwatch
シェルスクリプトで目的の数値を取り出すことさえできれば簡単に CloudWatch に送信できるので便利ですね。
ただし、カスタムメトリクス、APIリクエストも課金対象になるので注意しましょう。
Amazon CloudWatch のカスタムメトリックス
$0.50 : メトリックスあたり/月
Amazon CloudWatch API リクエスト
$0.01 : 1,000 Get、List、または Put リクエストあたり