Nagios-quick-guide

提供:Dev Guides
移動先:案内検索

Nagios-概要

DevOpsライフサイクルは複数のステージからなる連続ループであり、連続ループはこのループの最後のステージです。 継続的な監視は、このライフサイクルの段階の1つです。 この章では、継続的な監視とは何か、Nagiosがこの目的にどのように役立つかについて詳しく学びましょう。

継続的な監視とは

運用サーバーで展開が完了すると、継続的な監視が開始されます。 それ以降、この段階ではすべての出来事を監視する責任があります。 この段階は、ビジネスの生産性にとって非常に重要です。

継続的な監視を使用することにはいくつかの利点があります-

  • すべてのサーバーとネットワークの問題を検出します。
  • 失敗の根本原因を見つけます。
  • メンテナンスコストの削減に役立ちます。
  • パフォーマンスの問題のトラブルシューティングに役立ちます。
  • 古くなる前にインフラストラクチャを更新するのに役立ちます。
  • 検出された問題を自動的に修正できます。
  • サーバー、サービス、アプリケーション、ネットワークが常に稼働していることを確認します。
  • 毎秒、完全なインフラストラクチャを監視します。

Nagiosとは

Nagiosは、ネットワーク、アプリケーション、およびサーバーを監視するオープンソースの継続的な監視ツールです。 インフラストラクチャで検出された問題を検出および修復し、エンドユーザーに影響を与える前に将来の問題を停止できます。 ITインフラストラクチャの完全なステータスとパフォーマンスを提供します。

なぜナギオス

Nagiosは、ユーザーコミュニティの大規模なグループが使用できるようにする次の機能を提供します-

  • SQL Server、Oracle、Mysql、Postgresなどのデータベースサーバーを監視できます。
  • アプリケーションレベルの情報(Apache、Postfix、LDAP、Citrixなど)を提供します。
  • アクティブな開発を提供します。
  • 巨大で活発なコミュニティからの優れたサポートがあります。
  • Nagiosは任意のオペレーティングシステムで実行されます。
  • ホストに到達できるかどうかを確認するためにpingを実行できます。

Nagiosの利点

Nagiosはユーザーに次の利点を提供します-

  • 定期的なテストをなくすのに役立ちます。
  • リストストラップがまだ「断続的」な段階にある場合、瞬時の故障を検出します。
  • パフォーマンスを犠牲にすることなく、メンテナンスコストを削減します。
  • 制御と故障の管理にタイムリーな通知を提供します。

Nagios-アーキテクチャ

この章では、Nagiosアーキテクチャについて詳しく説明します。

Nagiosアーキテクチャ

次の点は、Nagiosアーキテクチャについて注目に値します-

  • Nagiosにはサーバーエージェントアーキテクチャがあります。
  • Nagiosサーバーはホストにインストールされ、プラグインは監視対象のリモートホスト/サーバーにインストールされます。
  • Nagiosは、ローカル/リモートホスト/サーバーでプラグインを実行するために、プロセススケジューラを介して信号を送信します。
  • プラグインはデータ(CPU使用率、メモリ使用率など)を収集し、スケジューラーに送り返します。
  • 次に、プロセススケジュールが管理者に通知を送信し、Nagios GUIを更新します。

Nagios Architecture

次の図は、Nagios Server Agentアーキテクチャの詳細を示しています-

サーバーエージェントアーキテクチャ

Nagios-製品

Nagiosには、以下で詳細に説明するようにさまざまな製品が含まれています-

ナギオスXI

アプリケーション、サービス、ネットワーク、オペレーティングシステムなどの完全なITインフラストラクチャコンポーネントの監視を提供します。 インフラストラクチャとビジネスプロセスの完全なビューを提供します。 GUIは簡単にカスタマイズでき、使用する柔軟性を提供します。 このツールの標準版の価格は1995ドルで、エンタープライズ版の価格は3495ドルです。

Nagios Core

