がらくたネット


ZABBIX

ZABBIX

News

  • 2009/04/03 1.6.4がリリースされた…早いよ…まじで:-|
  • 2009/03/29 1.6.3がリリースされた
  • 2009/01/19 1.6.2がリリースされた
  • 2009/01/19 マニュアルがrev17となる
  • 2008/11/14 1.6.1がリリースされた

Configure Option

アップグレード

  • バイナリのサイコンパイル&インストール
  • frontend-phpファイルの上書き?
  • databaseへのpatchは不要
  • agentsのアップグレードは不要(とあるが…しないと駄目な関数があったりしてポ)

詳細はマニュアルを読めとさ…

インストール

必要なモジュール

  • mysql関連(mysql-server、mysql-develをインストール)
  • php関連、php-mysql、php-gd、php-bcmath(php、php-devel、php-mysql、php-gd-devel、php-bcmathをインストール)
  • apache関連(httpd、httpd-devel、mod_sslをインストール)
  • iksemel(iksemel-develをインストール)
  • libcurl(libcurl-develをインストール)
  • net-snmp関連(net-snmp-devel、net-snmp-utilsをインストール)
  • openipmi関連(OpenIPMI-devel、OpenIPMI-toolsをインストール)
  • fping(fpingをインストール)

php.iniの設定

max_execution_time = 300
[Date]
date.timezone = Asia/Tokyo

iksemel、fpingはDAGからインストールする DAGのリポジトリを導入していちよーdisableにしておいてyumコマンドでインストールする

# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# vi /etc/yum.repo.d/rpmforge.repo
enable = 0 ←0に変更する
# yum install -y --enablerepo=rpmforge iksemel-devel fping

fpingのパーミッション問題は解決された様子です(2009/04/13確認、2.4-1.b2.2.el5)

fpingはパーミッションがどうよ?だ。弾かれたではないか! <code bash> # ls -al /usr/sbin/fping* -rwsr-x— 1 root adm 29497 3月 8 2007 /usr/sbin/fping -rwsr-x— 1 root adm 52038 3月 8 2007 /usr/sbin/fping6 # chmod 4755 /usr/sbin/{fping,fping6} # ls -al /usr/sbin/fping* -rwsr-xr-x 1 root adm 29497 3月 8 2007 /usr/sbin/fping -rwsr-xr-x 1 root adm 52038 3月 8 2007 /usr/sbin/fping6 </code>

インストール準備作業

  • zabbix用ユーザ作成
  • mysql側でzabbix用のユーザとデータベースを作成
  • 作成したデータベースに初期schemaとテーブルなどを作成
コンポーネント説明
zabbix-server中心となるモジュール
zabbix-agent監視対象にインストールするモジュール
zabbix-webzabbixのフロントエンド
zabbix-proxyserverのproxyモジュール

MySQLの設定実施

# mysql -p
Password:
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '********';
mysql> exit
# mysql -p -u zabbix
Password:
mysql> create database zabbix;
mysql> exit

# cd create/scheme
# cat mysql.sql | mysql -u zabbix -p -D zabbix
# cd ../data
# cat data.sql | mysql -u zabbix -p -D zabbix
# cat images_mysql.sql | mysql -u zabbix -p -D zabbix

Unixアカウント作成

# useradd zabbix

zabbix-serverインストール/設定

インストール時の設定

  • mysqlを利用
  • net-snmpを有効
  • ipmiを有効、将来のためにOPENIPMIを有効にしておく
  • jabberを有効
  • curlを有効
  • インストール先はデフォルトの/usr/local(prefix)

zabbix-serverをインストールする場合は–enable-serverが必須
ついでに–enable-agentをつけてzabbix-agentもインストールしてローカル管理させる

# ./configure --with-net-snmp --with-mysql --with-jabber --with-libcurl --enable-server --enable-agent --with-openipmi

最後にサマリーが表示されるので確認すること!

# make install
# vi /etc/services
以下を追加
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

# mkdir /etc/zabbix
# cp misc/conf/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
# cp misc/conf/zabbix_server.conf /etc/zabbix/zabbix_server.conf

インストールファイル

/usr/local/sbin/zabbix_agent zabbix agent
/usr/local/sbin/zabbix_agentd zabbix agent daemon
/usr/local/sbin/zabbix_get zabbix agentと通信して値を取得するプログラム
/usr/local/sbin/zabbix_sender zabbix serverに値を通知するプログラム
/usr/local/sbin/zabbix_server zabbix server daemon

