コードを舐める日々

わからないことがわからないことをしる日々

nginx で サーバ監視ツール、munin を動かす

最近ホットなサーバ監視ツール、munin。

詳しいスライドはこちらが分かりやすい。

私が管理しているサーバにも導入してみました。

実際には Apache + munin の導入事例が多いですね。

しかし、私の場合は nginx + munin だが、ちょっと少ないので、忘備録として記録したいと思います。

まず、munin を入れよう

(ここではドメインを「www.domain.com」を前提にします)

yum で EPEL 指定でインストール。

# yum --enablerepo=epel -y install munin munin-node

munin.conf を変更します。

# vi /etc/munin/munin.conf

99行あたりに下記の内容を追加します。

[www.domain.com]
    address 127.0.0.1
    user_node_name yes

# vi /etc/munin/munin-node.conf

29行目にある hostname を変更します。

host_name www.domain.com

次に、nginx の conf 設定をしよう

munin-node ファイルの最後に nginx で動かすための設定をします。

# vi /etc/munin/plugin-conf.d/munin-node

[nginx*]
env.url http://localhost/nginx_status

www.domain.com へのサーバ監視を munin.domain.com でチェックできるように、nginx の virtual.conf ファイルを編集します。

htpasswd ファイルを設置することで、ログインしてアクセスするようにしておきます。

# vi /etc/nginx/conf.d/virtual.conf

server {
  listen 80;
  server_name localhost;

  location /nginx_status {
    stub_status on;
    access_log  off;
    allow 127.0.0.1;
    deny  all;
  }
}

server {
  listen 80;
  server_name munin.domain.com;

  access_log /var/log/nginx/munin.domain.access.log main;
  error_log /var/log/nginx/munin.domain.error.log;
  root /var/www/html/munin;
  index index.html;

  location / {
    auth_basic "Restricted";
    auth_basic_user_file /var/www/html/munin/.htpasswd;
  }
}

htpasswd ファイルをつくろう

下記の [username] をログインユーザー、[passwd] をパスワードに置き換えてコマンドを実施します。

# htpasswd -cd .htpasswd [username] [passwd]

そうすると、コマンドを実施した場所に、「.htpasswd」が生成されます。

その「.htpasswd」は「/var/www/html/munin/」へ置きます。

最後に munin を起動、nginx を再起動しよう

全ての設定を有効するために起動します。

# /etc/init.d/munin-node restart

# /etc/init.d/nginx restart

5分くらいたてば、「munin.domain.com」へアクセスできるようになります。