ITインフラストラクチャの監視の中核です。 Nagios XI製品も基本的にNagiosコアに基づいています。 インフラストラクチャに障害の問題がある場合は常に、管理者にアラート/通知を送信します。管理者は問題を解決するためのアクションをすばやく実行できます。 このツールは完全に無料です。

Nagios Log Server

ログデータの検索が非常に簡単で簡単になります。 高可用性セットアップにより、すべてのログデータを1つの場所に保持します。 ログデータに問題が見つかった場合は、アラートを簡単に送信できます。 ログ分析プラットフォームにより多くの電力、速度、ストレージ、および信頼性を与える数千のサーバーに拡張できます。 このツールの価格は、インスタンスの数によって異なります-1インスタンス$ 3995、2インスタンス$ 4995、3インスタンス$ 5995、4インスタンス$ 6995、10インスタンス$ 14995。

ナギオスフュージョン

この製品は、完全な監視システムの集中ビューを提供します。 Nagios Fusionを使用すると、地域ごとにセットアップ監視サーバーを個別にスキャンできます。 Nagios XIおよびNagiosコアと簡単に統合して、インフラストラクチャを完全に可視化できます。 このツールの価格は2495ドルです。

Nagios Network Analyzer

ネットワークインフラストラクチャの完全な情報を管理者に提供し、ネットワーク上の潜在的な脅威を管理者が迅速に実行できるようにします。 詳細なネットワーク分析の後、ネットワークに関する非常に詳細なデータを共有します。 このツールの価格は1995ドルです。

Nagios-インストール

この章では、UbuntuでNagiosをセットアップする手順について詳しく説明します。

Nagiosをインストールする前に、Apache、PHP、ビルドパッケージなどのいくつかのパッケージがUbuntuシステムに存在する必要があります。 したがって、それらを最初にインストールしましょう。

  • ステップ1 *-次のコマンドを実行して、必要なパッケージをインストールします-
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip
  • ステップ2 *-次に、Nagiosのユーザーとグループを作成し、Apache www-dataユーザーに追加します。
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data
  • ステップ3 *-最新のNagiosパッケージをダウンロードします。
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz
  • ステップ4 *-tarballファイルを抽出します。
tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/
  • ステップ5 *-次のコマンドを実行して、ソースからNagiosをコンパイルします。
./configure --with-nagios-group=nagios --with-command-group=nagcmd
  • ステップ6 *-次のコマンドを実行して、Nagiosファイルをビルドします。
make all
  • ステップ7 *-以下に示すコマンドを実行して、すべてのNagiosファイルをインストールします。
sudo make install
  • ステップ8 *-次のコマンドを実行して、initおよび外部コマンド構成ファイルをインストールします。
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo/usr/bin/install -c -m 644 sample-config/httpd.conf/etc/apache2/sitesavailable/
nagios.conf
  • ステップ9 *-イベントハンドラディレクトリをNagiosディレクトリにコピーします。
sudo cp -R contrib/eventhandlers//usr/local/nagios/libexec/
sudo chown -R nagios:nagios/usr/local/nagios/libexec/eventhandlers
  • ステップ10 *-Nagiosプラグインをダウンロードして抽出します。
cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/
  • ステップ11 *-以下のコマンドを使用してNagiosプラグインをインストールします。
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install
  • ステップ12 *-Nagios構成ファイルを編集して、行番号51のコメントを外します→cfg_dir =/usr/local/nagios/etc/servers
sudo gedit/usr/local/nagios/etc/nagios.cfg
  • ステップ13 *-次に、サーバーディレクトリを作成します。
sudo mkdir -p/usr/local/nagios/etc/servers
  • ステップ14 *-連絡先設定ファイルを編集します。
sudo gedit/usr/local/nagios/etc/objects/contacts.cfg

連絡先設定

  • ステップ15 *-Apacheモジュールを有効にし、ユーザーnagiosadminを構成します。
sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s/etc/apache2/sites-available/nagios.conf/etc/apache2/sites-enabled/
  • ステップ16 *-次に、ApacheとNagiosを再起動します。
service apache2 restart
service nagios start
cd/etc/init.d/
sudo cp/etc/init.d/skeleton/etc/init.d/Nagios
  • ステップ17 *-Nagiosファイルを編集します。
