タグ: CloudWatch

  • CloudWatch Logsで任意の文字列を監視してグラフ化する

    CloudWatch Logsで任意の文字列を監視してグラフ化する

    概要

    シェルでラップして見たい値をCloudWatchに飛ばして監視する。

    今回はその仕組みを流用してサーバのプロセス数を監視監視した。

    ディレクトリ作成

    どこでも良い。今回はec2-userの下にcloudwatchディレクトリを作成する

    mkdir /home/ec2-user/cloudwatch
    cd /home/ec2-user/cloudwatch

    シェル作成

    vi CustomMetrix.sh

    #!/bin/sh
    CUR_DIR=/home/ec2-user/cloudwatch
    
    export JAVA_HOME=/usr/lib/jvm/jre
    export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon
    export EC2_REGION=ap-northeast-1
    export AWS_CREDENTIAL_FILE=${CUR_DIR}/credential
    InstanceId=`cat /var/tmp/aws-mon/instance-id`
    # 設定ファイル
    PROCESSCONFIG=${CUR_DIR}/process-conf.txt
    
    # Process Check(設定したファイルから読み込む)
    cat ${PROCESSCONFIG} | sed '/^$/d' | grep -v '^#.*' | while read PROCESS
    do
    COUNT=`ps aux | grep ${PROCESS} | grep -v grep | wc -l`
    echo ${PROCESS}:${COUNT}
    /opt/aws/bin/mon-put-data --metric-name ${PROCESS} --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value ${COUNT}
    done
    
    # LoadAverage(1分間の測定値を取得)
    /opt/aws/bin/mon-put-data --metric-name "LoadAverage" --namespace "CustomMetrix" --dimensions "InstanceId=${InstanceId}" --value `cat /proc/loadavg | awk '{print $1;}'`

    設定ファイル

    process-conf.txt

    httpd
    crond

    認証情報

    credential

    AWSAccessKeyId=aaaaaaaa
    AWSSecretKey=ccccccccc

    実行

    sh ./CustomMetrix.sh

    httpd:0
    crond:1

    結果

  • CloudWatch の Dimensions を確認する

    CloudWatch の Dimensions を確認する

    概要

    CloudWatch の Dimensions を知りたいが、

    ブラウザで AWS のコンソール画面に入っても、Dimensions を見ることはできない。

    この時の確認の仕方を紹介。

    確認方法

    コンソールからNamespaces を調べる。

    今回 API gateway 。

    クリックしていくと、 Metric Name を選ぶので任意のものを選ぶ。

    今回は Count 

    上記メモとしてひかえ、aws cli を投げる

    aws cloudwatch list-metrics 
    --namespace AWS/ApiGateway
    --metric-name Count

    以下のようなレスポンスが返ってくる

    {
        "Metrics": [
            {
                "Namespace": "AWS/ApiGateway",
                "MetricName": "Count",
                "Dimensions": [
                    {
                        "Name": "ApiName",
                        "Value": "Tsukada API"
                    },
                    {
                        "Name": "Resource",
                        "Value": "/info/name/_search"
                    },

    Dimensions を確認することができる