仕事でサーバ管理をしていて10台ほどのサーバを管理しています。一応サーバ管理という仕事ですが1から独学で覚えたのでいろいろ大変です。超基本的な部分でいけばサーバが落ちていないかというのは監視しないといけません。apacheが動いているか、CPU使用率はどうか、ハードディスクの空き容量はどうか、バックアップはちゃんととれているかとその先の問題はたくさんあります。
それで超基本のサーバが落ちていないかという部分に関しては、正直なところ客先などから落ちていると連絡がないとほぼ分からない状態です。ウェブサーバや何かシステムがのっているサーバはその連絡でわかります。もちろん客先から連絡がなくても分かるのが理想ですが、1から勉強して覚えているので難しいです。あとは客先が顔を見て話せる相手が多くすぐに対応し謝ればなんとかなるという状況もあります。ただウェブ系やシステムのものはそれで気づくことができますが、バックアップ用サーバや普段あまりアクセスされないサーバは気づくことができません。ついでにできるなら客に関係する部分もお客に指摘される前に自分でサーバの異変に気付くのが理想です。
その方法として現状は1日1回送られているlogwatchの報告メールで確認しています。通常の設定であれば朝4時くらいにサーバの使用量だとかアクセスのことなどがメールで送られてきます。このメールが送られてきたらサーバは動いているという判断です。本来はメールの内容までちゃんと見るべきなのですが、たくさんのサーバがあると一々見ていられないところがあります。時々ちゃんと内容を確認したりします。
そして、少し前にサーバが落ちていました。この猛暑の熱暴走かもしれません。原因は調べたがよくわかりませんでした。これは仕方ないとして、ただサーバが落ちたことに気づけませんでした。logwatchのメールも10通近く毎日来るので1通くらい来なくなっても気づけない、つまり手動確認は限界があるということがわかりました。
それで前から少しは導入を検討していたサーバ監視ソフトウェアをインストールしようと思いました。前にも調べているのでZABBIXというソフトウェアにしようと思いました。
前置きが長くなってしまいましたが、今回のZABBIXのインストール時のエラーはyumによるパッケージの依存性が解決できなかったエラーです。これはphpやmysqlをrpmでインストールでインストールしていたので、yumでZABBIXをインストールした時にバージョンが合わず依存性が解決できませんでした。なのでZABBIXではなくても何らかのソフトウェアをyumでインストールしようとしたときに、プログラムやデータベースをrpmでインストールしていて依存性でエラーがでる場合に応用できるかと思います。
ZABBIX.JPの情報に基づいてインストール作業をしていきます。OSはCentOS5.8で、mysql、php関連はrpmでインストールされています。ZABBIXは1系の最新バージョンをインストールしようと思っています。後から2系がでていると知ってちょっとショックです。しかし、買って持っているZABBIXの書籍が1系だし、ネット上での情報も1系が多いと思うのでこれで進めていきます。
http://www.zabbix.jp/documents/installation/zabbix-jp-repository
http://www.zabbix.jp/documents/installation/install-rpm
作業に入っていきます。まずはyumで使うリポジトリを登録する。リポジトリというのは倉庫のようなもので、今回ZABBIXのリポジトリを登録することで、必要なデータをとりだせるようにする。
# rpm -ivh http://repo.zabbix.jp/relatedpkgs/rhel5/i386/zabbix-jp-release-5-6.noarch.rpm http://repo.zabbix.jp/relatedpkgs/rhel5/i386/zabbix-jp-release-5-6.noarch.rpm を取得中 警告: /var/tmp/rpm-xfer.FVpjM5: ヘッダ V3 DSA signature: NOKEY, key ID f32904ff 準備中... ########################################### [100%] 1:zabbix-jp-release ########################################### [100%]
現在使用しているリポジトリのバージョン確認。zabbix1.8らしい。切り替えることもできるみたいだけど、1系の最新安定版なので特に変更の必要はないと思う。
# alternatives --display zabbix-jp-release zabbix-jp-release -ステータスは自動です。 リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo を指しています。 /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10 /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 30 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 40 現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo です。
yumリポジトリのキャッシュを削除。キャッシュ削除の必要性はいまいち僕はちゃんと分かっていない。
# yum clean all Loaded plugins: fastestmirror Cleaning up Everything Cleaning up list of fastest mirrors
yumでインストールされるZABBIXのバージョンを確認する。選択したバージョン(たぶんzabbix1.8)が表示されれば成功。zabbix.jpのサイトではyum search zabbixになっていたけど、これではzabbix関連のインストールできるソフトの一覧は見れるがバージョンまで確認できなかった。なので個々にソフトウェアの情報を確認するコマンドを使ってバージョンを確認する。Version : 1.8.6となっているので1.8系なので問題ない。
# yum info zabbix Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.iij.ad.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Available Packages Name : zabbix Arch : i386 Version : 1.8.16 Release : 1.el5.JP Size : 14 k Repo : zabbix-jp Summary : Open-source monitoring solution for your IT infrastructure URL : http://www.zabbix.com/ License : GPL Description: ZABBIX is software that monitors numerous parameters of a : network and the health and integrity of servers. ZABBIX : uses a flexible notification mechanism that allows users : to configure e-mail based alerts for virtually any event. : This allows a fast reaction to server problems. ZABBIX : offers excellent reporting and data visualisation features : based on the stored data. This makes ZABBIX ideal for : capacity planning. : : ZABBIX supports both polling and trapping. All ZABBIX : reports and statistics, as well as configuration : parameters are accessed through a web-based front end. A : web-based front end ensures that the status of your network : and the health of your servers can be assessed from any : location. Properly configured, ZABBIX can play an important : role in monitoring IT infrastructure. This is equally true : for small organisations with a few servers and for large : companies with a multitude of servers.
ここまでリポジトリ登録などの下準備が終わり。改めてここからインストール作業。
# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.iij.ad.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package zabbix.i386 0:1.8.16-1.el5.JP set to be updated ---> Package zabbix-agent.i386 0:1.8.16-1.el5.JP set to be updated ---> Package zabbix-server.i386 0:1.8.16-1.el5.JP set to be updated --> Processing Dependency: libssh2 >= 1.0.0 for package: zabbix-server --> Processing Dependency: OpenIPMI-libs >= 2.0.14 for package: zabbix-server --> Processing Dependency: net-snmp for package: zabbix-server --> Processing Dependency: iksemel for package: zabbix-server --> Processing Dependency: unixODBC for package: zabbix-server --> Processing Dependency: fping for package: zabbix-server ---> Package zabbix-server-mysql.i386 0:1.8.16-1.el5.JP set to be updated --> Processing Dependency: libodbc.so.1 for package: zabbix-server-mysql ---> Package zabbix-web.i386 0:1.8.16-1.el5.JP set to be updated --> Processing Dependency: php-bcmath for package: zabbix-web ---> Package zabbix-web-mysql.i386 0:1.8.16-1.el5.JP set to be updated --> Running transaction check ---> Package OpenIPMI-libs.i386 0:2.0.16-16.el5 set to be updated ---> Package fping.i386 0:2.4b2-16.el5.JP set to be updated ---> Package iksemel.i386 0:1.4-2.el5 set to be updated ---> Package libssh2.i386 0:1.2.5-1.el5.JP set to be updated ---> Package net-snmp.i386 1:5.3.2.2-20.el5 set to be updated --> Processing Dependency: net-snmp-libs = 1:5.3.2.2-20.el5 for package: net-snmp --> Processing Dependency: libsensors.so.3 for package: net-snmp ---> Package php-bcmath.i386 0:5.1.6-40.el5_9 set to be updated --> Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath ---> Package unixODBC.i386 0:2.2.11-10.el5 set to be updated ---> Package unixODBC-libs.i386 0:2.2.11-10.el5 set to be updated --> Running transaction check ---> Package lm_sensors.i386 0:2.10.7-9.el5 set to be updated ---> Package net-snmp-libs.i386 1:5.3.2.2-20.el5 set to be updated ---> Package php-bcmath.i386 0:5.1.6-40.el5_9 set to be updated --> Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath --> Finished Dependency Resolution php-bcmath-5.1.6-40.el5_9.i386 from updates has depsolving problems --> Missing Dependency: php-common = 5.1.6-40.el5_9 is needed by package php-bcmath-5.1.6-40.el5_9.i386 (updates) Error: Missing Dependency: php-common = 5.1.6-40.el5_9 is needed by package php-bcmath-5.1.6-40.el5_9.i386 (updates) 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.
インストール失敗しました。一気にいろんなメッセージがでたので意味がわかりにくい。でも、ちゃんとちょっとずつ見ていけばわかる。yumというのはパッケージの依存関係を基本的に自動で解決してくれる。このパッケージをインストールするためには、このパッケージがないといけないというのが依存関係。それを順番に解決しようとしているの表示されている。で最終的にError: Missing Dependency: php-common = 5.1.6-40.el5_9 is needed by package php-bcmath-5.1.6-40.el5_9.i386 (updates)というのがエラーで、php-bcmathをインストールするためのphp-commonのパッケージがないというのが問題。
php-commonはrpmであらかじめインストールしてある。しかしバージョンが5.2.17になっていてrpmでインストールしているので、うまくyumと結びついていないのかも。php-bcmathをインストールできれば解決する。解決方法としては、php-commonのバージョンを5.1.6にしてyumにまかせる、rpmでphp-bcmathをインストールしてしまうかということになる。php-commonのバージョン合わせをするとなると、他のphp関連のバージョンも全部5.1.6に合わせないといけなくなるのでやめておく。php-bcmathをrpmでインストールすることにして、他のphp関連と同様に5.2.17で合わせる。まずはrpmパッケージをダウンロード。
# wget http://centos.alt.ru/repository/centos/5/i386/php-bcmath-5.2.17-29.el5.i386.rpm --2013-08-09 15:00:21-- http://centos.alt.ru/repository/centos/5/i386/php-bcmath-5.2.17-29.el5.i386.rpm centos.alt.ru をDNSに問いあわせています... 80.247.97.12 centos.alt.ru|80.247.97.12|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 34089 (33K) [application/x-redhat-package-manager] `php-bcmath-5.2.17-29.el5.i386.rpm' に保存中 100%[======================================>] 34,089 21.4K/s 時間 1.6s 2013-08-09 15:00:24 (21.4 KB/s) - `php-bcmath-5.2.17-29.el5.i386.rpm' へ保存完了 [34089/34089]
ダウンロードできたので、インストールしてみる。
# rpm -ivh php-bcmath-5.2.17-29.el5.i386.rpm 警告: php-bcmath-5.2.17-29.el5.i386.rpm: ヘッダ V3 DSA signature: NOKEY, key ID e9bc4ae1 エラー: 依存性の欠如: php-common = 5.2.17-29.el5 は php-bcmath-5.2.17-29.el5.i386 に必要とされています
依存関係で失敗した。php-bcmathは5.2.17系の最新で、php-bcmath-5.2.17-29.el5となっていた。しかしphp-commonは元々インストールしてあったのだけどバージョンが5.2.17-15.el5と少し低いのが依存性を解決できない原因らしい。php関連のすべてのrpmをアップデートするのはめんどくさいし、一応サーバで動いている他のシステムもあるので少しのアップデートとはいえバージョンを変更するのはあまりしたくない。そこでphp-commonのバージョンにあわせた古いものをインストールすることにした。
# wget http://77.120.56.11/repository/centos/5/i386/php-bcmath-5.2.17-15.el5.i386.rpm --2013-08-09 15:12:57-- http://77.120.56.11/repository/centos/5/i386/php-bcmath-5.2.17-15.el5.i386.rpm 77.120.56.11:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 33833 (33K) [application/x-redhat-package-manager] `php-bcmath-5.2.17-15.el5.i386.rpm' に保存中 100%[======================================>] 33,833 33.4K/s 時間 1.0s 2013-08-09 15:12:59 (33.4 KB/s) - `php-bcmath-5.2.17-15.el5.i386.rpm' へ保存完了 [33833/33833]
なんとか同じバージョンを見つけることができたのインストール。
# rpm -ivh php-bcmath-5.2.17-15.el5.i386.rpm 準備中... ########################################### [100%] 1:php-bcmath ########################################### [100%]
依存性の問題もなくなくインストールできた。
再度zabbixのインストールに挑戦。
# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.iij.ad.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package zabbix.i386 0:1.8.16-1.el5.JP set to be updated ---> Package zabbix-agent.i386 0:1.8.16-1.el5.JP set to be updated ---> Package zabbix-server.i386 0:1.8.16-1.el5.JP set to be updated --> Processing Dependency: libssh2 >= 1.0.0 for package: zabbix-server --> Processing Dependency: OpenIPMI-libs >= 2.0.14 for package: zabbix-server --> Processing Dependency: net-snmp for package: zabbix-server --> Processing Dependency: iksemel for package: zabbix-server --> Processing Dependency: unixODBC for package: zabbix-server --> Processing Dependency: fping for package: zabbix-server ---> Package zabbix-server-mysql.i386 0:1.8.16-1.el5.JP set to be updated --> Processing Dependency: libodbc.so.1 for package: zabbix-server-mysql ---> Package zabbix-web.i386 0:1.8.16-1.el5.JP set to be updated ---> Package zabbix-web-mysql.i386 0:1.8.16-1.el5.JP set to be updated --> Running transaction check ---> Package OpenIPMI-libs.i386 0:2.0.16-16.el5 set to be updated ---> Package fping.i386 0:2.4b2-16.el5.JP set to be updated ---> Package iksemel.i386 0:1.4-2.el5 set to be updated ---> Package libssh2.i386 0:1.2.5-1.el5.JP set to be updated ---> Package net-snmp.i386 1:5.3.2.2-20.el5 set to be updated --> Processing Dependency: net-snmp-libs = 1:5.3.2.2-20.el5 for package: net-snmp --> Processing Dependency: libsensors.so.3 for package: net-snmp ---> Package unixODBC.i386 0:2.2.11-10.el5 set to be updated ---> Package unixODBC-libs.i386 0:2.2.11-10.el5 set to be updated --> Running transaction check ---> Package lm_sensors.i386 0:2.10.7-9.el5 set to be updated ---> Package net-snmp-libs.i386 1:5.3.2.2-20.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: zabbix i386 1.8.16-1.el5.JP zabbix-jp 14 k zabbix-agent i386 1.8.16-1.el5.JP zabbix-jp 348 k zabbix-server i386 1.8.16-1.el5.JP zabbix-jp 425 k zabbix-server-mysql i386 1.8.16-1.el5.JP zabbix-jp 366 k zabbix-web i386 1.8.16-1.el5.JP zabbix-jp 4.8 M zabbix-web-mysql i386 1.8.16-1.el5.JP zabbix-jp 13 k Installing for dependencies: OpenIPMI-libs i386 2.0.16-16.el5 base 571 k fping i386 2.4b2-16.el5.JP zabbix-jp-relatedpkgs 32 k iksemel i386 1.4-2.el5 epel 48 k libssh2 i386 1.2.5-1.el5.JP zabbix-jp-relatedpkgs 79 k lm_sensors i386 2.10.7-9.el5 base 511 k net-snmp i386 1:5.3.2.2-20.el5 base 704 k unixODBC i386 2.2.11-10.el5 base 290 k unixODBC-libs i386 2.2.11-10.el5 base 551 k Updating for dependencies: net-snmp-libs i386 1:5.3.2.2-20.el5 base 1.3 M Transaction Summary ================================================================================ Install 14 Package(s) Upgrade 1 Package(s) Total download size: 9.9 M Is this ok [y/N]: y Downloading Packages: (1/15): zabbix-web-mysql-1.8.16-1.el5.JP.i386.rpm | 13 kB 00:00 (2/15): zabbix-1.8.16-1.el5.JP.i386.rpm | 14 kB 00:00 (3/15): fping-2.4b2-16.el5.JP.i386.rpm | 32 kB 00:00 (4/15): iksemel-1.4-2.el5.i386.rpm | 48 kB 00:00 (5/15): libssh2-1.2.5-1.el5.JP.i386.rpm | 79 kB 00:00 (6/15): unixODBC-2.2.11-10.el5.i386.rpm | 290 kB 00:00 (7/15): zabbix-agent-1.8.16-1.el5.JP.i386.rpm | 348 kB 00:00 (8/15): zabbix-server-mysql-1.8.16-1.el5.JP.i386.rpm | 366 kB 00:00 (9/15): zabbix-server-1.8.16-1.el5.JP.i386.rpm | 425 kB 00:00 (10/15): lm_sensors-2.10.7-9.el5.i386.rpm | 511 kB 00:00 (11/15): unixODBC-libs-2.2.11-10.el5.i386.rpm | 551 kB 00:00 (12/15): OpenIPMI-libs-2.0.16-16.el5.i386.rpm | 571 kB 00:00 (13/15): net-snmp-5.3.2.2-20.el5.i386.rpm | 704 kB 00:00 (14/15): net-snmp-libs-5.3.2.2-20.el5.i386.rpm | 1.3 MB 00:00 (15/15): zabbix-web-1.8.16-1.el5.JP.i386.rpm | 4.8 MB 00:01 -------------------------------------------------------------------------------- Total 2.4 MB/s | 9.9 MB 00:04 警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID f32904ff zabbix-jp-relatedpkgs/gpgkey | 1.7 kB 00:00 Importing GPG key 0xF32904FF "ZABBIX-JP (Japanese ZABBIX Support Site) <webmaster@zabbix.jp>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP Is this ok [y/N]: y warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6 epel/gpgkey | 1.7 kB 00:00 Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL Is this ok [y/N]: y Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : net-snmp-libs 1/16 Installing : OpenIPMI-libs 2/16 Installing : iksemel 3/16 Installing : unixODBC-libs 4/16 Installing : libssh2 5/16 Installing : unixODBC 6/16 Installing : fping 7/16 Installing : lm_sensors 8/16 Installing : zabbix 9/16 Installing : net-snmp 10/16 Installing : zabbix-agent 11/16 Installing : zabbix-server 12/16 Installing : zabbix-web 13/16 Installing : zabbix-web-mysql 14/16 Installing : zabbix-server-mysql 15/16 Cleanup : net-snmp-libs 16/16 Installed: zabbix.i386 0:1.8.16-1.el5.JP zabbix-agent.i386 0:1.8.16-1.el5.JP zabbix-server.i386 0:1.8.16-1.el5.JP zabbix-server-mysql.i386 0:1.8.16-1.el5.JP zabbix-web.i386 0:1.8.16-1.el5.JP zabbix-web-mysql.i386 0:1.8.16-1.el5.JP Dependency Installed: OpenIPMI-libs.i386 0:2.0.16-16.el5 fping.i386 0:2.4b2-16.el5.JP iksemel.i386 0:1.4-2.el5 libssh2.i386 0:1.2.5-1.el5.JP lm_sensors.i386 0:2.10.7-9.el5 net-snmp.i386 1:5.3.2.2-20.el5 unixODBC.i386 0:2.2.11-10.el5 unixODBC-libs.i386 0:2.2.11-10.el5 Dependency Updated: net-snmp-libs.i386 1:5.3.2.2-20.el5 Complete!
インストール成功。けっこういろいろやってようやく成功したのだけど、成功すると特にコメントないなぁ。マニュアル通りにやってうまくいったら考える必要のでてくる部分もないからなぁ。
参考サイト1。同じようにパッケージ関連で問題起こしたみたい。サポート側がかなりしっかりやってくれてます。
http://www.zabbix.jp/node/1027
参考サイト2.phpをremiでインストールしていた場合の対処法ではあるが、状況が近いように思う。
http://www.polidog.jp/2013/02/20/centos5-9%E3%81%ABzabbix%E3%82%92%E3%81%84%E3%82%8C%E3%82%8Bremi%E4%BD%BF%E3%81%A3%E3%81%A6php%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%9F%E5%A0%B4%E5%90%88/