sudo gedit/etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON =/usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d/usr/local/nagios/etc/nagios.cfg"
PIDFILE =/usr/local/nagios/var/$NAME.lock
  • ステップ18 *-Nagiosファイルを実行可能にし、Nagiosを起動します。
sudo chmod +x/etc/init.d/nagios
service apache2 restart
service nagios start

ステップ19 *-ブラウザに移動して、URL→ *http://localhost/nagios を開きます。 ここで、ユーザー名nagiosadminでNagiosにログインし、以前に設定したパスワードを使用します。 Nagiosのログイン画面は、以下のスクリーンショットに示されています-

連絡先のスクリーンショット

すべての手順を正しく実行すると、Nagios Webインターフェイスが表示されます。 以下に示すように、Nagiosダッシュボードを見つけることができます-

Nagiosダッシュボード

Nagios-設定

前の章では、Nagiosのインストールを見てきました。 この章では、その構成を詳細に理解しましょう。

Nagiosの構成ファイルは/usr/local/nagios/etcにあります。 これらのファイルは、以下のスクリーンショットに示されています-

Nagios設定

今、各フ​​ァイルの重要性を理解しましょう-

nagios.cfg

これは、Nagiosコアのメイン構成ファイルです。 このファイルには、Nagiosのログファイルの場所、ホストとサービスの状態更新間隔、ロックファイルとstatus.datファイルが含まれています。 インスタンスが実行されているNagiosユーザーとグループは、このファイルで定義されます。 コマンド、連絡先、テンプレートなど、個々のオブジェクト構成ファイルすべてのパスがあります。

cgi.cfg

デフォルトでは、NagiosのCGI構成ファイルの名前はcgi.cfgです。 メインの設定ファイルの場所をCGIに伝えます。 CGIは、必要なその他のデータのメインおよびホスト構成ファイルを読み取ります。 すべてのユーザーとグループの情報と、それらの権利と許可が含まれています。 また、Nagiosのすべてのフロントエンドファイルのパスもあります。

resource.cfg

このファイルで$ USERx $マクロを定義できます。このマクロは、ホスト構成ファイルのコマンド定義で使用できます。 $ USERx $マクロは、ユーザー名、パスワードなどの機密情報を保存するのに役立ちます。

プラグインとイベントハンドラーへのパスを指定するのにも便利です-将来プラグインまたはイベントハンドラーを別のディレクトリに移動することにした場合、多くの変更を行う代わりに、1つまたは2つの$ USERx $マクロを更新できますコマンド定義。 リソースファイルは、MySQLなどの外部データソースの構成ディレクティブを格納するためにも使用できます。

リソース

外部データソース

オブジェクトディレクトリ内の設定ファイルは、コマンド、連絡先、ホスト、サービスなどを定義するために使用されます

commands.cfg

この構成ファイルは、ホスト、サービス、および連絡先の定義で参照できるコマンド定義の例を提供します。 これらのコマンドは、ホストとサービスを確認および監視するために使用されます。 Linuxコンソールでこれらのコマンドをローカルで実行すると、実行したコマンドの出力も取得できます。

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contacts.cfg

このファイルには、Nagiosの連絡先とグループの情報が含まれています。 デフォルトでは、1人の連絡先が既にNagios管理者に存在しています。

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email [email protected]
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

templates.cfg

この構成ファイルは、他のホスト、サービス、連絡先などによって参照されるオブジェクト定義テンプレートの例を提供します。 他の設定ファイルの定義。

timeperiods.cfg

この構成ファイルは、ホスト、サービス、連絡先、および依存関係の定義で参照できる期間定義の例を提供します。

Nagios-機能

