masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

「ZABBIX」のFedoraへのインストール手順

フリーのネットワーク監視ツール「ZABBIX」。

オープンソースで開発されており、全ての設定・管理をブラウザからできるようになっている。グラフ作成機能も標準で搭載。各ノードの情報収集、異常検知、障害/復旧通知、詳細なアラート通知機能あり。SNMPv1、v2、v3をサポートし、UnixLinux、BSD、Windows、MacOS X、NetWareなどで動作。CPU、メモリ、ディスク、ネットワーク、プロセスの状態などの監視が可能で、ApacheTomcatOracleなどのアプリケーションの監視も可能。なかなか強力。

日本語版があるのだが、インストール手順は日本語探したけど見つける事が出来ず。公式サイトの英語を元にインストールしてみた。試行錯誤の末無事インストールできたので、その手順を記録として書いておく。


 

【重要】(2009/05/29追記)
この手順は古いです。最近のバージョンはインストールがかなり楽になっています。なので、今となってはあまり参考になりません。
また、フリーのネットワーク監視をお探しなら、ZABBIXよりNTTデータが開発したオープンソース「Hinemos」の方がセットアップ・運用管理ともに楽でおすすめです。国産なので、手順書もすべて日本で豊富に用意されており、OSはRHEL推奨だがCentOS5で動きます。

Hinemos:コンピュータ、システム、ネットワークの運用管理を実現するオープンソースソフトウェア(OSS)


ちなみにインストールしたサーバは以下のスペック。

  • OS:Redhat Linux Fedora 5(インストーラに従ってインストール・カスタマイズは特にない)
  • httpd:Apache2(標準インストールのまま)
  • PHP:Version5
  • MySQL


基本的には、英語版のインストールガイドに沿って進めていった。

404 Not Found
http://www.zabbix.com/manual/v1.1/install_source_server.php

管理サーバ(親)側の設定手順

ユーザ作成

まず、ZABIIX動作用に、ローカルに「zabbit」というユーザを作成する。これは、とりあえず存在すれば動くようなので、root権限などは与えず、「ログイン禁止ユーザ」などでとりあえず作成すればよい。

ダウンロード&展開

ZABBIXの日本語サイトより「ソースファイル」をダウンロード。

の「ダウンロード」→「ソースファイル zabbix-1.1.tar.gz」の先にあるファイルのURLを

shell> wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.1.tar.gz

といった感じで取得。保存先はどこでもよい。
ダウンロードしたら、ファイルを展開する。

shell> tar -xzf zabbix-1.1.tar.gz

展開したフォルダに移動する。

cd zabbix-1.1
データベース作成

必要なデータベース作成のコマンドを実行。今回はMySQL

shell> mysql -u -p
mysql> create database zabbix; 
mysql> quit; 

データベースが作成されたら、初期テーブルと初期データを登録するため、zabbixの展開フォルダの「create」フォルダにあるSQL文を読み込ませ、登録する。

shell> cd create/mysql 
shell> cat schema.sql |mysql -u -p zabbix
shell> cd ../data 
shell> cat data.sql |mysql -u -p zabbix
configureとインストール(およびnet-snmpの追加)

展開したフォルダ内で、configureを実行。

./configure --enable-server --with-mysql --with-net-snmp 

今回は「MySQL」「netSNMP」を使うので、「--with-mysql --with-net-snmp」としている。ただ、自分のサーバに「net-snmp」が入っていなかったので、

yum install net-snmp-devel

で自動インストールを実行。その後はconfigureも成功。そして、makeとインストール。

shell> make install

この時点で、僕の環境では「/usr/local/bin」に必要なバイナリがコピーされていた。

  • zabbix_agent
  • zabbix_agentd
  • zabbix_get
  • zabbix_sender
サービスとxinetdへの登録(およびxinetdのインストール)

次に、「/etc/services」の編集。

shell> vi /etc/services

で開き、最後の行に

shell> zabbix_agent    10050/tcp
shell> zabbix_trap     10051/tcp

を追加し、保存。

その次、「/etc/inetd.conf」の編集だが、Fedora5にはinetdがなく、「xinetd」に変わったらしいのでそっちで設定する事に。
まず、xinetdのインストール。

shell> yum install xinetd

入れたら、「/etc/xinetd.d/」にzabbit用のファイルを作成。

shell> cd /etc/xinetd.d/
shell> vi zabbix

ファイルに記載する内容は以下の通り。(今後のために、コメントも追加)

