ネットで調べたところサーバのリソース管理は、今は、「Munin」という便利なのがある、ということで、早速仮想環境で
確認したところ、なかなかいい感じです。
以前、20台以上の Linux 機を、net-snmp と MRTG で苦労して構築した環境が、ものの数分でできてしまう。いや、い
い時代になりました。デフォルトの設定では、「こんなの見るかな?」と思えるグラフもあるのですが、削除や追加は簡
単にできるし、いろいろとやれそうです。
仮想環境でいい感じなので本番に入れようとしたら、はまりました。
本番のサーバーは、CentOS 5.7 (古い!)。
CentOSなので、yum で epel から簡単に入ると思っていたのですが、ダメみたいです。
メッセージは、こんなの。
# yum --enablerepo epel install munin Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * epel: ftp.jaist.ac.jp * extras: ftp.nara.wide.ad.jp * updates: ftp.nara.wide.ad.jp epel | 3.6 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package munin.noarch 0:2.0.25-11.el5 set to be updated --> Processing Dependency: sysstat for package: munin --> Processing Dependency: perl(Taint::Runtime) for package: munin --> Processing Dependency: perl(RRDs) for package: munin --> Processing Dependency: perl(Params::Validate) for package: munin --> Processing Dependency: perl(Net::Server::Fork) for package: munin --> Processing Dependency: perl(Net::Server) for package: munin --> Processing Dependency: perl(Net::SSLeay) for package: munin --> Processing Dependency: perl(Net::SNMP) for package: munin --> Processing Dependency: perl(Net::CIDR) for package: munin --> Processing Dependency: perl(Munin::Node::ProxySpooler) for package: munin --> Processing Dependency: perl(Munin::Node::Config) for package: munin --> Processing Dependency: perl(Munin::Common::Timeout) for package: munin --> Processing Dependency: perl(Munin::Common::TLSClient) for package: munin --> Processing Dependency: perl(Munin::Common::Defaults) for package: munin --> Processing Dependency: perl(Munin::Common::Config) for package: munin --> Processing Dependency: perl(Log::Log4perl) for package: munin --> Processing Dependency: perl(IO::Socket::INET6) for package: munin --> Processing Dependency: perl(HTML::Template) for package: munin --> Processing Dependency: perl(File::Copy::Recursive) for package: munin --> Processing Dependency: perl(FCGI) for package: munin --> Processing Dependency: perl(Digest::SHA1) for package: munin --> Processing Dependency: perl(Digest::HMAC) for package: munin --> Processing Dependency: perl(DateTime) for package: munin --> Processing Dependency: perl(Date::Manip) for package: munin --> Processing Dependency: perl(Crypt::DES) for package: munin --> Processing Dependency: perl(Carp::Always) for package: munin --> Processing Dependency: perl(Cache::Memcached) for package: munin --> Processing Dependency: perl(Cache::Cache) for package: munin --> Running transaction check ---> Package fcgi-perl.x86_64 0:2.4.0-13.el5 set to be updated --> Processing Dependency: fcgi = 2.4.0-13.el5 for package: fcgi-perl ---> Package munin-common.noarch 0:2.0.25-11.el5 set to be updated ---> Package munin-node.noarch 0:2.0.25-11.el5 set to be updated --> Processing Dependency: perl(XML::Parser) for package: munin-node --> Processing Dependency: perl(XML::LibXML) for package: munin-node --> Processing Dependency: perl(Net::DNS) for package: munin-node --> Processing Dependency: perl(List::MoreUtils) for package: munin-node --> Processing Dependency: perl(DBD::Pg) for package: munin-node ---> Package perl-Cache-Cache.noarch 0:1.05-1.el5 set to be updated --> Processing Dependency: perl(IPC::ShareLite) for package: perl-Cache-Cache --> Processing Dependency: perl(Error) for package: perl-Cache-Cache ---> Package perl-Cache-Memcached.noarch 0:1.26-3.el5 set to be updated ---> Package perl-Carp-Always.noarch 0:0.09-2.el5 set to be updated ---> Package perl-Crypt-DES.x86_64 0:2.05-3.el5 set to be updated ---> Package perl-DateManip.noarch 0:5.44-1.2.1 set to be updated ---> Package perl-DateTime.x86_64 1:0.41-1.el5 set to be updated --> Processing Dependency: perl(Class::Singleton) >= 1.03 for package: perl-DateTime --> Processing Dependency: perl(Class::Singleton) for package: perl-DateTime ---> Package perl-Digest-HMAC.noarch 0:1.01-15 set to be updated ---> Package perl-Digest-SHA1.x86_64 0:2.11-1.2.1 set to be updated ---> Package perl-File-Copy-Recursive.noarch 0:0.35-1.el5 set to be updated ---> Package perl-HTML-Template.noarch 0:2.9-1.el5.2 set to be updated ---> Package perl-IO-Socket-INET6.noarch 0:2.51-2.fc6 set to be updated --> Processing Dependency: perl(Socket6) for package: perl-IO-Socket-INET6 ---> Package perl-Log-Log4perl.noarch 0:1.13-2.el5 set to be updated --> Processing Dependency: perl(Log::Dispatch::FileRotate) >= 1.10 for package: perl-Log-Log4perl --> Processing Dependency: perl(XML::DOM) for package: perl-Log-Log4perl --> Processing Dependency: perl(Log::Dispatch::Syslog) for package: perl-Log-Log4perl --> Processing Dependency: perl(Log::Dispatch::Screen) for package: perl-Log-Log4perl --> Processing Dependency: perl(Log::Dispatch::File) for package: perl-Log-Log4perl --> Processing Dependency: perl(IPC::Shareable) for package: perl-Log-Log4perl ---> Package perl-Net-CIDR.noarch 0:0.13-2.el5 set to be updated ---> Package perl-Net-SNMP.noarch 0:5.2.0-1.el5.1 set to be updated ---> Package perl-Net-SSLeay.x86_64 0:1.30-4.fc6 set to be updated ---> Package perl-Net-Server.noarch 0:0.96-2.el5 set to be updated --> Processing Dependency: perl(IO::Multiplex) for package: perl-Net-Server ---> Package perl-Params-Validate.x86_64 0:0.88-3.el5 set to be updated ---> Package perl-Taint-Runtime.x86_64 0:0.03-1.el5.1 set to be updated ---> Package rrdtool-perl.x86_64 0:1.2.27-4.el5 set to be updated --> Processing Dependency: rrdtool = 1.2.27-4.el5 for package: rrdtool-perl --> Processing Dependency: librrd.so.2()(64bit) for package: rrdtool-perl ---> Package sysstat.x86_64 0:7.0.2-13.el5 set to be updated --> Running transaction check ---> Package fcgi.x86_64 0:2.4.0-13.el5 set to be updated ---> Package perl-Class-Singleton.noarch 0:1.03-3.el5 set to be updated ---> Package perl-DBD-Pg.x86_64 0:1.49-4.el5_8 set to be updated ---> Package perl-Error.noarch 1:0.17010-1.el5 set to be updated ---> Package perl-IO-Multiplex.noarch 0:1.08-5.el5 set to be updated ---> Package perl-IPC-ShareLite.x86_64 0:0.13-4.el5 set to be updated ---> Package perl-List-MoreUtils.x86_64 0:0.33-5.el5 set to be updated ---> Package perl-Log-Dispatch.noarch 0:2.20-1.el5 set to be updated --> Processing Dependency: perl(Mail::Sendmail) for package: perl-Log-Dispatch --> Processing Dependency: perl(Mail::Sender) for package: perl-Log-Dispatch --> Processing Dependency: perl(Mail::Send) for package: perl-Log-Dispatch --> Processing Dependency: perl(MIME::Lite) for package: perl-Log-Dispatch ---> Package perl-Log-Dispatch-FileRotate.noarch 0:1.16-1.el5 set to be updated ---> Package perl-Log-Log4perl.noarch 0:1.13-2.el5 set to be updated --> Processing Dependency: perl(IPC::Shareable) for package: perl-Log-Log4perl ---> Package perl-Net-DNS.x86_64 0:0.59-3.el5 set to be updated --> Processing Dependency: perl(Net::IP) for package: perl-Net-DNS ---> Package perl-Socket6.x86_64 0:0.19-3.fc6 set to be updated ---> Package perl-XML-DOM.noarch 0:1.44-2.el5 set to be updated --> Processing Dependency: perl(XML::RegExp) for package: perl-XML-DOM ---> Package perl-XML-LibXML.x86_64 0:1.58-6 set to be updated --> Processing Dependency: perl-XML-NamespaceSupport for package: perl-XML-LibXML --> Processing Dependency: perl-XML-LibXML-Common for package: perl-XML-LibXML --> Processing Dependency: perl(XML::SAX::Exception) for package: perl-XML-LibXML --> Processing Dependency: perl(XML::LibXML::Common) for package: perl-XML-LibXML --> Processing Dependency: perl-XML-SAX for package: perl-XML-LibXML --> Processing Dependency: perl(XML::SAX::DocumentLocator) for package: perl-XML-LibXML --> Processing Dependency: perl(XML::SAX::Base) for package: perl-XML-LibXML --> Processing Dependency: perl(XML::NamespaceSupport) for package: perl-XML-LibXML ---> Package perl-XML-Parser.x86_64 0:2.34-6.1.2.2.1 set to be updated ---> Package rrdtool.x86_64 0:1.2.27-4.el5 set to be updated --> Running transaction check ---> Package perl-Log-Log4perl.noarch 0:1.13-2.el5 set to be updated --> Processing Dependency: perl(IPC::Shareable) for package: perl-Log-Log4perl ---> Package perl-MIME-Lite.noarch 0:3.01-5.el5 set to be updated ---> Package perl-Mail-Sender.noarch 0:0.8.13-2.el5.1 set to be updated ---> Package perl-Mail-Sendmail.noarch 0:0.79-9.el5.1 set to be updated ---> Package perl-MailTools.noarch 0:1.77-1.el5.centos set to be updated --> Processing Dependency: perl(Date::Format) for package: perl-MailTools --> Processing Dependency: perl(Date::Parse) for package: perl-MailTools ---> Package perl-Net-IP.noarch 0:1.25-2.fc6 set to be updated ---> Package perl-XML-LibXML-Common.x86_64 0:0.13-8.2.2 set to be updated ---> Package perl-XML-NamespaceSupport.noarch 0:1.09-1.2.1 set to be updated ---> Package perl-XML-RegExp.noarch 0:0.03-2.el5 set to be updated ---> Package perl-XML-SAX.noarch 0:0.14-13.el5 set to be updated --> Running transaction check ---> Package perl-Log-Log4perl.noarch 0:1.13-2.el5 set to be updated --> Processing Dependency: perl(IPC::Shareable) for package: perl-Log-Log4perl ---> Package perl-TimeDate.noarch 1:1.16-5.el5 set to be updated --> Finished Dependency Resolution perl-Log-Log4perl-1.13-2.el5.noarch from epel has depsolving problems --> Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel) Error: Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest The program package-cleanup is found in the yum-utils package. # #
エラーが出ている、
perl-Log-Log4perl-1.13-2.el5.noarch
ですが、どうやってもインストールできませんでした。
やってみのは、次のとおり。
(1) yum で perl-Log-Log4perl-1.13-2.el5.noarch をインストールしようとしたがダメ。
(2) yum の設定で、epel は、国内のミラーを参照しているのですが、このミラー4つを直接指定してみたのですが、それ
ぞれ全てでエラーでした。
(3) じゃ、ということで perl-Log-Log4perl-1.13-2.el5.noarch.rpm をダウンロードして、rpm コマンドで入れてみよう
としたのですが、これもダメ。
もしかして、perl の全パッケージをインストールする必要があるのかな。
# rpm -ivh perl-Log-Log4perl-1.13-2.el5.noarch.rpm error: Failed dependencies: perl(IPC::Shareable) is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(Log::Dispatch::File) is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(Log::Dispatch::FileRotate) >= 1.10 is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(Log::Dispatch::Screen) is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(Log::Dispatch::Syslog) is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(RRDs) is needed by perl-Log-Log4perl-1.13-2.el5.noarch perl(XML::DOM) is needed by perl-Log-Log4perl-1.13-2.el5.noarch
yum は、パッケージの依存関係をチェックして必要なパッケージもいっしょにインストールするはず。
実際、仮想に入れたCentOS 6.7 では、すべてのパッケージが1つのコマンドでインストールされました。
ですが、CentOS 5.7 に入っている yum は、これがダメなのかもしれません。
ということで、チェックしたら、
# yum list yum Loaded plugins: fastestmirror base | 1.1 kB 00:00 extras | 2.1 kB 00:00 updates | 1.9 kB 00:00 Installed Packages yum.noarch 3.2.22-37.el5.centos installed Available Packages yum.noarch 3.2.22-40.el5.centos base #
古いじゃん。ということで、yum でアップデートしてから実行したのですが、やはり同じ。
yum コマンドだけの問題ではないようです。
じゃ、ということでそれぞれ個別に入れていきます。
# yum --enablerepo epel install perl-IPC-ShareLite.x86_64 ... # yum --enablerepo epel install perl-IPC-Cmd.noarch ... # yum --enablerepo epel install perl-Log-Dispatch.noarch ... # yum --enablerepo epel install rrdtool-perl ... # yum --enablerepo epel install perl-XML-DOM ... # yum --enablerepo epel install perl-Log-Log4perl ... perl-Log-Log4perl-1.13-2.el5.noarch from epel has depsolving problems --> Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel) Error: Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest
やっぱりこれは、perl のバグなのか?
念のため、perl のパッケージもアップしてみます。
# perl --version This is perl, v5.8.8 built for x86_64-linux-thread-multi # yum list perl Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.nara.wide.ad.jp * extras: ftp.nara.wide.ad.jp * updates: ftp.nara.wide.ad.jp Installed Packages perl.x86_64 4:5.8.8-32.el5_7.6 installed Available Packages perl.i386 4:5.8.8-43.el5_11 updates perl.x86_64 4:5.8.8-43.el5_11 updates # yum update perl ...
無事、バージョンアップ完了。とはいえ、perl 自体のバージョンは、v5.8.8 で変わらず。
やはり、
--> Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel) Error: Missing Dependency: perl(IPC::Shareable) is needed by package perl-Log-Log4perl-1.13-2.el5.noarch (epel)
というエラーが発生します。
じゃ、ということで、ネットで検索したら見つかった IPC-Shareable の CentOS5 用のパッケージを入れてみる。
http://pkgs.repoforge.org/perl-IPC-Shareable/ rpm -ivh perl-IPC-Shareable-0.60-1.2.el5.rf.noarch.rpm
これを入れたら、yum –enablerepo epel install perl-Log-Log4perl が成功しました。
さらに、yum –enablerepo epel install munin もうまくいきました。
munin は、デフォルトでパスワードを聞いてくるのですが、認証なしで入れるようにしておきます。
/etc/httpd/conf.d の下にある munin.conf の認証関係をコメントします。
また、URLを「 http://localhost/munin/」で参照できるように、次の行を追加しました。
Alias /munin /var/www/html/munin
まあ、なんとかインストールはできた。
しかし、いろいろやりながらとはいえ、朝から初めてインストールが終わったのは夕方、というのはちょっと。
この CentOS 5.7 は、早く新しいのにリプレースしてほしい、と改めて思う。