Nagiosは、以下に示すような多数の機能を備えた監視ツールです-

  • Nagios Coreはオープンソースであるため、無料で使用できます。
  • 数千のホストとサーバーを拡張および管理できる強力な監視エンジン。
  • 完全なネットワークコンポーネントとモニタリングデータの可視性を提供する包括的なWebダッシュボード。
  • 複数のユーザーがNagiosダッシュボードにアクセスできるマルチテナント機能を備えています。
  • 複数のAPIを備えたサードパーティアプリケーションと簡単に統合できる拡張可能なアーキテクチャを備えています。
  • Nagiosには、世界中に100万人以上のユーザーがいる非常に活発で大きなコミュニティがあります。
  • 高速アラートシステム。問題が特定された直後に管理者にアラートを送信します。
  • Nagiosをサポートするために利用できる複数のプラグイン、カスタムコード化されたプラグインもNagiosで使用できます。
  • ネットワーク上で発生しているすべてを簡単に保存できる優れたログおよびデータベースシステムを備えています。
  • プロアクティブプランニング機能は、インフラストラクチャをアップグレードする時期を知るのに役立ちます。

Nagios-アプリケーション

Nagiosは、幅広いアプリケーションに適用できます。 彼らはここに与えられています-

  • ディスクスペース、システムログなどのホストリソースを監視します。
  • ネットワークリソースの監視-http、ftp、smtp、sshなど
  • ログファイルを継続的に監視して、インフラの問題を特定します。
  • windows/linux/unix/webアプリケーションとその状態を監視します。
  • Nagios Remote Plugin Executer(NRPE)は、サービスをリモートで監視できます。
  • サービスチェックを並行して実行します。
  • SSHまたはSSLトンネルは、リモート監視にも使用できます。
  • アラート/通知を送信する
  • インフラストラクチャ上の問題の電子メール、SMS、ポケットベル経由
  • ITインフラストラクチャをいつアップグレードするかを推奨します。

Nagios-ホストとサービス

Nagiosは、ITインフラストラクチャで実行されているホストとサービスを監視するために使用される最も一般的なツールです。 ホストとサービス構成は、Nagios Coreの構成要素です。

  • ホストはコンピューターのようなものです。物理デバイスでも仮想デバイスでもかまいません。
  • サービスは、ホストに関する何かをチェックするためにNagiosによって使用されるサービスです。

Nagiosのサーバーディレクトリ内にホストファイルを作成し、ホストとサービスの定義に言及することができます。 たとえば-

sudo gedit/usr/local/nagios/etc/servers/ubuntu_host.cfg

#Ubuntuホスト構成ファイル

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

上記の定義は、ubuntu_hostというホストを追加し、このホストで実行されるサービスを定義します。 Nagiosを再起動すると、このホストはNagiosによる監視を開始し、指定されたサービスが実行されます。

Nagiosには、実行中のホスト上のほとんどすべてを監視するために使用できる、さらに多くのサービスがあります。

Nagios-コマンド

コマンド定義はコマンドを定義します。 コマンドには、サービスチェック、サービス通知、サービスイベントハンドラ、ホストチェック、ホスト通知、ホストイベントハンドラが含まれます。 Nagiosのコマンド定義は、commands.cfgファイルで定義されています。

以下は、コマンドの定義のためのフォーマットです-

define command {
   command_name command_name
   command_line command_line
}

コマンド名-このディレクティブは、コマンドを識別するために使用されます。 連絡先、ホスト、およびサービスの定義は、コマンド名で参照されます。

コマンドライン-このディレクティブは、コマンドがサービスまたはホストのチェック、通知、またはイベントハンドラーに使用されるときにNagiosによって実行されるものを定義するために使用されます。

