Nagios-クイックガイド
DevOpsライフサイクルはいくつかの段階の連続ループであり、継続的な監視はこのループの最後の段階です。継続的な監視は、このライフサイクルの段階の1つです。この章では、継続的な監視とは何か、そしてNagiosがこの目的にどのように役立つかについて詳しく学びましょう。
継続的な監視とは
継続的な監視は、運用サーバーでの展開が完了すると開始されます。それ以降、この段階では、発生しているすべてを監視する責任があります。この段階は、ビジネスの生産性にとって非常に重要です。
継続的な監視を使用することにはいくつかの利点があります-
- サーバーとネットワークのすべての問題を検出します。
- 失敗の根本原因を見つけます。
- メンテナンスコストの削減に役立ちます。
- パフォーマンスの問題のトラブルシューティングに役立ちます。
- インフラストラクチャが古くなる前に更新するのに役立ちます。
- 検出されると、問題を自動的に修正できます。
- サーバー、サービス、アプリケーション、ネットワークが常に稼働していることを確認します。
- 完全なインフラストラクチャを毎秒監視します。
Nagiosとは
Nagiosは、ネットワーク、アプリケーション、サーバーを監視するオープンソースの継続的な監視ツールです。インフラストラクチャで検出された問題を見つけて修復し、エンドユーザーに影響を与える前に将来の問題を停止できます。ITインフラストラクチャとそのパフォーマンスの完全なステータスを提供します。
Nagiosが選ばれる理由
Nagiosは、ユーザーコミュニティの大規模なグループが使用できるようにする次の機能を提供します-
- SQL Server、Oracle、Mysql、Postgresなどのデータベースサーバーを監視できます
- アプリケーションレベルの情報(Apache、Postfix、LDAP、Citrixなど)を提供します。
- アクティブな開発を提供します。
- 巨大なアクティブコミュニティからの優れたサポートがあります。
- Nagiosはどのオペレーティングシステムでも動作します。
- ホストが到達可能かどうかを確認するためにpingを実行できます。
Nagiosの利点
Nagiosはユーザーに次の利点を提供します-
- 定期的なテストを取り除くのに役立ちます。
- リストストラップがまだ「断続的」な段階にあるときに、一瞬の障害を検出します。
- パフォーマンスを犠牲にすることなく、メンテナンスコストを削減します。
- それは、制御と故障の管理にタイムリーな通知を提供します。
この章では、Nagiosアーキテクチャについて詳しく説明します。
Nagiosアーキテクチャ
Nagiosアーキテクチャについて注目すべき点は次のとおりです-
Nagiosにはサーバーエージェントアーキテクチャがあります。
Nagiosサーバーはホストにインストールされ、プラグインは監視対象のリモートホスト/サーバーにインストールされます。
Nagiosは、プロセススケジューラを介してシグナルを送信し、ローカル/リモートホスト/サーバーでプラグインを実行します。
プラグインはデータ(CPU使用率、メモリ使用率など)を収集し、スケジューラーに送り返します。
次に、プロセススケジュールが管理者に通知を送信し、NagiosGUIを更新します。
次の図は、Nagiosサーバーエージェントアーキテクチャの詳細を示しています-
Nagiosには、以下で詳細に説明するさまざまな製品が含まれています-
Nagios XI
アプリケーション、サービス、ネットワーク、オペレーティングシステムなどの完全なITインフラストラクチャコンポーネントの監視を提供します。インフラストラクチャとビジネスプロセスの完全なビューを提供します。GUIは簡単にカスタマイズできるため、使用する柔軟性が得られます。このツールの標準版の価格は1995ドル、エンタープライズ版の価格は3495ドルです。
Nagios Core
これは、ITインフラストラクチャの監視の中核です。Nagios XI製品も、基本的にNagiosコアに基づいています。インフラストラクチャに障害の問題がある場合は常に、問題を解決するためのアクションを迅速に実行できる管理者にアラート/通知を送信します。このツールは完全に無料です。
Nagiosログサーバー
ログデータの検索が非常にシンプルで簡単になります。高可用性設定により、すべてのログデータを1か所に保持します。ログデータに問題が見つかった場合、アラートを簡単に送信できます。数千のサーバーに拡張できるため、ログ分析プラットフォームの電力、速度、ストレージ、信頼性が向上します。このツールの価格は、インスタンスの数によって異なります-1インスタンス$ 3995、2インスタンス$ 4995、3インスタンス$ 5995、4インスタンス$ 6995、10インスタンス$ 14995。
Nagios Fusion
この製品は、完全な監視システムの集中ビューを提供します。Nagios Fusionを使用すると、個別の地域の個別の監視サーバーをスキャンしてセットアップできます。Nagios XIおよびNagiosコアと簡単に統合して、インフラストラクチャの完全な可視性を提供できます。このツールの価格は2495ドルです。
Nagiosネットワークアナライザ
管理者が迅速なアクションを実行できるように、ネットワークインフラストラクチャの完全な情報とネットワーク上の潜在的な脅威を管理者に提供します。詳細なネットワーク分析の後、ネットワークに関する非常に詳細なデータを共有します。このツールの価格は1995ドルです。
この章では、UbuntuでNagiosをセットアップする手順について詳しく説明します。
Nagiosをインストールする前に、Apache、PHP、ビルドパッケージなどのいくつかのパッケージがUbuntuシステムに存在している必要があります。したがって、最初にそれらをインストールしましょう。
Step 1 −次のコマンドを実行して、事前に必要なパッケージをインストールします−
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip
Step 2 −次に、Nagiosのユーザーとグループを作成し、Apachewww-dataユーザーに追加します。
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data
Step 3 −最新のNagiosパッケージをダウンロードします。
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz
Step 4 −tarballファイルを抽出します。
tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/
Step 5 −次のコマンドを実行して、ソースからNagiosをコンパイルします。
./configure --with-nagios-group=nagios --with-command-group=nagcmd
Step 6 −次のコマンドを実行して、Nagiosファイルをビルドします。
make all
Step 7 −以下に示すコマンドを実行して、すべてのNagiosファイルをインストールします。
sudo make install
Step 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
Step 9 −イベントハンドラディレクトリをNagiosディレクトリにコピーします。
sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
Step 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/
Step 11 −以下のコマンドを使用してNagiosプラグインをインストールします。
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install
Step 12 − Nagios構成ファイルを編集し、行番号51のコメントを解除します→cfg_dir = / usr / local / nagios / etc / servers
sudo gedit /usr/local/nagios/etc/nagios.cfg
Step 13 −次に、サーバーディレクトリを作成します。
sudo mkdir -p /usr/local/nagios/etc/servers
Step 14 −連絡先設定ファイルを編集します。
sudo gedit /usr/local/nagios/etc/objects/contacts.cfg
Step 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/
Step 16 −ここで、ApacheとNagiosを再起動します。
service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios
Step 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
Step 18 − Nagiosファイルを実行可能にして、Nagiosを起動します。
sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start
Step 19 −次に、ブラウザに移動してURLを開きます→ http://localhost/nagios。次に、ユーザー名nagiosadminでNagiosにログインし、前に設定したパスワードを使用します。Nagiosのログイン画面は以下のスクリーンショットのようになります-
すべての手順を正しく実行すると、NagiosWebインターフェイスが表示されます。以下に示すように、Nagiosダッシュボードを見つけることができます-
前の章では、Nagiosのインストールを見てきました。この章では、その構成について詳しく理解しましょう。
Nagiosの設定ファイルは/ usr / local / nagios / etcにあります。これらのファイルは、以下のスクリーンショットに示されています-
ここで、各ファイルの重要性を理解しましょう-
nagios.cfg
これはNagiosコアのメイン設定ファイルです。このファイルには、Nagiosのログファイルの場所、ホストとサービスの状態の更新間隔、ロックファイル、status.datファイルが含まれています。インスタンスが実行されているNagiosユーザーとグループは、このファイルで定義されています。コマンド、連絡先、テンプレートなど、すべての個別のオブジェクト構成ファイルのパスがあります。
cgi.cfg
デフォルトでは、NagiosのCGI構成ファイルの名前はcgi.cfgです。これは、メイン構成ファイルの場所をCGIに通知します。CGIは、必要になる可能性のある他のデータのメインおよびホスト構成ファイルを読み取ります。これには、すべてのユーザーとグループの情報、およびそれらの権限と権限が含まれています。Nagiosのすべてのフロントエンドファイルへのパスもあります。
resource.cfg
このファイルで$ USERx $マクロを定義できます。このマクロは、ホスト構成ファイルのコマンド定義で使用できます。$ USERx $マクロは、ユーザー名、パスワードなどの機密情報を保存するのに役立ちます。
また、プラグインとイベントハンドラーへのパスを指定する場合にも便利です。将来、プラグインまたはイベントハンドラーを別のディレクトリに移動する場合は、多くの変更を行う代わりに、1つまたは2つの$ USERx $マクロを更新できます。コマンド定義。リソースファイルは、MySQLなどの外部データソースの構成ディレクティブを格納するためにも使用できます。
オブジェクトディレクトリ内の構成ファイルは、コマンド、連絡先、ホスト、サービスなどを定義するために使用されます。
コマンド.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 Coreはオープンソースであるため、無料で使用できます。
数千のホストとサーバーを拡張および管理できる強力な監視エンジン。
完全なネットワークコンポーネントと監視データの可視性を提供する包括的なWebダッシュボード。
複数のユーザーがNagiosダッシュボードにアクセスできるマルチテナント機能があります。
複数のAPIを備えたサードパーティアプリケーションと簡単に統合できる拡張可能なアーキテクチャを備えています。
Nagiosには非常に活発で大きなコミュニティがあり、世界中に100万人以上のユーザーがいます。
高速アラートシステム。問題が特定された直後に管理者にアラートを送信します。
Nagiosをサポートするために利用可能な複数のプラグイン、カスタムコード化されたプラグインもNagiosで使用できます。
それは簡単にネットワーク上で起こっているすべてを保存する良いログとデータベースシステムを持っています。
プロアクティブな計画機能は、インフラストラクチャをアップグレードする時期を知るのに役立ちます。
Nagiosは幅広いアプリケーションに適用できます。それらはここに与えられます-
ディスク容量、システムログなどのホストリソースを監視します。
ネットワークリソースの監視– http、ftp、smtp、sshなど。
ログファイルを継続的に監視して、インフラの問題を特定します。
Windows / linux / unix / webアプリケーションとその状態を監視します。
Nagios Remote Plugin Executer(NRPE)は、サービスをリモートで監視できます。
サービスチェックを並行して実行します。
SSHまたはSSLトンネルは、リモート監視にも使用できます。
アラート/通知を送信する
電子メール、SMS、インフラストラクチャの問題のポケットベルを介して
ITインフラストラクチャをいつアップグレードするかを推奨します。
Nagiosは、ITインフラストラクチャで実行されているホストとサービスを監視するために使用される最も人気のあるツールです。ホストとサービス構成は、NagiosCoreの構成要素です。
ホストはコンピューターのようなものです。物理デバイスでも仮想デバイスでもかまいません。
サービスは、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のコマンド定義は、commands.cfgファイルで定義されています。
コマンドを定義するためのフォーマットは次のとおりです-
define command {
command_name command_name
command_line command_line
}
Command name−このディレクティブは、コマンドを識別するために使用されます。連絡先、ホスト、およびサービスの定義は、コマンド名によって参照されます。
Command line −このディレクティブは、コマンドがサービスまたはホストのチェック、通知、またはイベントハンドラーに使用されるときにNagiosによって実行されるものを定義するために使用されます。
例
define command{
command_name check_ssh
command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}
このコマンドはプラグインを実行します-/ usr / libl / nagios / plugins / check_ssh 1つのパラメーター: '$ HOSTADDRESS $'
このチェックコマンドを使用する非常に短いホスト定義は、ここに示すものと同様である可能性があります。
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でホストとサービスを構成すると、チェックを使用して、ホストとサービスが想定どおりに機能しているかどうかを確認します。ホストでチェックを実行する例を見てみましょう-
/ 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が使用するデフォルトのプロトコルは、以下のとおりです。
http(s)、ポート80および443-製品インターフェースはNagiosでWebベースです。Nagiosエージェントはhttpを使用してデータを移動できます。
snmp、ポート161および162-snmpはネットワーク監視の重要な部分です。ポート161はノードに要求を送信するために使用され、ポスト162は結果を受信するために使用されます。
ssh、ポート22-Nagiosは、CentOSまたはRHELLinuxでネイティブに実行するように構築されています。管理者は、SSHを介してNagiosにログインし、チェックを実行したいと思うときはいつでもログインできます。
ポート
一般的なNagiosプラグインで使用されるデフォルトのポートは、以下のとおりです。
- Butcheck_nt(nsclient ++)12489
- NRPE 5666
- NSCA 5667
- NCPA 5693
- MSSQL 1433
- MySQL 3306
- PostgreSQL 5432
- MongoDB 27017、27018
- OracleDB 1521
- Eメール(SMTP)25、465、587
- WMI 135、445 / 1024-1034の範囲で動的に割り当てられた追加のポート
プラグインは、データベース、オペレーティングシステム、アプリケーション、ネットワーク機器、プロトコルをNagiosで監視するのに役立ちます。プラグインは、サーバーとホストを監視するためにNagios機能を拡張するコンパイル済みの実行可能ファイルまたはスクリプト(Perlまたは非Perl)です。Nagiosはプラグインを実行して、サービスまたはホストのステータスを確認します。Nagiosは、Perlプラグインを実行するための組み込みPerlインタープリターをサポートしてコンパイルできます。それがないと、Nagiosはプラグインを外部コマンドとしてフォークして実行することにより、Perlおよび非Perlプラグインを実行します。
Nagiosプラグインの種類
Nagiosには次のプラグインがあります-
Official Nagios Plugins−50の公式Nagiosプラグインがあります。公式のNagiosプラグインは、公式のNagiosプラグインチームによって開発および保守されています。
Community Plugins −数百人のNagiosコミュニティメンバーによって開発された3,000を超えるサードパーティのNagiosプラグインがあります。
Custom Plugins−独自のカスタムプラグインを作成することもできます。カスタムプラグインを作成するために従わなければならない特定のガイドラインがあります。
カスタムNagiosプラグインを作成するためのガイドライン
Nagiosでカスタムプラグインを作成するときは、以下のガイドラインに従う必要があります-
- プラグインは「-V」コマンドラインオプションを提供する必要があります(構成の変更を確認してください)
- 1行のテキストのみを印刷する
- 診断とヘルプメッセージの一部のみを印刷します
- ネットワークプラグインはDEFAULT_SOCKET_TIMEOUTを使用してタイムアウトします
- 「-v」または「--verbose」は詳細レベルに関連しています
- 「-t」または「--timeout」(プラグインタイムアウト);
- 「-w」または「--warning」(警告しきい値)。
- 「-c」または「--critical」(クリティカルしきい値);
- 「-H」または「--hostname」(チェックするホストの名前)
複数のNagiosプラグインが同時に実行され、チェックが実行されます。それらすべてがスムーズに一緒に実行されるように、Nagiosプラグインはステータスコードに従います。以下の表は、終了コードのステータスとその説明を示しています。
終了コード | 状態 | 説明 |
---|---|---|
0 | OK | 正常に動作しています |
1 | 警告 | 正常に動作していますが、注意が必要です |
2 | クリティカル | 正しく機能しない |
3 | わからない | プラグインがホスト/サービスのステータスを判別できない場合 |
Nagiosプラグインは、構成にオプションを使用します。以下は、Nagiosプラグインによって受け入れられるいくつかの重要なパラメーターです-
シニア番号 | オプションと説明 |
---|---|
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$
}
Note −両方のコマンドの引数として、ユーザー名、パスワード、およびデータベース名が必要です。
Nagiosは、すべてのパーティションにマウントされているディスクスペースをチェックするプラグインを提供しています。コマンドの定義は次のとおりです。
define command {
command_name check_partition
command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}
チェックの大部分は、標準のNagiosプラグインを介して実行できます。ただし、それらを監視するために特別なチェックを必要とするアプリケーションがあります。その場合、アプリケーションでより高度なチェックを提供するサードパーティのNagiosプラグインを使用できます。Nagiosエクスチェンジからサードパーティのプラグインを使用している場合、または別のWebサイトからプラグインをダウンロードしている場合は、セキュリティとライセンスの問題について知っておくことが重要です。
NRPE(Nagios Remote Plugin Executor)のリモートマシンでチェックを実行するNagiosデーモン。これにより、他のマシンでNagiosプラグインをリモートで実行できます。ディスク使用量、CPU負荷などのリモートマシンのメトリックを監視できます。また、一部のWindowsエージェントアドオンを介してリモートWindowsマシンのメトリックを確認することもできます。
監視が必要なクライアントマシンにNRPEを段階的にインストールして構成する方法を見てみましょう。
Step 1 −以下のコマンドを実行して、監視対象のリモートLinuxマシンにNRPEをインストールします。
sudo apt-get install nagios-nrpe-server nagios-plugins
Step 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
}
Step 3 −構成ファイルの検証のために、以下に示すコマンドを実行します。
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Step 4 −エラーがない場合は、NRPE、Apache、およびNagiosを再起動します。
service nagios-nrpe-server restart
service apache2 restart
service nagios restart
Step 5−ブラウザを開き、NagiosWebインターフェイスに移動します。監視が必要なホストがNagiosコアサービスに追加されていることがわかります。同様に、Nagiosによって監視されるホストをさらに追加できます。
V-Shellは、PHPで記述されたNagiosCoreへの軽量Webインターフェイスです。インストールと使用は簡単で、Nagios出力の代わりになります。VShellのフロントエンドはAngularJsにあるため、デザインは応答性が高く、モダンです。これは、CodeIgniterを利用したQuicksearch機能とRESTfulAPIを提供します。
Nagios VShellは、NagiosXIおよびNagiosCore3.xと互換性があります。php 5.3以降、php-cliおよびapacheがシステムにインストールされている必要があります。NagiosVShellのインストール方法を見てみましょう。
Step 1 − tmpディレクトリに移動し、vshelltarファイルをダウンロードします。
cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz
Step 2 −tarファイルを抽出します。
tar zxf vshell.tar.gz
Step 3− vshellディレクトリに移動し、install.phpファイルへの実行可能権限を付与します。最後に、インストールスクリプトを実行します。
cd vshell
chmod +x install.php
./install.php
Step 4 −次に移動しますhttps://192.168.56.101/vshell ブラウザでnagiosadminでログインすると、Vshellが表示されます。
この章では、Nagiosの実装に成功した2つの組織のケーススタディを見てみましょう。
Nagiosを使用したBitnetix
ネットワーキング、データセンター、モニタリング、Voice overIPを専門とするITコンサルティング組織のBitnetix。それらの提供を通じて、彼らは中小企業を大きく見せます。彼らのソリューションは、より多くのエンゲージメントを高め、顧客の満足度を向上させることにより、より良い方法で顧客関係を管理するのに役立ちます。彼らは彼らがコミュニケーションのビジネスをしていると言います、それ故に彼らの顧客に適切な時に適切なメッセージを伝えることは彼らにとって非常に重要です。
Bitnetixは、Eメールマーケティングに熱中している顧客と協力していました。以前は、動的に割り当てられ、何千ものメールを顧客に配信する責任があるAWSサーバーを監視していました。彼らは以前はNagiosコアを使用していましたが、新しいNagios XIに移行し、ダウンタイムなしでシェフと統合したいと考えていました。Nagiosコアのライブステータス構成をNagiosXIの適切なチェックに移行する際に課題がありました。しかし、Nagiosを使用すると、シェフが統合されたNagiosXI構成ファイルをセットアップすることができました。彼らはすべての顧客をNagiosコアからNagiosXIにダウンタイムなしで移動させることができました。Nagios XIは、即時通知を送信するためにPagerDutyと統合することもできました。
Nagiosを使用したEverWatch.gobal
EverWatch.globalは、非営利および中小規模の組織を支援するIT管理およびコンサルティング組織です。本社はニューヨーク州ロチェスターにあります。彼らはNagiosとの仕事で数々の賞を受賞しています。
EverWatch.globalは、年間収益が10億ドルのeコマース小売クライアントと協力していました。彼らは、ウェブサイトを常に稼働させ続け、カートとチェックアウト機能を監視し、名誉毀損の場合に必要なスタッフに通知を送信する責任がありました。課題は、クライアントのサーバーがニューヨークの本社から500マイル離れた場所にあることでした。同じプラットフォームでの生産、ステージング、品質保証、および開発を監視するために、構成は両方の領域で一意で類似していると想定されていました。
Nagiosの助けを借りて、彼らは機器とネットワークオペレーションセンターのsshファイアウォールルールを作成することができました。また、名誉毀損の発生をチェックし、誤検知を減らすことができました。Nagiosでイベントハンドラーを構成することにより、通知の数が大幅に減少しました。Nagiosは、クライアントのWebサイトの稼働時間を年間85%から年間98%に維持することで彼らを支援し、これは大成功でした。
「その結果、実質ドルベースで、同社は約1億2500万ドルの追加売上を達成することができました。」エリックロイド、CEOEverWatchグローバル。