概要
Zabbixにはzabbix_server自信を監視する機能がない(というか無理)なので
外部の監視システム(今回はNewRelic)を使ってZabbix自体を監視してみました
環境
- CentOS 6.3 64bit
- Zabbix 2.0.3
- NewRelic 2014/11/20時点
準備
まずはNewRelicでアカウント登録
基本は無料で登録使用できます
http://newrelic.com/
にアクセスして「Sign Up for New Relic」からアカウント登録できます
アカウント登録画面では全部の内容を入力します
内容に不備がある場合は登録しようとしてもエラーになります
内容に不備がある部分は赤字で怒られます
注意するところは特にないですが
監視するサーバのプラットフォームを選択する部分があるので「PHP」を選択してください
会社名を入力する部分がありますない方は適当でもいいかもしれません(自分は一応所属する会社名を入力しました)
設定
エージェントインストール
NewRelicで監視するサーバにエージェントをインストールします
これがないと監視することができません
まずはNewRelicが提供するレポジトリをインストールします
rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
リポジトリがインストールできたらyumコマンドで必要なパッケージをインストールしていきます
yum install newrelic-php5
- newrelic-php5
- newrelic-daemon
- newrelic-php5-common
がインストールされます
インストール時にGPG keyをインポートしますと言われるのでyesにします
Importing GPG key 0x548C16BF:
Userid : New Relic <support@newrelic.com>
Package: newrelic-repo-5-3.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-NewRelic
Is this ok [y/N]: y
エージェントをインストールする準備が整ったのでエージェントをインストールしていきます
newrelic-install install
インタラクティブモードでインストールすることになります
必要な内容を入力しながらインストールしていきます
ライセンスキーの入力
おそらくしょっぱなで入力することになります
以下が表示されたらライセンスキーを入力します
Enter New Relic license key (or leave blank):
ライセンスキーはNewRelicのARM(Application Performance Management)で取得することができます
たぶん設定するのはこれだけです
入力後にインストールが完了された旨の英語が出てくればインストール完了です
あとついでにchkconfigをONにしておきます
chkconfig newrelic-daemon on
監視状態の確認
エージェントがインストールできたら一旦zabbix_serverとhttpdを再起動します
service httpd restart
service zabbix-server restart
これで5分後くらいにARMを見ると監視が開始されていることを確認できると思います
成功していると上図のような感じになります
Nameのリンクをクリックすると監視しているサーバの詳細な情報をグラフで確認できます
何の設定もしていないですが、Zabbixで使っているMySQLの監視も勝手にできているっぽいです
うまくいかない場合は/var/log/newrelic/newrelic-daemon.log
というログを見てください
何か手がかりがあるかもしれません
ZabbixServerがダウンしたら通知するように設定
さてここからが本題です
ZabbixServerがダウンしたらメールで通知するようにしてみます
サイトの監視
所謂、80番ポート監視してみます
ARMで対象のアプリケーションを開いて左メニューから
Event -> Alerts -> Edit alert policy
を確認してみます、するとすでにアラートが設定されておりこれ利用することでサイトの監視をしてみます
このアラートを見ると「1 application is missing a ping URL」という警告が出ていて、これが出ているとサイト監視ができていないことになります
左メニューから
SETTINGS -> Availability monitoring -> URL to monitor
にZabbixのURLを記載します
入力してから「Save your changes」とすれば設定完了です
再度Application alert policiesを見ると先ほどの警告が出ていないと思います
それでもアラートが出る場合はここに記載されているIPからの80番ポートアクセスをFWやiptablesに許可してみてください
この状態で試しにサーバを停止してみたらアカウント登録時に設定したメールアドレスにちゃんとサーバ死んだよメールが届きました
起動すれば復旧メールも届きます
一応これでサーバ自体がダウンした場合と80番でLISTENできなくなった場合はNewRelicから監視することができるようになりました
が、たとえばzabbix-serverのプロセス自体が死んだ場合やZabbixが使っているMySQLが死んだ場合は検知できない状態です
本当はそこまで監視したかったんですが、プラグインを作ったりしないといけなさそうだったのと自分のNewRelic力がなさすぎて今回はギブしました
時間があったらやってみようかな
MySQL死んだときは管理者宛にメール来るよ
返信削除