define command{
   command_name check_ssh
   command_line/usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

このコマンドは、1つのパラメーター「$ HOSTADDRESS $」でプラグイン-/usr/libl/nagios/plugins/check_sshを実行します

このチェックコマンドを使用する非常に短いホスト定義は、ここに示されているものに似ている可能性があります-

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

コマンド定義は、ホスト/サービスチェックの実行方法を示します。 また、問題が特定された場合に通知を生成し、イベントを処理する方法も定義します。 SSHが正常に動作しているかどうかを確認するコマンド、データベースが稼働中であることを確認するコマンド、ホストが生きているかどうかを確認するコマンドなど、チェックを実行するコマンドがいくつかあります。

インフラストラクチャに存在する問題をユーザーに伝えるコマンドがあります。 独自のカスタムコマンドを作成するか、Nagiosでサードパーティのコマンドを使用できます。これらはNagiosプラグインプロジェクトと同様に扱われ、区別はありません。

コマンドで引数を渡すこともできます。これにより、チェックを実行する際の柔軟性が高まります。 これは、パラメータを使用してコマンドを定義する方法です-

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

上記のコマンドのホスト定義-

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

Nagiosデーモンで定期的に処理されるコマンドファイルに追加することにより、Nagiosで外部コマンドを実行できます。

外部コマンドを使用すると、Nagiosの実行中に多くのチェックを実行できます。 いくつかのチェックを一時的に無効にしたり、一部のチェックをすぐに強制的に実行したり、通知を一時的に無効にしたりできます。 以下は、コマンドファイルに記述する必要があるNagiosの外部コマンドの構文です-

[time] command_id;command_arguments

また、ここでNagiosで使用できるすべての外部コマンドのリストを確認することもできます-https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Nagios-チェックと状態

Nagiosでホストとサービスが設定されると、ホストとサービスが想定どおりに動作しているかどうかを確認するためにチェックが使用されます。 ホストでチェックを実行する例を見てみましょう-

ホスト定義を/usr/local/nagios/etc/objectsディレクトリのhost1.cfgファイル内に配置したことを考慮してください。

cd/usr/local/nagios/etc/objects
gedit host1.cfg

これは、ホスト定義が現在どのように見えるかです-

define host {
   host_name host1
   address 10.0.0.1
}

ここで、check_intervalディレクティブを追加しましょう。 このディレクティブは、設定した数のホストのスケジュールされたチェックを実行するために使用されます。デフォルトでは数分です。 以下の定義を使用すると、ホストのチェックは3分ごとに実行されます。

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

Nagiosでは、ホストとサービスで2種類のチェックが実行されます-

  • アクティブチェック
  • パッシブチェック

アクティブチェック

アクティブチェックはNagiosプロセスによって開始され、定期的に定期的に実行されます。 Nagiosプロセス内のチェックロジックは、アクティブチェックを開始します。 リモートマシンで実行されているホストとサービスを監視するために、Nagiosはプラグインを実行し、収集する情報を伝えます。 その後、プラグインはリモートマシンで実行され、そこで必要な情報が収集され、Nagiosデーモンに送り返されます。 ホストおよびサービスで受信したステータスに応じて、適切なアクションが実行されます。

以下に示す図は、アクティブなチェックを示しています-

アクティブチェック

これらは、check_intervalおよびretry_intervalで定義されているように、定期的に実行されます。

パッシブチェックは外部プロセスによって実行され、結果は処理のためにNagiosに返されます。

パッシブチェックはここで説明されているように動作します-

外部アプリケーションは、ホスト/サービスのステータスをチェックし、結果を外部コマンドファイルに書き込みます。 Nagiosデーモンが外部コマンドファイルを読み取るとき、キュー内のすべてのパッシブチェックを読み取って送信し、後で処理します。 これらのチェックが処理されると、チェック結果の情報に応じて通知またはアラートが定期的に送信されます。

以下に示す図は、パッシブチェックを示しています-

パッシブチェック

したがって、アクティブチェックとパッシブチェックの違いは、アクティブチェックがNagiosによって実行され、パッシブチェックが外部アプリケーションによって実行されることです。

これらのチェックは、ホスト/サービスを定期的に監視できない場合に役立ちます。

Nagiosは、監視しているホストとサービスのステータスを保存して、それらが正常に動作しているかどうかを判断します。 障害がランダムに発生し、一時的なものである場合が多くあります。したがって、Nagiosは状態を使用して、ホストまたはサービスの現在のステータスを確認します。

状態には2種類あります-

  • ソフト状態
  • ハード状態

ソフト状態

ホストまたはサービスが非常に短時間停止し、そのステータスが不明または以前のものと異なる場合、ソフト状態が使用されます。 ホストまたはサービスは、ステータスが永続するまで何度もテストされます。

ハード状態

max_check_attemptsが実行され、ホストまたはサービスのステータスがまだOKではない場合、ハード状態が使用されます。 Nagiosはイベントハンドラーを実行してハード状態を処理します。

次の図は、ソフト状態とハード状態を示しています。

ソフトハード状態

Nagios-ポートとプロトコル

この章では、Nagiosが構成するポートとプロトコルについて説明します。

プロトコル

Nagiosが使用するデフォルトのプロトコルは以下のとおりです-

  • http(s)、ポート80および443-製品インターフェースは、NagiosでWebベースです。 ナギオス エージェントはhttpを使用してデータを移動できます。
  • snmp、ポート161および162-snmpはネットワーク監視の重要な部分です。 ポート161はノードにリクエストを送信するために使用され、ポスト162は結果を受信するために使用されます。
  • ssh、ポート22-NagiosはCentOSまたはRHEL Linuxでネイティブに実行するように構築されています。 管理者は、必要に応じてSSH経由でNagiosにログインし、チェックを実行できます。

ポート

一般的なNagiosプラグインで使用されるデフォルトのポートは以下のとおりです-

  • Butcheck_nt(nsclient ++)12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017、27018
  • OracleDB 1521
  • メール(SMTP)25、465、587
  • WMI 135、445/1024〜1034の範囲で追加の動的に割り当てられたポート

Nagios-アドオン/プラグイン

プラグインは、Nagiosでデータベース、オペレーティングシステム、アプリケーション、ネットワーク機器、プロトコルを監視するのに役立ちます。 プラグインは、Nagiosの機能を拡張してサーバーとホストを監視するコンパイル済みの実行可能ファイルまたはスクリプト(Perlまたは非Perl)です。 Nagiosはプラグインを実行して、サービスまたはホストのステータスを確認します。 Nagiosは、Perlプラグインを実行する組み込みPerlインタープリターをサポートしてコンパイルできます。 これがないと、Nagiosはプラグインを外部コマンドとしてフォークして実行することにより、Perlおよび非Perlプラグインを実行します。

Nagiosプラグインの種類

Nagiosには、次のプラグインが用意されています-

公式Nagiosプラグイン-50の公式Nagiosプラグインがあります。 公式のNagiosプラグインは、公式のNagiosプラグインチームによって開発および保守されています。

コミュニティプラグイン-数百のNagiosコミュニティメンバーによって開発された3,000を超えるサードパーティのNagiosプラグインがあります。

カスタムプラグイン-独自のカスタムプラグインを作成することもできます。 カスタムプラグインを記述するために従う必要がある特定のガイドラインがあります。

カスタムNagiosプラグインを作成するためのガイドライン

Nagiosでカスタムプラグインを記述している間、以下のガイドラインに従う必要があります-

  • プラグインは「-V」コマンドラインオプションを提供する必要があります(構成の変更を確認します)
  • テキストを1行だけ印刷する
  • 診断とヘルプメッセージの一部のみを出力します
  • ネットワークプラグインはDEFAULT_SOCKET_TIMEOUTを使用してタイムアウトします
  • 「-v」または「--verbose」は冗長レベルに関連しています
  • 「-t」または「--timeout」(プラグインのタイムアウト)。
  • 「-w」または「--warning」(警告しきい値)。
  • 「-c」または「--critical」(クリティカルしきい値)。 *「-H」または「--hostname」(チェックするホストの名前)

複数のNagiosプラグインが同時に実行およびチェックを実行し、それらすべてがスムーズに一緒に実行されるように、Nagiosプラグインはステータスコードに従います。 以下の表は、終了コードのステータスとその説明を示しています-

Exit Code Status Description
0 OK Working fine
1 WARNING Working fine, but needs attention
2 CRITICAL Not working Correctly
3 UNKNOWN When the plugin is unable to determine the status of the host/service

Nagiosプラグインは設定にオプションを使用します。 以下は、Nagiosプラグインで受け入れられるいくつかの重要なパラメータです-

Sr.No Option & Description
1
  • -h, --help*

これはヘルプを提供します

2

-V, --version

これにより、プラグインの正確なバージョンが出力されます

3

-v, --verbose

これにより、プラグインは何をしているのかについてより詳細な情報を提供します

4

-t, --timeout

これにより、タイムアウト(秒単位)が提供されます。この時間の後、プラグインはクリティカルステータスを報告します

5

-w, --warning

これにより、警告ステータスのプラグイン固有の制限が提供されます

6

-c, --critical

これにより、CRITICALステータスのプラグイン固有の制限が提供されます

7

-H, --hostname

これは、通信するホスト名、IPアドレス、またはUnixソケットを提供します

8

-4, --use-ipv4

これにより、ネットワーク接続にIPv4を使用できます

9

-6, --use-ipv6

これにより、ネットワーク接続にIPv6を使用できます

10

-p, --port

これは、TCPまたはUDPポートへの接続に使用されます

11

-s, — send

これは、サーバーに送信される文字列を提供します

12

-e, --expect

これは、サーバーから送り返される文字列を提供します

13

-q, --quit

これは、接続を閉じるためにサーバーに送信する文字列を提供します

Nagiosプラグインパッケージには、ホストおよびサービスがインフラストラクチャを監視するために利用できる多くのチェックがあります。 Nagiosプラグインを試して、いくつかのチェックを行いましょう。

SMTPは、電子メールの送信に使用されるプロトコルです。 Nagios標準プラグインには、SMTPのチェックを実行するためのコマンドがあります。 SMTPのコマンド定義-

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Nagiosプラグインを使用してMySQLを監視しましょう。 Nagiosは、MySQLを監視するための2つのプラグインを提供します。 最初のプラグインはmysql接続が機能しているかどうかを確認し、2番目のプラグインはSQLクエリの実行にかかる時間を計算するために使用されます。

両方のコマンド定義は次のとおりです-

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

注意-ユーザー名、パスワード、およびデータベース名は、両方のコマンドの引数として必要です。

Nagiosは、すべてのパーティションにマウントされたディスク容量をチェックするプラグインを提供します。 コマンド定義は次のとおりです

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

大部分のチェックは、標準のNagiosプラグインを介して実行できます。 しかし、それらを監視するために特別なチェックを必要とするアプリケーションがあります。その場合、アプリケーションに対してより洗練されたチェックを提供するサードパーティのNagiosプラグインを使用できます。 Nagios Exchangeからサードパーティのプラグインを使用する場合、または別のWebサイトからプラグインをダウンロードする場合は、セキュリティとライセンスの問題について知ることが重要です。

ナギオス-NRPE

NRPE(Nagios Remote Plugin Executor)のリモートマシンでチェックを実行するNagiosデーモン。 他のマシンでNagiosプラグインをリモートで実行できます。 ディスク使用量、CPU負荷などのリモートマシンメトリックを監視できます。 また、一部のWindowsエージェントアドオンを介して、リモートWindowsマシンのメトリックを確認できます。

プラグインエグゼキューター

監視する必要があるクライアントマシンにNRPEをステップごとにインストールして構成する方法を見てみましょう。

  • ステップ1 *-以下のコマンドを実行して、監視対象のリモートLinuxマシンにNRPEをインストールします。
sudo apt-get install nagios-nrpe-server nagios-plugins
  • ステップ2 *-次に、サーバーディレクトリ内にホストファイルを作成し、ホストに必要なすべての定義を配置します。
sudo gedit/usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}
  • ステップ3 *-設定ファイルの検証のために以下に示すコマンドを実行します。
