Zabbix-ServerをAWS環境に移設

2年前(AWS東京リージョン)が出来た時から今まで自社サーバとAWSクラウド環境のハイブリッド運用をしていたのだけど、自社サーバのハードウェアリプレース時期にもなってきたので全面的にAWSに移行しようと思っております。

第1弾として、自社サーバで動いていZabbixサーバの移設から手を付けた
移設先はリージョン別にした方が良いかなってことでシドニーリージョン
導入方法はこの辺を見て適当に

zabbix2.0をAmazonlinuxにインストールしたった。(rpm)

旧環境がzabbix1.8だったのでzabbixエージェントもzabbix2.0へバージョンアップ
1.8はソースから入れたけど2.0はサーバ作るときにできたRPMを使う
1台ずつ入れ替えるのはだるいのでスクリプト書いた


#!/bin/bash
cd /home/ec2-user
wget http://XXX.XXX.XXX.XXX/zabbix/rpm/zabbix-2.0.4-1.amzn1.x86_64.rpm
wget http://XXX.XXX.XXX.XXX/zabbix/rpm/zabbix-agent-2.0.4-1.amzn1.x86_64.rpm

sudo /sbin/service zabbix_agentd stop
sudo /sbin/chkconfig --del zabbix_agentd
sudo rm -f /usr/local/sbin/zabbix_agent*
sudo rm -f /usr/local/bin/zabbix_agent*
sudo rm -f /etc/init.d/zabbix_agentd
sudo rm -f /etc/zabbix/*

sudo yum -y localinstall zabbix-2.0.4-1.amzn1.x86_64.rpm zabbix-agent-2.0.4-1.amzn1.x86_64.rpm

sudo sed -i s/Server=127.0.0.1/Server=新しいZabbixServerのIP/ /etc/zabbix/zabbix_agentd.conf

sudo /sbin/chkconfig zabbix-agent on
sudo /sbin/service zabbix-agent start

以下、zabbix1.8→zabbix2.0でハマったこと

statusキーが使えなくなっていた

サーバの死活監視にstatusキーを使っていたんだけど、zabbix2.0のテンプレート作ろうとしてもstatusキーがない。。。

変わりにagent.pingを使えということらしい
トリガーは下記のように設定

{Template OS Linux:agent.ping.nodata(2m)}=1

外部チェック(externalscripts)の引数指定の変更

zabbix1.8では暗黙に第1引数にホスト名が渡っていたのだけどzabbix2.0では自分で指定しないといけない。
複数の指定も半角スペース区切りからカンマ区切りに変更されていた。

ホスト名の指定は{HOST.CONN}で行う

hogehoge.php[{HOST.CONN},param1,param2]

ローレベルディスカバリのテンプレート変更反映のタイミング

ローレベルディスカバリとは、zabbix2.0からの新機能でテンプレートに登録しておけば、マウントされてるディスクやネットワークインターフェイスを自動登録する仕組み

これを使ってEBSやNICのアイテムやトリガーをラクラク登録できるのだけど設定内容を変更しようとした時の動作が普通に登録した監視アイテムとは違うので注意

例えばディスクの残り容量アラートの設定を10%→20%に変更してみるとする。
通常のテンプレートだと各ホストの設定も即時反映されるのだけどローレベルディスカバリで登録されたアイテムは即時反映されない。

テンプレートで登録したディスカバリの更新間隔待つことで反映される(注:ディスカバリ内のアイテムの更新間隔ではない)

ディスカバリの更新間隔は、マウントされたディスクの検出タイミングにしか使ってないと思い込んでたせいで、トリガーのしきい値やグラフの項目追加すら即時反映されないのでしばらく悩んだ。

こんなところかな
zabbix2.0になって見た目もカッコよくなって満足しております。

カテゴリー: AWS