Open rainit2006 opened 6 years ago
Sensu Yahoo! JAPANでは、2013年にプライベートクラウドとして「OpenStack」運用を開始しました。そして、そのプライベートクラウドの監視基盤として、日々の運用を支えているのが「Sensu」です。
監視対象の増加に対しては、Nagiosクラスタを新規構築して増加分の監視をまかなうというシンプルな手法を採用していました。この手法でも運用は問題なくできていましたが、監視対象が増加するにつれ、スケーラビリティの観点から限界を感じることも多くなりました。
監視の運用負荷を減らすためにスケーラビリティと柔軟性を備える監視基盤の選定を行い、最終的に次の5つの理由からSensuを選択しました。 理由(1):コミュニティーが活発で将来性が見込める 理由(2)Nagiosのプラグイン資産を流用できる 理由(3)監視対象の増加に自動で対応できる 理由(4):Chefなどの構成管理ソフトウェアと連携できる 理由(5):Web APIが用意されている
Amazon CloudWatch vs. Nagios + Cacti 機能比較! https://idc.lexues.co.jp/w/681/ 結論としては、CloudWatchと自社監視サーバを併用してお互いの不得意な部分を補完することで、より安定した運用ができると考えています。
「nagiosからAmazon CloudWatchに切り替えができるのか」 https://blog.situs.co.jp/tech/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89/nagios%E3%81%8B%E3%82%89amazon-cloudwatch%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AE%E3%81%8B/
CloudWatch はツールのインストール等何もいらないので、手っ取り早く監視が出来て良いと思いました。 標準メトリクスで監視できる項目は限られていますが、カスタムメトリクスの作成も容易で、 柔軟な監視が出来ると思います。
Nagios 参考site: http://www.unix-power.net/linux/nagios.html
NRPE (Nagios Remote Plugin Executor ) The NRPE addon is designed to allow you to execute Nagios plugins on remote Linux/Unix machines.
Nagiosは監視ホスト(Monitoring Host)と被監視ホスト(Remote Linux/Unix Host)に分かれている。 この2ホストはNRPE( Nagios Remote Plugin Executor。被監視ホストにある )と対応check_nrpe(監視ホストにある)を通じて通信する。具体的なプロセスは下記の通りである。 Nagiosは周期的にheck_nrpeを実行する。 heck_nrpeが直接に被監視ホストのNRPEと通信し、NRPEにチェック内容を通知する。 NRPEが被監視ホストのローカルにインストールされているプラグインを呼んで、被監視ホストのサービスと状態(ディスク、CPU…)をチェックする。 NRPEがチェック結果を監視側のcheck_nrpeに渡して、check_nrpeが結果をNagios状態キューに入れる。 Nagiosは順番通りにキュー中の情報を読み取って、結果をWEB側に表示する。 Nagiosは取得した情報に異常有無を判断し(異常を事前に定義)、該当処理する(警告メール、メッセージ送信…)
NSCA NSCA is an addon that allows you to send passive check results from remote Linux/Unix hosts to the Nagios daemon running on the monitoring server.
Nagios plugin It would be a good idea to keep your plugins in same directory as other Nagios plugins (/usr/lib/nagios/plugins/ for example).
Nagiosで動くプラグインを作るための2つの約束事を、順番にご紹介しましょう。 約束事1:プラグイン自体の返り値が0,1,2,3のどれかであること: •0:OK •1:WARNING •2:CRITICAL •3:UNKNOWN 約束事2:最低でも一行のテキストを標準出力へ出力すること
!/bin/sh
終了コード OK=0 WARNING=1 CRITICAL=2 UNKNOWN=3
オプションを1つ受け取って、変数 status に格納します。 if [ $# != 1 ] then echo "Just 1 argument is permitted." exit $UNKNOWN else status=$1 fi
変数 status が 0,1,2,3 のどれかなら、それに応じたステータスを返し、終了します。 0,1,2,3 以外であれば UNKNOWN としてみましょう。 case $status in 0) echo " OK " exit $OK ;; 1) echo " WARNING " exit $WARNING ;; 2) echo " CRITICAL " exit $CRITICAL ;; 3) echo " UNKNOWN " exit $UNKNOWN ;; *) echo "The argument $status is not permitted." exit $UNKNOWN ;; esac
上で分岐が網羅されていれば、ここには来ませんが、念のため。 echo " Error " exit $UNKNOWN
この場合は、127.0.0.1のサーバにlocalhostというIDをふってホストとして登録します。これによって、Nagiosの画面にlocalhostの監視項目が出てきます。 Nagiosの設定ファイルはオブジェクト指向のように継承をおこなうことができます。実際にはホストに関する詳細な設定ができるのですが、その設定はlinux-serverという名前で別に記述していて、それを継承しています。 linux-serverの設定の実態は、templates.cfgに入っています。実際にみてみると、このlinux-serverの設定自体も、generic-hostという設定を継承していて多階層の継承関係を持つことが分かります。
ホストグループの設定 membersには、先に定義したホストを、コンマ区切りで複数列挙することができます。
サービス(監視内容)の設定 監視対象の「何を監視するか?」をサービスの設定に記述します。
通知先の設定 実際に異常を検知した際の通知先を変更しておきます。
Nagios的启动 起動前にコンフィグファイルにエラーがないかチェックを行うことがで きます。
Nagios Core 3.4.1 Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 05-11-2012 License: GPL
Website: http://www.nagios.org Reading configuration data... Read main config file okay... Processing object config file '/etc/nagios/objects/commands.cfg'... Processing object config file '/etc/nagios/objects/contacts.cfg'... Processing object config file '/etc/nagios/objects/timeperiods.cfg'... Processing object config file '/etc/nagios/objects/templates.cfg'... Processing object config file '/etc/nagios/objects/network.cfg'... Processing object config file '/etc/nagios/objects/server.cfg'... Read object config files okay...
Running pre-flight check on configuration data...
Checking services... Checked 6 services. Checking hosts... Checked 4 hosts. Checking host groups... Checked 0 host groups. 。。。。。
Total Warnings: 0 Total Errors: 0
Things look okay - No serious problems were detected during the pre-fligh 。。。。