blog/content/post/2012-12-25-notification_fro...

5.8 KiB
Raw Blame History

title author date url has_been_twittered tmac_last_id wordtwit_post_info categories
Nagiosからの通知を Growl 経由で受け取る kazu634 2012-12-25 /2012/12/25/notification_from_nagios_via_growl/
yes
303816632113983489
O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";s:1:"1";s:5:"delay";s:1:"0";s:7:"enabled";s:1:"1";s:10:"separation";i:60;s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:3;s:6:"result";a:0:{}s:13:"tweet_counter";i:1;s:13:"tweet_log_ids";a:0:{}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}
Mac
nagios
tools

ESXiサーバを自宅内に設置していて、ゲストOSの一つに Nagios を導入しています。 Nagios 経由のアラームは Twitter に飛ばすようにしているのですが、頻繁に起動・停止を繰り返すようなゲスト OS に関しては Twitter に飛ばされると邪魔なことに気づきました。

そこで Growl に飛ばすこととしました。

環境

構成はこんなかんじです:

  • MacBookPro: OS X 10.6.8
  • Nagios: Ubuntu 12.04
  • Guest1: Windows 7
  • Guest2: Ubuntu 12.04

ネットワーク図はこんな感じです:

Network

やりたいこと

NagiosがGuest1,Guest2を監視した結果の通知をMacBookProで受け取りたいGrowlで

MacBookPro側

MacBookPro側では Growl をインストールします。10.6.8では App Store からはダウンロードできないようなので、ホームページから直接ダウンロードします。

まずはトップページにアクセスして、丸で囲んだ部分をクリックします:

growl_top

表示されたページの丸で囲んだ部分をクリックしてダウンロードします:

growl_downloads

後はインストーラーをキックするだけ!

Nagios側

Nagios側では色々とやることがあります。

  1. Rubyのインストール
  2. Ruby-growlのインストール
  3. Nagiosの設定

Rubyのインストール

Rubyがインストールされていなかったので、インストールします:

$ sudo aptitude install ruby
$ sudo aptitude install rubygems

Ruby-growlのインストール

RubyからGrowlに通知するためのライブラリをインストールします:

$ sudo gem install ruby-growl -v 3.0

Ubuntu 12.04で標準でインストールされる Ruby は 1.8 系みたいなので、バージョン指定でインストールします。

Nagiosの設定

Nagiosの設定は、次の二つを指定します:

コマンドの定義

commands.cfgを編集します:

[crayon]

+### Growl ###

+define command{

  • command_name host-notify-by-growl

  • command_line /usr/local/bin/growl -h 192.168.3.7 -s -t “Nagios Notification” -m “HOSTALIAS is HOSTSTATE. $HO

  • }

+define command{

  • command_name notify-by-growl

  • command_line /usr/local/bin/growl -h 192.168.3.7 -s -t “Nagios Notification” -m “SERVICEDESC @ HOSTNAME is $

  • }

[/crayon]

Ruby-growlをインストールすると、growlコマンドも一緒にインストールされます。それを使用します。

コンタクトの定義

contacts.cfgを編集します:

[crayon]

@@ -35,7 +35,13 @@ define contact{

email nagios@localhost ; < <*\* CHANGE THIS TO YOUR EMAIL ADDRESS ***

}

+define contact{

  • contact_name localadmin

  • use generic-contact

  • alias Local Host Admin

  • service_notification_commands notify-by-growl

  • host_notification_commands host-notify-by-growl

  • }

###############################################################################

###############################################################################

@@ -53,3 +59,9 @@ define contactgroup{

alias Nagios Administrators

members nagiosadmin

}

+define contactgroup{

  • contactgroup_name localadmins

  • alias Local Admins

  • members localadmin

  • }

[/crayon]

通知先にはとりあえず「localadmins」という名称をつけました。

動作確認

ホストをダウンさせると、Growlに通知が来ます:

 

GrowlHelperApp