AWS CloudWatch:カスタムメトリックス

こんにちはhabravchane!



最近、彼の仕事を変えましたが、それでもクラウドテクノロジーに夢中になりました。 そして今、私ははるかに多くのプロジェクトを持ち、それらと一緒に、そして記事を面白いと思います。



そのため、Cloud Watchでカウントできないパラメーターのメトリックを作成する必要がありました。 多くのことを測定できますが、たとえば、負荷平均を取ります。 この奇妙だが理解可能なパラメーターは、システムの状態を説明します。 一般に、この状態によってサーバーの状態を評価できます。 当然のことながら、常にではありませんが、例として、LAは理想的です。



これには何が必要ですか?



1. Amazon CloudWatchコマンドラインツール

2.いくつかのスクリプト



サーバーで料理を始めましょう。

  1. / optフォルダーで、フォルダーを作成します-AWS
  2. / opt / aws / monフォルダーにコマンドラインユーティリティを展開します
  3. キーと証明書のpkは**です。Pemとcertは**。Pemです。 フォルダーに入れます/ opt / aws / keys
  4. Javaシンボリックリンクを含む必要なフォルダーを/ usr / java / latestにリダイレクトします




最初に、負荷平均を取得する方法を理解します。 私はこれが好きです:

load_average=$(uptime | awk -F'load average:' '{ print $2 }' | awk '{ print $2 }') load_average=${load_average%%','}
      
      





この変数では、LAを5分間(秒)保存します。



次に、特定の形式のTimeStampが必要です。

 timestamp=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)
      
      







最後に、メトリック値を登録します。

 mon-put-data --metric-name "LoadAverage" --namespace "CustomMetric" --timestamp $timestamp --value $load_average
      
      





--metric-name "LoadAverage"-メトリック名

--namespace "CustomMetric"-このメトリックが配置される場所



したがって、変数、永久ループ、およびロギングを含む最終スクリプトは次のようになります。

/opt/aws/cw_scaler.sh
 #!/bin/bash export AWS_CLOUDWATCH_HOME=/opt/aws/mon export AWS_CLOUDWATCH_URL=https://monitoring.amazonaws.com export PATH=$AWS_CLOUDWATCH_HOME/bin:$PATH export JAVA_HOME=/usr/java/latest export TOOLS_HOME=/opt/aws export EC2_PRIVATE_KEY=$TOOLS_HOME/keys/pk-GWO6MOXPTCZA5EY7**********RSFJ.pem export EC2_CERT=$TOOLS_HOME/keys/cert-GWO6MOXPTCZA5EY7**********RSFJ.pem while [ true ]; do load_average=$(uptime | awk -F'load average:' '{ print $2 }' | awk '{ print $2 }') load_average=${load_average%%','} timestamp=$(date -u +%Y-%m-%dT%H:%M:%S.000Z) mon-put-data --metric-name "LoadAverage" --namespace "CustomMetric" --timestamp $timestamp --value $load_average echo "$timestamp: Load Average $load_average" >>$TOOLS_HOME/cw_scaler.log echo "" >>$TOOLS_HOME/cw_scaler.log sleep 14 done
      
      







ミニデーモンを開始/停止するためのinitスクリプトを忘れないでください:

/etc/init.d/cw_scaler-init
 #!/bin/bash1 #chkconfig: 2345 55 25 # source function library . /etc/rc.d/init.d/functions #Set environement export TOOLS_HOME=/opt/aws start() { $TOOLS_HOME/cw_scaler.sh& } stop() { kill $(ps ax | grep '/opt/aws/cw_scaler.sh' | grep -v "grep" | awk '{print $1}') } case "$1" in start) echo "Starting Cloud Watch scaler." start ;; stop) echo "Stopping Cloud Watch scaler." stop ;; *) echo $"Usage: cw_scaler.sh {start|stop}" exit 1 ;; esac
      
      







実際に私たちが最後に得たもので? 5〜10分後、Cloud WatchパネルにCustomMetricおよびLoadAverageのメトリックのタイプが表示されます。





はい、紳士、すべてが非常に単純であり、数値的に送信できるあらゆる種類のデータを撮影することができ、それらに基づいてすでに自動スケーリングを構築できます。



脅威。 お気づきの方は、これがEPAM Systemsの企業ブログの最初の記事です。 愛してください! =)



All Articles