12月
13
2009
0

Zabbixのトリガーを修正

ZabbixのテンプレートTemplate_Linuxには,ApacheやSyslogのデーモンが生きているか監視して,問題があれば障害を報告するトリガーがあります

監視方法には,

  • Zabbixサーバがポートにアクセスしてデーモンの生存を調べる方法
  • Zabbixエージェントがデーモンのプロセスを監視する方法

の2種類があります

今回の対象は,後者のプロセスの監視です

Template_Linuxのトリガーは,Apacheのデーモン名はhttpd,Syslogのデーモン名はsyslogdであることを前提にしています

ですが,ディストリビューションによっては,Apacheのデーモンの名前がapacheやapache2だったりと多少異なりますし,Syslogもsidのようにrsyslogの採用が増えてきました

ということでちょっと変更して修正してやりましょう

ホストにテンプレートをリンクしたままの人も多いと思いますが,自分は最初リンクさせてアイテムやトリガーなどを継承した後,アンリンクして個々のホストに応じてカスタマイズしています

今回の変更もホストにテンプレートをリンクしたまま行う場合は,テンプレート自体を変更する必要があります

変更自体はいたって簡単です

Apacheの場合は次の通り

  1. Itemsから”Number of running processes apache”を選択
  2. Keyを”proc.num[httpd]“→”proc.num[apache2]“などに変更

Syslogの場合も同様です

これでApacheやSyslogが落ちてる時は,「Apache is not running on ・・・」や「Syslogd is not running on ・・・」のような障害が報告されるようになります

プロセス数の監視はデーモンが生きているかはもちろん,負荷などの状態を把握するのにも便利なので,ポートの監視よりオススメです

最近Zabbixネタばっかりですね
しかも内容がどんどん薄くなってるような・・・

Written by h2 in: ネットワーク | タグ: ,
12月
12
2009
3

Zabbix 1.8のグラフの文字化けに対応

前回インストールした Zabbix 1.8なんですが,日本語表示にしたときにグラフの凡例が化けていました
zabbix18-7

自分は別にかまわないのですが,教育用に立てたzabbixなので日本語の方がとっつきやすいかなぁと思って,直してみました

化け方から見て,フォントが日本語の文字のグリフに対応するデータを持ってないのが原因だと思われるので,
とりあえずIPAフォントに変更してみます

環境は前回と同じで,Debian sid x64です

まずはaptでフォントをインストール

$ sudo aptitude install otf-ipafont

次に,zabbixのフロントエンドの中にfontsディレクトリがあるので,そこにIPAフォントのリンクを張ります
拡張子をotfではなくttfにしてリンクを張ってますが,これはzabbixがotfだとフォントを読み込んでくれないためです
IPAフォントはOpenTypeですが,中身はTrueTypeなので問題ないでしょう

$ cd /var/www/zabbix/fonts/
$ sudo ln -s /usr/share/fonts/opentype/ipafont/ipag.otf ipag.ttf

つづいて,zabbixがグラフに使用するフォントを変更

$ sudo vim /var/www/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
→define('ZBX_GRAPH_FONT_NAME', 'ipag');

これで一応日本語表示できます
ただ,どう考えても見難いですよね
英語表示にした時も見づらい・・・
zabbix18-9 zabbix18-10

ということでIPAはやめて,お気に入りのmeiryoKeConsoleにしました
zabbix18-11 zabbix18-12

大分見やすくなったんではないでしょうか?
みなさんも好きなフォントで試してみてください

本当は表示言語毎にフォントを変えるようにした方がいいのかも知れませんが,実運用はやっぱり英語の方がよさそうだし,面倒なのでこれで妥協します

Written by h2 in: ネットワーク | タグ: ,
12月
09
2009
1

早速Zabbix 1.8を入れてみた

今日(といっても昨日ですが),予想より早くZabbix 1.8が出たので早速入れてみました

以下,簡単な手順メモ

環境はDebian sid x64です
apacheとphp5は入ってるものとします

