Scientific Linux 6.1 に Zabbix 1.8.10 をインストール

自宅の統合監視ツールをHobbit (現Xymon) からZabbixに変更した。Xymonは手軽に導入できるのは良いのだけど、独自の監視項目を加えようとしたりちょっとカスタマイズしようと思うとデバッグ機能が弱かったりしてすごく面倒なので、柔軟性のあるZabbixに乗り換えることにした。オープンソースの統合監視というとNagiosが有名だけど、そのままでは履歴やグラフ機能が弱いのと、設定がかなり面倒なので採用しなかった。統合監視ツールの比較は ThinkIT: オープンソース統合監視ツール導入指南 が参考になるだろう。

以下は Scientific Linux (SL) 6.1 にインストールする方法だが、Red Hat Enterprise Linux (RHEL) / CentOS / Oracle Linux でも同様だろう。ZabbixのRPMはZabbix純正 / ZABBIX-JP製 / EPEL製などがあるが、Yumリポジトリがあって国内での利用者が多いZABBIX-JP製を利用することにした。データベースには MySQL Community Edition を使用する。MySQLをインストールしていない場合は 複眼中心: Scientific Linux 6.1 に MySQL 5.1.52 をインストール を参照してほしい。

Zabbixは大きく分けると3つのコンポーネントで構成される。Zabbixサーバーは本体と言えるもので、各種監視結果を管理し、データベースに保存する。Zabbix Web インターフェースはデータベースに保存された情報をWebに表示する。Zabbixエージェントはインストールされたクライアント・マシンのリソース情報などを取得し、Zabbixサーバーに送信する。これら3つのコンポーネントとデータベースはそれぞれ別々のマシンにインストールすることも可能だが、このエントリーでは1台のマシンにすべてインストールしている。

まずはZABBIX-JPのYumリポジトリを追加する。最新のzabbix-jp-releaseのバージョンは http://www.zabbix.jp/binaries/relatedpkgs/ から確認してほしい。

yum-priorities用の設定も追加した。EPELにもZabbixのパッケージがあるので、EPELも使っているのであればそれより優先される小さなpriority値にしておくのが良いだろう。

Zabbixサーバーのインストール

MySQL対応のZabbixサーバーをインストールする。

MySQLにzabbixデーターベースとzabbixユーザーを作成する。今回の環境ではMySQLとZabbixサーバーが同じマシンなので、localhostから接続するzabbixユーザーのみに権限を与えている。

Zabbixの初期データをMySQLに読み込む。

データベースの設定をZabbixサーバーの設定ファイルに反映させる。

OS起動時にZabbixサーバーが自動起動するようにして、Zabbixサーバーを起動する。

Webインターフェースのインストール

MySQL対応のWebインターフェースをインストールする。

そのままでも動作するが、サーバーのメモリーに余裕があればPHPの設定値をZabbix推奨値に変更しよう。

OS起動時に Apache HTTP Server が自動起動するようにして、Apache HTTP Server を起動する。

Webブザウラーから http://hostname/zabbix/ にアクセスすると、Introductionページが表示される。

Zabbix Setup: Introduction

License agreement を読み、承諾なら I agree をチェックし、ボタン「Next」を押す。

Zabbix Setup: License agreement

Check of pre-requisites で、すべての Current value がRequired以上でOkが表示されていることを確認する。上記で /etc/httpd.conf/zabbix.conf を変更している場合はRecommend以上になっているはずだ。

Zabbix Setup: Check of pre-requirements

Configure DB connection で、Userをzabbix、Passwordをpasswordに変更し、ボタン「Test connection」を押す。Okが出たらボタン「Next」を押す。

Zabbix Setup: Configure DB connection

ZabbixサーバーとWebインターフェースは同じマシンなので、5. Zabbix server detail では特に設定変更する必要はない。そのままボタン「Next」を押す。

Zabbix Setup: Zabbix server details

Pre-Installation summary で設定を確認し、ボタン「Next」を押す。

Zabbix Setup: Pre-Installation summary