v1.6.1の時は以下のようにやった /etc/zabbix/zabbix_agentdの設定 <code> Hostname = ZABBIX Server PidFile=/var/run/zabbix_agentd.pid LogFile=/var/log/zabbix_agentd.log LogFileSize=100 </code> でもこれだとPermission deniedとなるのだ… <code> PidFile=/home/zabbix/zabbix_agentd.pid LogFile=/home/zabbix/zabbix_agentd.log </code> /etc/zabbix/zabbix_server.confの設定 <code> PidFile=/var/run/zabbix_server.pid LogFile=/var/log/zabbix_server.log LogFileSize=100 DBUser=zabbix DBPassword= DBSocket=/var/lib/mysql/mysql.sock </code> でもこれだとPermission deniedとなるのだ… <code> PidFile=/home/zabbix/zabbix_server.pid LogFile=/home/zabbix/zabbix_server.log </code> ここまでv1.6.1

zabbix_server.confの設定

# vi /etc/zabbix_server.conf
DBName=zabbix
DBPassword=********
DBSocket=/var/lib/mysql/mysql.sock

zabbix_agentd.confの設定

# vi /etc/zabbix_agentd.conf
Hostname=ZABBIX Server(ホスト名)

initスクリプトの設定

v1.6.1の時はredhatディレクトリのinitスクリプトを利用していたが よく見るとfedora core5用のものの方が使いやすそうだ

# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
それぞれのinitスクリプトでバイナリ指定部分のパスを修正する
# chkconfig --add zabbix_agentd
# chkconfig --add zabbix_server
# chkconfig zabbix_agentd on
# chkconfig zabbix_server on

v1.6.1の時 <code> # cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd # cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server それぞれのBASEDIRを/opt/zabbixから/usr/localに修正 binary指定を$BASEDIR/sbinに修正 chkconfigに対応させるための行を追加 </code> /etc/init.d/zabbix_server <code> # chkconfig: -85 13 # description: ZABBIX_SERVER is ZABBIX_SERVER. BASEDIR=/usr/local PIDFILE=/var/tmp/zabbix_server.pid ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server </code> /etc/init.d/zabbix_agentd <code> BASEDIR=/usr/local PIDFILE=/var/tmp/zabbix_agentd.pid ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd </code> ここまでv1.6.1

Web画面

  • Web画面構成はphpで書かれている
  • frontend/php以下がそのファイル群

# cp -R frontend/php /var/www/html
# mv /var/www/html/php /var/www/html/zabbix

  1. ブラウザでzabbixに接続
  2. ウィザードに従って進んでいく、上部にエラーらしき文字が表示されるが無視
  3. ウィザード内でzabbix.conf.phpをダウンロードする画面になる
  4. zabbix.conf.phpをダウンロードして/var/www/html/zabbix/conf/zabbix.conf.phpとして保存、retryをクリックしてOKが出るのを確認する
  5. ウィザード完了
  6. サイトにログインする。規定値はadmin/zabbix
  7. 各種項目を設定する

SNMP Trap

snmp trapを利用する方法

  1. snmptrap.shをインストールする
    # cp misc/snmptrap/snmptrap.sh /usr/local/bin
  2. snmptrap.shの設定をする
    ZABBIX_SERVER="localhost"
    ZABBIX_PORT="10051"
    ZABBIX_SENDER="/usr/local/bin/zabbix_sender
    KEY="snmptraps"
    HOST="snmptraps"
    
    $ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $HOST -k $KEY -o "$str"
    ↑これはzabbix_senderが引数を把握するために必要
  3. net-snmpに付属のsnmptrapdをインストールする
  4. snmptrapd.confに設定を追加
    traphandle default /bin/bash /usr/local/bin/snmptrap.sh
    authCommunity log,execute,net public →publicはtrapしてくる時のcommunity名
  5. snmptrap.shのitem keyに設定されている文字列のホストをzabbixに設定する
  6. snmptrapdを起動させる
  1. zabbixにホストを追加、ホスト名はHOST=で設定された文字列、テンプレートは不要
  2. zabbixにホスト名snmptrapsのアイテムを追加、アイテム名はKEY=で設定された文字列、Typeはzabbix traper、データタイプはstrings
  3. zabbixにトリガーを追加、トリガーアイテムとしてsnmptrapsを選択
  4. zabbixのActionにSend Messageを追加

snmptrapd.confのauthCommunityのtypeについて

logsyslogやstdoutなどの特定ファイルに出力することを許可
net特定プログラムの実行を許可
execute別の通知先転送を許可