基本的な流れはインストールマニュアルに従ってます

  1. zabbix用のユーザの作成
    一般ユーザとUID, GIDを区別できるようにしたいので,適当な値を調べて指定します
    ログインとかはしないのでその辺はセオリー通り

    $ sudo groupadd -g 107 zabbix
    $ sudo useradd -u 105 -g zabbix -d /dev/null -s /bin/false zabbix
    
  2. ソースのDLと展開
    $ wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.tar.gz
    $ tar zxvf zabbix-1.8.tar.gz
    
  3. DBの設定
    まず,zabbix用のDBとユーザを作成します

    mysql> create database zabbix character set utf8;
    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'パスワード';
    mysql> flush privileges;
    mysql> quit;
    

    続いて,作成したDBにSQLファイルを読み込みます

    $ cat zabbix-1.8/create/schema/mysql.sql| mysql -u zabbix -p zabbix
    $ cat zabbix-1.8/create/data/data.sql | mysql -u zabbix -p zabbix
    $ cat zabbix-1.8/create/data/images_mysql.sql | mysql -u zabbix -p zabbix
    
  4. ビルド
    proxyは使わないので,serverとagentをビルドします
    DBMSはMySQL,NET-SNMPとIPMIも使うのでオプションを次のようになります
    Jabberもおもしろそうなので使ってみます

    build-essentialしか入っていない場合は,libmysqlclient-dev, libcurl-dev (=libcurl4-openssl-dev), libsnmp-dev, libiksemel-dev, libopenipmi-devあたりが必要になるでしょう

    ただ,(うちだけ?)configureスクリプトが不安定なので注意が必要です
    libiksemel-devを入れても

    checking for IKSEMEL... configure: error: Jabber library not found
    

    といわれるので,–with-jabber=/usr/lib とするとなぜか通るようになります(configureはいったいどこ探してるんでしょうかね?)
    さらに不思議なのは,その後–with-jabberに戻しても通るようになってることです
    あと–with-openipmiを指定してもIPMIがnoになるのですが,同じオプションで30回くらい繰り返すとOpenIPMIになりました
    意味不明です・・・

    PCがおかしい?
    いやいや,VMだしOSインストール直後なんですけど・・・

    そういえば,1.6の頃も–enable-agentが効いてないことがあったなぁ

    ともあれ,configureオプションは次の通り
    なんかバギーなので実行後,最後に表示される設定一覧で指定した通りになってるか確認しましょう

    $ cd zabbix-1.8
    ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-jabber
    ・・・
    Configuration:
    
      Detected OS:           linux-gnu
      Install path:          /usr/local
      Compilation arch:      linux
    
      Compiler:              gcc
      Compiler flags:        -g -O2   -I/usr/include/mysql  -DBIG_JOINS=1    -DUNIV_LINUX -DUNIV_LINUX     -I/usr/local/include -I/usr/lib/perl/5.10/CORE -I. -I/usr/include     -I/usr/include
    
      Enable server:         yes
      With database:         MySQL
      WEB Monitoring via:    cURL
      Native Jabber:         yes
      SNMP:                  net-snmp
      IPMI:                  openipmi
      Linker flags:             -L/usr/lib -lOpenIPMI -lOpenIPMIposix     -L/usr/lib/mysql  -liksemel    -lcurl  -L/usr/lib -lnetsnmp -lcrypto  -L/usr/lib -lnetsnmp -lcrypto
      Libraries:             -lm -lresolv      -lmysqlclient   -liksemel -lcurl  -lnetsnmp 
    
      Enable proxy:          no
    
      Enable agent:          yes
      Linker flags:             -L/usr/lib -lOpenIPMI -lOpenIPMIposix
      Libraries:             -lm -lresolv 
    
      LDAP support:          no
      IPv6 support:          no
    ・・・
    $ sudo make install
    
  5. ポート名の登録
    管理対象のマシンの/etc/servicesにエントリを追加

    zabbix_agent    10050/tcp
    zabbix_trap     10051/tcp
    
  6. サーバの設定
    サンプルをコピーして編集します
    1.8では項目の説明が分かりやすくなってます

    $ sudo mkdir /etc/zabbix
    $ sudo cp misc/conf/zabbix_server.conf /etc/zabbix/
    $ sudo vim /etc/zabbix/zabbix_server.conf
    

    変更箇所のみ

    LogFile=/var/log/zabbix/zabbix_server.log
    PidFile=/var/run/zabbix/zabbix_server.pid
    DBUser=zabbix
    DBPassword=パスワード
    FpingLocation=/usr/bin/fping
    
  7. エージェントの設定
    サンプルをコピーして編集します

    $ sudo cp misc/conf/zabbix_agentd.conf /etc/zabbix/
    $ sudo vim /etc/zabbix/zabbix_agentd.conf
    

    変更箇所のみ

    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    Hostname=ホスト名(アクティブチェックを利用する際はサーバの設定と要統一)
    
  8. PIDファイルとログファイル用のディレクトリを作成
    $ sudo mkdir /var/run/zabbix
    $ sudo mkdir /var/log/zabbix
    $ sudo chown zabbix:zabbix /var/run/zabbix
    $ sudo chown zabbix:zabbix /var/log/zabbix
    
  9. 起動スクリプトを作成
    まず,サーバ

    $ sudo cp misc/init.d/debian/zabbix-server /etc/init.d/
    $ sudo vim /etc/init.d/zabbix-server
    

    変更箇所のみ

    DAEMON=/usr/local/sbin/${NAME}
    PID=/var/run/zabbix/$NAME.pid
    

    続いて,エージェント

    $ sudo cp misc/init.d/debian/zabbix-agent /etc/init.d/
    $ sudo vim /etc/init.d/zabbix-agent
    

    変更箇所のみ

    DAEMON=/usr/local/sbin/${NAME}
    PID=/var/run/zabbix/$NAME.pid
    

    起動時に自動で起動するように設定します

    $ sudo update-rc.d zabbix-server defaults
    update-rc.d: using dependency based boot sequencing
    insserv: warning: script 'zabbix-server' missing LSB tags and overrides
    insserv: warning: script 'zabbix-agent' missing LSB tags and overrides
    
    $ sudo update-rc.d zabbix-agent defaults
    update-rc.d: using dependency based boot sequencing
    insserv: warning: script 'K01zabbix-server' missing LSB tags and overrides
    insserv: warning: script 'zabbix-agent' missing LSB tags and overrides
    insserv: warning: script 'zabbix-server' missing LSB tags and overrides
    

    LSB(Linux Standard Base)タグがないと警告がでます
    起動順序に依存関係がある場合うまくいかないこともあるので,適当にLSBタグを書いておきましょう

    一度リンクを消します

    $ sudo update-rc.d -f zabbix-server remove
    $ sudo update-rc.d -f zabbix-agent remove
    

    起動・終了スクリプトにタグを追加します
    serverがagentより先に起動し,後で終了するように指定します

    $ sudo vim /etc/init.d/zabbix-server
    ### BEGIN INIT INFO
    # Provides: zabbix-server
    # Required-Start: $network mysql
    # Required-Stop:
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Zabbix Server start/stop script
    # Description: Start and stop Zabbix Server daemon
    ### END INIT INFO
    
    $ sudo vim /etc/init.d/zabbix-agent
    ### BEGIN INIT INFO
    # Provides: zabbix-agent
    # Required-Start: $network mysql zabbix-server
    # Required-Stop: zabbix-server
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Zabbix Agent start/stop script
    # Description: Start and stop Zabbix Agent daemon
    ### END INIT INFO
    

    もう一度update-rc.dを実行

    $ sudo update-rc.d zabbix-server defaults
    $ sudo update-rc.d zabbix-agent defaults
    
  10. Webフロントエンドのコピー
    $ sudo mkdir /var/www/zabbix
    $ sudo cp -a frontends/php/* /var/www/zabbix/
    $ sudo chown -R root:root /var/www/zabbix
    
  11. デーモンの起動
    $ sudo /etc/init.d/zabbix-agent start
    $ sudo /etc/init.d/zabbix-server start
    
  12. フロントエンドの設定
    ブラウザでフロントエンドにアクセスすると,タイムゾーンが設定されていないといわれたので設定

    $ sudo vim /etc/php5/apache2/php.ini
    date.timezone = Asia/Tokyo
    $ sudo /etc/init.d/apache2 restart
    

    zabbix18-1

    いろいろチェック項目にエラーがあるので設定を変更します

    $ sudo vim /etc/php5/apache2/php.ini
    post_max_size = 16M
    max_execution_time = 300
    mbstring.func_overload = 2
    $ sudo aptitude install php5-mysql php5-gd
    $ sudo /etc/init.d/apache2 restart
    

    zabbix18-2

    続いて,DBの設定です
    zabbix18-3 zabbix18-4

    あとは,今設定した内容の設定ファイルをDLして設置するだけ
    zabbix18-5

    ログイン画面です
    デフォルトのIDはadmin, パスワードはzabbixです
    すぐログインして変更しましょう
    zabbix18-6

    ちらっと使ってみた感じですが,細かいところがいろいろ修正されていて使い勝手が向上しています
    Zabbixエージェントに加えてSNMPやIPMIを利用しているので,各ホストが何で監視されているのか把握しやすくなったのがうれしいです

    ためしに表示言語を日本語にするとグラフが化けますね〜
    化けるのはグラフだけなので,設定の問題ではなさそうな気がします
    どうせ英語で使うので大した問題ではないです
    zabbix18-7 zabbix18-8

Written by h2 in: ネットワーク | タグ: ,

TheBuckmaker WordPress Themes Webhosting, MP3, AAC & Co