SELinuxが有効だと /usr/share/zabbix/conf/zabbix.conf.php はapacheユーザーから書き込めないので、ボタン「Save configuration file」を押して構成ファイルをダウンロードし、それを /etc/zabbix/zabbix.conf.php に写す。

Zabbix Setup: Install

写しおえたらボタン「Retry」を押す。Okが出たらボタン「Next」を押す。

Zabbix Setup: Install

Finish で初期設定は終わり。ボタン「Finish」を押すと、Zabbixのログイン画面が表示される。

Zabbix Setup: Finish

なお、/etc/zabbix/zabbix.conf.php の所有者がapacheになっているので、不正な書き込みが行われないようにrootに変更しておこう。

Zabbixエージェントのインストール

Zebbixエージェントをインストールする。

設定ファイルを編集する。今回はZabbixエージェントとZabbixサーバーが同じなのでServer値は変更しないが、異なる場合はこれを変更する。127.0.0.1ままの場合、サーバー側で設定するクライアントのIPアドレスも127.0.0.1にする必要があることとは注意しよう。Hostnameはエージェントをインストールしたマシンのホスト名か分かりやすい一意の名前にしておく。ListenIPはなにも設定しなければすべてのIPアドレスで待ち受ける。

OS起動時にZabbixエージェントが自動起動するようにして、 Zabbixエージェントを起動する。

動作確認

http://hostname/zabbix/ に、アカウント名「Admin」、パスワード「zabbix」でログインする。

Zabbix ログイン

Zabbixサーバーが起動しているのに、メニュー「監視データ > ダッシュボード」のダイアログ「Zabbixサーバの状態」の「Zabbixサーバの起動」が「いいえ」になっている場合はSELinuxがブロックしている可能性がある。httpd_can_network_connectを有効にしよう。

同様に、SELinuxが有効な環境ではfpingとfping6がブロックされてしまうので、以下のようなTEファイルを用意してポリシーを変更した。独自のTEファイルを作成する場合は 複眼中心: Scientific Linux 6 でのSELinux管理コマンドまとめ を参照してほしい。

tracerouteのパスが異なるので、メニュー「管理 > スクリプト」から、Tracerouteのコマンドを /usr/bin/traceroute {HOST.CONN} から /bin/traceroute {HOST.CONN} に変更する。

Zabbixサーバー自身を監視する設定はすでに行われているものの無効になっているので、メニュー「設定 > ホスト」から名前「Zabbix server」のステータス「無効」を押すことで有効にする。少ししてからWebブラウザーを再読み込みすると、エージェントの状態のZアイコンが緑になるはずだ。赤であれば、それをマウス・オーバーすると原因が表示される。

メニュー「監視データ & 最新データ」を見ると、いろいろなリソース情報が表示できるはずだ。ひととおり動くことを確認したら、Adminユーザーのパスワードを変更しておこう。右上のリンク「プロファイル」を押した画面のボタン「パスワード変更」でパスワードを変更する。

あとは監視項目(アイテム)の設定と異常時のトリガー設定、トリガー時のアクションの設定を行っていく。最初からテンプレートが用意されているのでそれを適用するだけでも良いが、Zabbixはいろいろできるので自分でいろいろ監視項目を増やしたくなることだろう。これらの設定方法は公式マニュアル寺島広大『Zabbix統合監視「実践」入門』(技術評論社)を参照してほしい。ボクのテンプレートは GitHub: rewse / zabbix で公開している。

4 thoughts on “Scientific Linux 6.1 に Zabbix 1.8.10 をインストール”

  1. お世話になっております。
    CentOS上で構築を行っていたのですが、なかなか”Zabbix server is running”のステータスを変更できなかったのですが、こちらのブログを参考にさせて頂いて一挙に解決!SELinuxだったのですね。とても勉強になりました。
    ありがとうございました!

  2. お役に立てたようで何よりです。インストールだけでもいろいろあるので、Zabbixが公式にSELinuxポリシー配ってくれれば良いんですけどねー。

コメントを残す