muninをインストール / PostgreSQLでActiveDirectory認証

投稿日: 2007年07月10月

muninをインストール

Redhat Linux Enterprise Linux 4にmuninをインストール。

まずはrrdtoolに必要なライブラリをインストール。

# up2date libart_lgpl-devel
# up2date libpng-devel
# up2date freetype-devel

rrdtool本体をインストール

# tar xvfz rrdtool-1.2.23.tar.gz
# cd rrdtool-1.2.23
# ./configure
# make
# make install

perl用のRRDモジュールとライブラリをインストール。RRDs.pmのコピー先は自身なし。

# ln -s /usr/local/rrdtool-1.2.23/lib/perl/5.8.5/i386-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/
# cp /usr/local/src/rrdtool-1.2.23/bindings/perl-shared/RRDs.pm \
     /usr/local/rrdtool-1.2.23/lib/perl/5.8.5/i386-linux-thread-multi/

mumin用ユーザとグループを作成。

# groupadd -g 4949 munin
# useradd -u 4949 -g munin -m -s/sbin/nologin munin

必要なperlモジュールをインストール。

# cpan install Time::HiRes
# cpan install HTML::Template
# cpan install Net::SNMP

muminクライアントをインストール。

# tar zxvf munin_1.2.5.tar.gz
# cd munin-1.2.5
# make install-main

muminノードをインストール。今回はクライアント/ノードが同一のマシン。

# cpan install Net::Server::Fork
# make install-node install-node-plugins
# /opt/munin/sbin/munin-node-configure --shell | sh
# cp dists/redhat/munin-node.rc /etc/init.d/munin-node
# echo '*/5 * * * * munin /opt/munin/bin/munin-cron 2>&1' > /etc/cron.d/munin

Apacheの設定。

/usr/local/apache2/conf/httpd.conf
---
ExtendedStatus On

<VirtualHost *:80>
    (...中略...)
    <Location /server-status>
        SetHandler server-status
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Location>

    Alias /munin/ "/opt/munin/var/www/"
    (...中略...)
</VirtualHost>
---

Apacheの設定を反映。

# /etc/init.d/apache restart

参考サイト

PostgreSQLでActiveDirectory認証

PostgreSQLでActiveDirectory認証するためのメモ。

技術的には8.2.0から対応しているLDAP認証を使った。ActiveDirectoryのパスワードを使ってPostgreSQLにアクセスできる。

PostgreSQLに–with-ldapオプションを付けて再コンパイルする。–with-pam/–with-krb5はAD認証だけなら必要ないが、後でPAMとKerberos認証も試したいのでも付けておく。

make distclean
./configure --with-pam --with-ldap --with-krb5
make
make install

pg_hba.confに下記のように記述。

host all all 192.168.1.0/24 ldap "ldap://ad.example.net/dc=example,dc=net"

接続ユーザは「hoge@example.net」のようになる。このユーザはPostgreSQLにも存在している必要があるため、登録しておく。

createuser hoge@example.net

あとはクライアントから接続する。Windows経由でODBC接続と、psqlコマンドを使ったリモート接続で確認。

PostgreSQLサーバを192.168.1.2と仮定すると下記のような感じで接続できる。

psql -h 192.168.1.2 -U hoge@example.net template0

あとがき

  • PAM経由でLDAP認証する方法もあるが失敗した。
  • どうせActiveDirectory使うならKerberos認証使えばSSO(シングルサインオン)みたいなことができると思う。

参考文書

名前:宮内 はじめ

Code for Nagoya名誉代表

E2D3名古屋支部長

プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。

プロフィール

お問い合わせ