sudo/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg

構成の検証

  • ステップ4 *-エラーがなければ、NRPE、Apache、Nagiosを再起動します。
service nagios-nrpe-server restart
service apache2 restart
service nagios restart
  • ステップ5 *-ブラウザを開き、Nagios Webインターフェイスに移動します。 監視する必要のあるホストがNagiosコアサービスに追加されていることがわかります。 同様に、Nagiosによって監視されるホストをさらに追加できます。

Nagios Webインターフェイス

ナギオス-Vシェル

V-Shellは、PHPで記述されたNagios Coreへの軽量なWebインターフェイスです。 インストールと使用が簡単で、Nagiosの出力に代わるものです。 VShellのフロントエンドはAngularJs上にあるため、設計はレスポンシブでモダンです。 CodeIgniterが提供するQuicksearch機能とRESTful APIを提供します。

Nagios VShellは、Nagios XIおよびNagios Core 3.xと互換性があります。 php 5.3以降、php-cli、apacheがシステムにインストールされている必要があります。 Nagios VShellのインストール方法を見てみましょう。

  • ステップ1 *-tmpディレクトリに移動し、vshell tarファイルをダウンロードします。
cd/tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

tarファイル

  • ステップ2 *-tarファイルを抽出します。
tar zxf vshell.tar.gz
  • ステップ3 *-vshellディレクトリに移動し、install.phpファイルへの実行許可を与えます。 最後に、インストールスクリプトを実行します。
