1年前あたりから書き始め、1秒間のリクエスト数がそこそこになったWebサービスがある。

今までは使用者が身内で二人だったので特に気にしていなかったのですが、

そろそろ利用者も増えてきそうな兆しが見えてきたので、

増える前にサーバの監視を行うことにした。


サーバの監視をするためにMuninを採用することにした。

Muninをインストールした時のメモとして記事を投稿する。


サーバの環境はUbuntu 16.04です。




インストール前にMuninの簡単な説明を書いておく。



監視対象のサーバに定期的にリクエストを送信し、

監視対象のサーバから返ってきたレスポンスを元に、



こんな感じのグラフを作成したり、

監視対象のサーバに異常があった場合はアラートのメールを送信出来たりする。

http://munin-monitoring.org/




Ubuntu 16.04にさっそくインストールしてみる。

※emacsはすでに入っているものとします


#sysv-rc-confのインストール。sysv-rc-confはサーバ起動時に立ち上げるアプリを指定する
sudo apt-get install sysv-rc-conf

#apacheのインストール
sudo apt-get install apache2

#OSの再起動時にapache2を自動起動
sudo sysv-rc-conf apache2 on

#muninのインストール
sudo apt-get install munin munin-node

muninはApache上で動作するので、Muninよりも前にApacheをインストールしておきます。

Muninのインストール時にmuninとmunin-nodeをインストールしているが、

munin-nodeで収集したデータをmuninで表示するため、

監視用のサーバ自体の監視が必要なければ、munin-nodeをインストールする必要はありません。


muninはインストールすればすぐに動くということで、ブラウザで確認してみる。

※muninの画面はhttp://ドメイン/muninになります。



あれ?

アクセスが禁止されている。


どうやらサーバにMuninを設置する場合はApache側でアクセス制限を外さなければならないらしい。

というわけでアクセス制限を外す設定をしてみる。


sudo emacs /etc/apache2/conf-enabled/munin.conf

munin.confを開き、下記のように変更

Require local → Require all granted

ファイルの変更後、

sudo /etc/init.d/apache2 restart

でApacheの再起動を行い、改めてブラウザを開いてみると、



無事に開けた!

しばらくすると上記の画像の様に収集結果も表示される。




現時点では、Apache側ですべてのアクセスを許可しているので、

Basic認証をつけて対応してみる。


sudo emacs /etc/apache2/conf-enabled/munin.conf

再び、Apache側にあるMuninの設定ファイルを開き、下記のように修正する。


Require all granted
Options Noneを

AllowOverride All
AuthUserfile /var/cache/munin/www/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user
に変更

AuthUserfileで指定したディレクトリにBasic認証のパスワード用のファイルを準備して、


sudo /etc/init.d/apache2 restart

Apache2を再起動して、改めてMuninのページを表示してみる。





最後に念の為にファイアーウォールも設定をしておく。


sudo ufw default deny

#Apacheでサイトを開いているので念の為
sudo ufw allow 80
sudo ufw allow 443

#munin-node用のポート
sudo ufw allow 4949

sudo ufw enable

#ファイアウォールの設定に間違いないか確認
sudo ufw status

これで終了。


次回は監視対象のサーバの設定方法について

-続く-