service zabbix_agent
{
        # このサービスを有効/無効を設定   no/yes
        disable = no

        # ソケットの種類を指定
        # stream/dgramraw/seqpacket/tli
        socket_type             = stream

        # プロトコルの指定
        # TCP/UDP
        protocol     = tcp

        # waitステータス:プログラム終了前に同一ポートへのコネクション要求を受け付けるかどうか
        # nowait/wait = no/yes
        wait                    = no

        # サーバプログラムを実行するユーザ名を指定
        user                    = zabbix

        # サーバプログラムを絶対パスで指定
        server                  = /usr/local/bin/zabbix_agent

        # 成功時の log に記述する内容   DURATION は接続期間
        log_on_success          += DURATION USERID

        # 失敗時の log に記録する内容
        log_on_failure          += USERID

        # サーバプログラムの実行優先順位を指定   値が大きいほど優先順位が高い
        nice                    = 10
}

保存して終了し、xinetdの再起動。

shell> service xinetd restart

念のため、xinetdが動いてるか確認する。

shell> chkconfig --list

「zabbix: off」となっていたら、動いていないので

shell> chkconfig zabbix on

で動かし、再度xinetdを再起動する。また、xinetdをインストールしたばかりなので、次回PC起動時以降も動くよう

shell> chkconfig xinetd on

を実行しておく。

ZABBIX本体の設定

次に、zabbixの設定ファイルを作成する。「/etc/zabbix」に保存するので、まずはフォルダ作成。

shell> mkdir /etc/zabbix/
shell> cd /etc/zabbix/

「/etc/zabbix/」内に、ダウンロード&展開したフォルダ「/展開フォルダ/misc/conf/」にある

  • zabbix_agent.conf
  • zabbix_agentd.conf

の2つをコピーする。

shell> cp -pf /展開フォルダ/misc/conf/zabbix_agent.conf /etc/zabbix/zabbix_agent.conf
shell> cp -pf /展開フォルダ/misc/conf/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf

そのあと、これら2つのファイルを編集し、設定をするのだが、とりあえずはこのままでも動く。

shell> vi /etc/zabbix/zabbix_agent.conf
shell> vi /etc/zabbix/zabbix_agentd.conf
サーバープロセス起動

zabbixのサーバを起動する。インストール先にある「zabbix_server」を実行。僕の環境では、前記の通り「/usr/local/bin」にある。

shell> /usr/local/bin/zabbix_server
エージェントの起動

zabbixのエージェントを起動する。インストール先にある「/usr/local/bin/zabbix_agentd」を実行。

shell> /usr/local/bin/zabbix_agentd

ここで、

User zabbix does not exist.
Cannot run as root !

というエラーが出たら、「zabbit」というユーザIDが存在していない意味なので、一番上に記載した内容に従って作成する。(ここに少しはまった)

Webページ

あとは、ZABBIXの日本語サイトより「日本語Webインターフェース」をダウンロード。

ダウンロード後展開し、Apacheの公開フォルダに置いて(ディレクトリ名は自由)アクセスすればOK。ただし、展開したフォルダ内にある「frontends/php/include/db.inc.php」のみ、データベース設定の為開いて編集する。(今回はMySQL

$DB_TYPE = "MYSQL";
$DB_SERVER = "localhost"; 
$DB_DATABASE ="zabbix"; 
$DB_USER = "{ユーザ名:rootなど}"; 
$DB_PWD = "{上記ユーザのパスワード}";

これでログイン・データの登録・設定変更が可能になる。
ちなみに初期ログインIDは、ユーザID「admin」・パスワードなし、である。ここでログインできなかった場合、上記手順の「データベース作成」で失敗している可能性がある。

404 Not Found
http://www.zabbix.com/manual/v1.1/install_web.php

監視される側の設定手順

エージェントのインストールおよび起動

管理サーバは上記で完了だが、監視される側のサーバには、それぞれエージェントをインストールしなければならない。

404 Not Found
http://www.zabbix.com/manual/v1.1/install_agent.php

上記の管理サーバ手順と構築において違うところは、

  • データベースは必要ない
  • configureの引数が「--enable-agent」のみ
  • 「make」のみで、「make install」は行わない
  • 「zabbix_server」は起動しない

などで、より簡単である。ただ、管理される側にもエージェントのインストールが必要という点だけ。



あとは、管理サーバのWeb管理画面で設定していけばよい。
もちろん、環境によって入れるもの/入れないもの、入った場所等変わってくると思うので、参考までに。