cd vshell
chmod +x install.php
./install.php

インストールスクリプト

  • ステップ4 *-ブラウザでhttps://192.168.56.101/vshellに移動し、nagiosadminでログインすると、Vshellが表示されます。

nagios admin

Nagios-ケーススタディ

この章では、Nagiosの実装に成功した2つの組織のケーススタディを見てみましょう。

Nagiosを使用したBitnetix

ITコンサルティング組織のBitnetix。ネットワーキング、データセンター、監視、およびVoice over IPに取り組んでいます。 彼らの製品を通して、彼らは中小企業を大きく見せます。 彼らのソリューションは、エンゲージメントを増やし、顧客満足度を向上させることにより、顧客との関係をより良い方法で管理するのに役立ちます。 彼らはコミュニケーションのビジネスをしていると言うので、適切なメッセージを適切なタイミングで顧客に伝えることは彼らにとって非常に重要です。

Bitnetixは、電子メールマーケティングに携わっている顧客と協力していました。 以前は、動的に割り当てられ、顧客に数千のメールを配信する責任を負っていたAWSサーバーを監視していました。 彼らは以前Nagiosコアを使用していましたが、新しいNagios XIに移行し、ダウンタイムなしでシェフと統合したいと考えていました。 Nagiosコアのライブステータス設定をNagios XIの適切なチェックに移動するのは困難でした。 しかし、Nagiosでは、chefが統合されたNagios XI構成ファイルをセットアップできました。 彼らは、すべての顧客をNagiosコアからNagios XIにダウンタイムなしで移行できました。 Nagios XIは、インスタント通知を送信するためにPagerDutyと統合することもできました。

