2017年8月10日木曜日

S3の利用量を監視するMuninプラグイン



MuninでAWS S3のバケットの利用量を監視するスクリプトを作る。



プラグインのリンクを張るときに末に監視したいバケット名を追加してリンク張ってください。
# ln -s aws_s3_ /etc/munin/plugins/aws_s3_backetname
そーす。
リージョンだけべた書きしてるけど
#!/bin/bash
#
# README
# ===========================================
#
# Set export JAVA Options
# ---
# REGION : AWS region
# BUCKET_TARGET : AWS S3 bucket name
#
# Plugin config
# ---
#
# ```
# # vim plugin-conf.d/munin-node
# [jstat_*]
# env.REGION ap-northeast-1
# ```
#
# Export
# -------------------------------------------
REGION=${REGION:-ap-northeast-1}
BUCKET_TARGET=$(/bin/basename "$0" |/bin/awk -F '_' '{print $NF}')

# Graph Setting
# -------------------------------------------
. "$MUNIN_LIBDIR"/plugins/plugin.sh

if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi

if [ "$1" = "config" ]; then

# Graph set
echo "graph_title S3 $BUCKET_TARGET Bucket"
echo 'graph_args --base 1024 -l 0'
echo 'graph_vlabel S3 Bucket Size'
echo 'graph_info This graph S3 Bucket Size.'
echo 'graph_category s3'

# Lavel set
echo 'objects.label bucket objects'
echo 'objects.draw LINE1'
echo 'objects.min 0'
echo 'objects.type GAUGE'
echo "objects.info bucket objects count."

echo 'size.label bucket size'
echo 'size.draw LINE1'
echo 'size.min 0'
echo 'size.type GAUGE'
echo "size.info bucket size byte."

exit 0
fi

# Get parameter
# -------------------------------------------
TOTAL_OBJECT=$(aws s3 ls s3://$BUCKET_TARGET --recursive --summarize |awk '/Total Objects/{print $3}')
TOTAL_SIZE=$(aws s3 ls s3://$BUCKET_TARGET --recursive --summarize |awk '/Total Size/{print $3}' )

if [ ! -z "$TOTAL_OBJECT" ]; then
echo "objects.value $TOTAL_OBJECT"
else
echo "objects.value "
exit 0
fi

if [ ! -z "$TOTAL_SIZE" ]; then
echo "size.value $TOTAL_SIZE"
else
echo ""size.value ""
exit 0
fi

S3ってコマンド等で簡単にサイズを取得するAPIとかが今のところ無いのね。
なのでバケットのlsオプションからサマリサイズで取得しています。

Amazon Web Services企業導入ガイドブック -企業担当者が知っておくべきAWSサービスの全貌から、セキュリティ概要、システム設計、導入プロセス、運用まで-
荒木 靖宏 大谷 晋平 小林 正人 酒徳 知明 高田 智己 瀧澤 与一 山本 教仁 吉羽 龍太郎
マイナビ出版 (2016-06-10)
売り上げランキング: 2,369

0 コメント:

コメントを投稿