Amazon EC2 で Munin + Apache でリソース監視環境をセットアップする
はじめに
Amazon EC2 のアプリインスタンスで Munin を Apache で動かす手順をまとめました。
Munin そのものを学びたい時はこのスライドがオススメです。インフラと監視の昔と今、Munin の仕組みや使い方がとても分かりやすく紹介されています。
前提
- アプリインスタンス1, 2 がつくられている
- 監視する側のドメインは monitoring.example.com が割り当てられている
手順(2013年12月19日更新)
監視される側
監視される側であるアプリインスタンス2 に SSHログインします。
munin-node をインストールします。
$ sudo yum install -y munin-node
$ sudo vim /etc/munin/munin-node.conf
で設定ファイルを開き、allow に監視する側の IPアドレスを追加します。以下は IPアドレスが 10.20.30.40 である場合です。指定する IPアドレスは Private IPs に記載されているものを指定します。
allow ^10\.20\.30\.40$
munin-node を起動します。
$ sudo /etc/init.d/munin-node start
プロセスを確認しましょう。
$ ps aux | grep munin root 25718 0.0 0.5 143204 8564 ? Ss Jun10 0:48 /usr/bin/perl -wT /usr/sbin/munin-node
また、監視する側と通信できるようにポート4949 をあけます。AWS Console > EC2 > セキュリティグループより、それぞれのケースでそれぞれのセキュリティグループを追加してください。
- 監視する側とされる側でセキュリティグループが同じ場合
- Custome TCP rule でポート4949
- 自分自身のセキュリティグループ sg-xxx を選択
- 監視する側とされる側でセキュリティグループが異なる場合
- Custome TCP rule でポート4949
- 監視する側 sg-yyy を選択
これでOK!
監視する側
監視する側であるアプリインスタンス1 に SSHログインします。
Munin をインストールします。
$ sudo yum install -y munin
設定ファイルを編集します。
$ sudo vim /etc/munin/munin.conf
監視されるサーバーの名前と IPアドレスを書きます。以下は IPアドレスが 50.60.70.80 の場合です。
[instance2]
address 50.60.70.80
use_node_name yes
# グループにまとめたい場合はセミコロンで区切る
[app;web01]
...
[app;web02]
...
AWS Console よりセキュリティグループを必要に応じて解放します。今回はポート 50000(管理画面にアクセスするときに使う)と 4949(監視される側との通信でつかう)を解放します。
Munin が生成したページ見るのに Apache をインストールします。
$ sudo yum -y install httpd
設定ファイルを開き、
$ sudo vim /etc/httpd/conf/httpd.conf
次のように編集します。
- Listen 80
+ Listen 50000
...
+ <VirtualHost *:50000>
+ ServerAdmin webmaster@dummy-host.example.com
+ DocumentRoot /var/www/html/munin
+ ServerName dummy-host.example.com
+ ErrorLog logs/dummy-host.example.com-error_log
+ CustomLog logs/dummy-host.example.com-access_log common
+ <Location />
+ AuthUserFile /etc/munin/munin-htpasswd
+ AuthName "hoge"
+ AuthType Basic
+ require valid-user
+ </Location>
+ </VirtualHost>
Apache を起動します。
$ sudo /etc/init.d/httpd start
以下のコマンドで Munin のベーシック認証のユーザ名・パスワードを設定します。
$ sudo htpasswd -c /etc/munin/munin-htpasswd <username>
$ sudo /etc/init.d/munin-node start
http://monitoring.example.com:50000/ にアクセスするとベーシック認証を求められます。設定したユーザ名とパスワードを入力しましょう。
リソース監視画面が確認できれば成功です!
もしグラフが出てこなかったら・・
エラーログを見る
/var/log/munin /var/log/munin-node/
参考文献(2013年9月27日更新)
おわりに(2013年9月30日更新)
快適な Munin ライフをおすごしください!
MySQL も監視対象にしたい場合はこちらの記事をご覧ください:『Amazon RDS の MySQL を Munin で監視する - bekkou68の日記』