Nagiosを使用したEverWatch.gobal

EverWatch.globalは、非営利組織および中小組織を支援するIT管理およびコンサルティング組織です。 本社はニューヨーク州ロチェスターにあります。 彼らはNagiosとの仕事で数々の賞を受賞しています。

EverWatch.globalは、年間収益が10億ドルのeコマースリテールクライアントと連携していました。 彼らは、ウェブサイトを常に稼働させ、カートとチェックアウト機能を監視し、名誉am損の場合に必要なスタッフに通知を送信する責任がありました。 課題は、クライアントのサーバーがニューヨークの本社から500マイル離れた場所にあったことでした。 同じプラットフォームでの生産、ステージング、品質保証、開発を監視するために、構成は両方の領域で一意であり、類似していると想定されていました。

Nagiosの助けを借りて、彼らは機器およびネットワークオペレーションセンター用のsshファイアウォールルールを作成することができました。 また、名誉am損の発生をチェックし、誤検知を減らすこともできました。 Nagiosでイベントハンドラーを構成することにより、通知の数が大幅に減少しました。 Nagiosは、クライアントのウェブサイトの稼働時間を年間85%から年間98%に抑えることで彼らを支援しました。これは大成功でした。

「実質ドルベースで、同社は結果として追加の売り上げでほぼ125,000,000ドルを達成することができました。」EverWatch Global、Eric Loyd