読者です 読者をやめる 読者になる 読者になる

ピティナ開発者ブログ

全日本ピアノ指導者協会のIT担当者が気まぐれにつづる技術系中心のブログです


Ubuntu14.04 + nginx + VirtualHostでベーシック認証かけつつmunin監視

muninネタは何番煎じだよ、っていうくらい記事が溢れていますが、案外、
Ubuntu + nginx + VirtualHostでベーシック認証かけつつ、という組み合わせは
少なそうに見えましたもので。

前提としては、

  • Ubuntu + nginxで既にサーバが動いている状態
  • 「muninサーバ」と「muninで監視したいサーバ」とを分けたくない、一つだけで動かしたい
  • サブドメインの追加は可能

という状況になります。

まずは、apt-getでmuninとmunin-nodeをインストールします。

apt-get install munin munin-node

必要に応じて、munin-plugins-extraもどうぞ。

インストール完了したら、 /etc/munin/ ができているので、それ直下のものを弄っていきます。

が、その前に、muninを閲覧するためのindexファイルをどこに置くか決めておきましょう。
/var/www/ など公開ディレクトリ以下に置くのがよいのではないかなと思います。
ここでは仮に /var/www/munin/ にしておきますので、所有者をmuninにしておいてください。

chown munin.munin /var/www/munin

さて、設定ですが、まずapache.conf については放置でOK。

munin.conf は、上の方にある htmldir のコメントアウトをはずした上で、公開ディレクトリ
を指定してあげます。

htmldir /var/www/munin

また、100行目あたりに、以下を追加。

[hoge.domain]
    address xxx.xxx.xxx.xxx
    use_node_name yes

hoge.domain の中身を、今回、VirtualHostで指定したいサブドメにしてください。
その上のあたりの行にlocaldomainについて記述がありますが、こちら消すか残すかは任意で。
munin-node.conf には、以下を追加。

host_name hoge.domain

hoge.domain の中身を(略
そのちょっと下の行にある allow のあたりは、必要に応じてアクセス元のIPアドレスを追加で。

さらに、/etc/munin/plugin-conf.d/munin-node には、末尾に以下を付け加えてあげてください。

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

muninまわりの設定は以上です。

続けて、nginxの設定に入りますが、nginxの方は、人によって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 hoge.domain;

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

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

この設定を、各自のよろしいところに記述してください。
ログの保存先などもご随意に。

さて、上記の終わりのあたりでベーシック認証をかける設定を入れました。
これ、apache関連のプログラムでして、nginxで動かしているサーバには、インストール
されていないことが大半だと思いますので、例のごとく、apt-getで入れてください。

apt-get install apache2-utils

これで入ります。
そうしたら、 /var/www/munin 直下に .htpasswd を生成してあげます。

cd /var/www/munin  
htpasswd -c .htpasswd hogeuser

passwordは? と2度尋ねられるので、2度入力。
するとファイルが生成されます。

そうしたらあとは、munin-node再起動、nginx再起動してください。
hoge.domain へアクセスすると、ベーシック認証が効いていて、ユーザ・パスを入力して
通れば、muninが5分に一度の自動生成をしてくれている管理画面へ入れます。

(著: Hiroyuki Noguchi)
この記事は現在0人が閲覧中