AWSでカスタムメトリクスでの監視設定
スポンサーリンク
t.microインスタンス利用時にmysqlが起動しなくなることがちょくちょく出てきた。ということでAWSの機能cloudwatchで監視設定をした。
起動しなくなった時の状況確認
$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 32836 4736 27916 0 0 6 2 12 37 0 0 100 0 0
/var/log/messagesを見る。Out of Memmoryとなっている。
sudo tail 10 /var/log/messages tail: cannot open `10' for reading: No such file or directory ==> /var/log/messages <== Apr 7 00:43:03 ###-###-###-### kernel: [265286.290929] Out of memory: Kill process 1387 (mysqld) score 70 or sacrifice child Apr 7 00:43:03 ###-###-###-### kernel: [265286.290938] Killed process 1387 (mysqld) total-vm:814828kB, anon-rss:42428kB, file-rss:0kB Apr 7 11:05:37 ###-###-###-### dhclient[974]: DHCPREQUEST on eth0 to 169.254.1.0 port 67 (xid=0x1158adfb) Apr 7 11:05:37 ###-###-###-### dhclient[974]: DHCPACK from ###.###.###.### (xid=0x1158adfb) Apr 7 11:05:40 ###-###-###-### dhclient[974]: bound to ###.###.###.### -- renewal in 32909 seconds.
OS再起動後。空きが増えた。
$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 398480 9904 99648 0 0 1468 48 168 229 6 5 56 19 14
クラウドウォッチで監視&OS再起動する
AWSではデフォルトで監視できる項目(CPUやDISKのwriteなど)が限られているのでメモリ使用量はカスタムメトリクスっていうので設定が必要。イメージとしてはOSのコマンドでメモリ使用量を出力して、それをcouldwatchサービスに転送。それをcronで頻度を指定してスケジュールする。
方法は以下を見ればすぐにできるのでご参照下さい。
EBS空き監視
後日追記
メモリ不足ですがswap設定が全くされていないことが分かった。windowsサーバばかり触っているのでt.micoroのlinuxもデフォルトでスワップぐらい設定されているだろと思っいたけど、案の定設定され
ておらず。
スワップ設定確認コマンド
以下のコマンドでSWAP設定がないことを確認した。
・スワップファイルの確認
$ /sbin/swapon -s
・スワップ使用状況の確認
$ cat /proc/meminfo
EBS拡張方法
ついでに、t.microのデフォルトEBS 8GBではスワップ取る場所もないので、
以下を参考にEBSの拡張を行った。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-expand-volume.html
[手順]
- サーバ停止
- EBSのスナップショットの取得
- スナップショットから create bolume でサイズ指定してEBS作成
- 古いEBSをデタッチ
- 新しいEBSをアタッチ(OS領域の拡張なので新しいボリュームアタッチする際は、/dev/sda1を指定)
- サーバ起動
- df -h コマンドで現在のファイルシステムの状態を確認
- sudo file -s /dev/xvd* でファイルシステムタイプの確認
- sudo resize2fs /dev/xvda1 でリサイズ実行
- df -h で拡張されたことを確認
スワップ設定手順はこちらを参照しました。
Linuxのswap領域を追加する方法:ぴろにっき:So-netブログ