この記事は公開されてから8年経過しています。現在とは内容が異なる場合がありますのでご注意ください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
AWS の CloudWatch はインスタンスの状況を確認するのに便利ですが、標準のままだといかんせん監視項目が少ないです。そこで、MySQL のスレッド数を監視するカスタムメトリクスを作成してみました。
AWS で動いているインスタンスの中で MySQL(Percona も含む) サーバが動いています。
MySQL のスレッド数は mysqladmin status
というコマンドで簡単に取得できるので、それをつかってカスタムメトリクス化しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash export AWS_CREDENTIAL_FILE=[Credential File Path] export AWS_REGION=[Region] mysqladmin_cmd=/usr/bin/mysqladmin mysqladmin_opt="-u [MySQL User] -p[MySQL User Password]" export JAVA_HOME=/usr/lib/jvm/jre export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon export AWS_CLOUDWATCH_URL=https://monitoring.${AWS_REGION}.amazonaws.com export PATH=$PATH:$HOME/bin:$AWS_CLOUDWATCH_HOME/bin instanceid=`curl -s http://169.254.169.254/latest/meta-data/instance-id` mysqladmin_status_cmd="${mysqladmin_cmd} ${mysqladmin_opt} status" thread=`($mysqladmin_status_cmd 2>/dev/null || echo '0 0 0 0') | tr -s ' ' | awk '{print $4}'` /opt/aws/bin/mon-put-data --metric-name "MySQL Threads" --namespace "MySQL" --dimensions="InstanceId=$instanceid" --value "$thread" --unit "Count" |
スクリプトは GitHub で公開しています。
GitHub: torut/cloudwatch
使い方、各種設定方法は README をご覧ください。