このチュートリアルでは、Debian 9.1のソース(コードネームStretch)から最新バージョンのNagios Core(現在は4.3.4)をインストールして構成する方法を説明します。
Nagios Coreとも呼ばれるNagiosは、開発者によって積極的に保守されている無料のオープンソースネットワーク監視ツールであり、ネットワークインフラストラクチャ全体を監視するように設計されています。 Nagiosは、ルーター、スイッチ、サーバー、デスクトップ、ファイアウォールアプライアンス、IoTデバイスなど、デバイスにネットワーク接続が構成されている限り、ほぼすべてのネットワークデバイスを監視できます。 Nagiosは、ネットワーク状態を判断するためにデバイスを監視するだけでなく、ネットワークサービス、アプリケーション、またはオペレーティングシステムに関連するその他の特定のタスクを監視し、ネットワーク管理者にデバイスの可能性を通知するためにメールまたはSMSでアラートを送信するように構成できます。停止またはサービスの失敗。
- ベアメタルマシンまたは仮想プライベートサーバーにインストールされたDebian9.1。できれば、最小限のソフトウェア要件でインストールを実行する必要があります。
- 静的IPアドレスで構成されたネットワークインターフェースカード。
- rootアカウントまたはsudoを介したrootアカウント権限を持つユーザーへのアクセス。
- 適切なDNSAレコードが構成されたプライベートまたはパブリックのドメイン名。構内にDNSサーバーが構成されていない場合は、サーバーのIPアドレスを介してNagiosにアクセスできます。
ソースからNagiosのインストールを開始する前に、システムがNagiosのコンパイルとインストールに関するすべてのソフトウェア要件を満たしていることを確認してください。最初のステップで、以下のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。
apt update
apt upgrade
次のステップでは、新しいコマンドを起動して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。
apt install wget unzip zip bash-completion
N ext、次のコマンドを実行してシステムの名前を設定します:
hostnamectl set-hostname nagios.server.lan
以下のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。
hostnamectl
cat /etc/hostname
cat /etc/hosts
最後に、新しいホスト名を適用するためにシステムを再起動します。
init 6
Nagiosは、PHPサーバー側プログラミング言語やその他のCGIプログラムで記述された一部の部分を備えたWebベースの監視アプリケーションです。 Nagios PHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバーと、PHP処理ゲートウェイがシステムにインストールされて動作している必要があります。 Apache WebサーバーとPHPインタープリターを、Nagios 4を正しく実行するために必要なすべてのPHPモジュールと一緒にインストールするには、サーバーコンソールで次のコマンドを発行します。
apt install apache2 libapache2-mod-php7.0 php7.0
ApacheとPHPをインストールしたら、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。
netstat –tlpn
netstatネットワークユーティリティがDebian9システムにデフォルトでインストールされていない場合は、以下のコマンドを実行してインストールしてください。
apt install net-tools
netstatコマンドの出力を調べると、ApacheWebサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。
UFWファイアウォールアプリケーションなど、システムでファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow WWW
または
ufw allow 80/tcp
iptablesを使用する場合 訪問者がNagiosCoreWebインターフェースを閲覧できるように、ファイアウォールでポート80のインバウンドトラフィックを許可する生のルール。次のルールを追加します。
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
次に、以下のコマンドを発行して、NagiosWebアプリケーションが正しく実行されるために必要な次のApacheモジュールを有効にして適用します。
a2enmod rewrite headers cgi
systemctl restart apache2
最後に、次の図に示すように、HTTPプロトコルを介してDebianマシンのIPアドレスまたはドメイン名にアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはipa コマンド。
http://192.168.1.14
次のステップでは、PHPのタイムゾーンを確実にするために、PHPのデフォルト構成ファイルにさらにいくつかの変更を加える必要があります。 設定は正しく構成されており、システムの物理的な場所と一致しています。 /etc/php/7.0/apache2/php.iniを開きます 編集用のファイルを作成し、次の行が次のように設定されていることを確認します。
date.timezone = Europe/London
次のリンクhttp://php.net/manual/en/timezones.phpでPHPドキュメントによって提供されるタイムゾーンのリストを参照して、物理的な時間に応じてタイムゾーン変数を置き換えます。
apacheデーモンを再起動して変更を適用します。
systemctl restart apache2
必要な変更を加えたら、php infoファイルを作成し、apacheデーモンを再起動して、次のコマンドを発行して変更を適用します。
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
systemctl restart apache2
次の画像に示すように、次のURLにあるブラウザからphpinfoスクリプトファイルにアクセスして、PHPタイムゾーンが正しく構成されているかどうかを確認します。日付設定まで下にスクロールして、phpタイムゾーン設定を確認します。
http://192.168.1.14/info.php
NagiosCoreをインストール
ソースからNagiosCoreをダウンロードしてコンパイルする前に、まず、以下のコマンドを発行して、システムに次の必須パッケージをインストールしていることを確認してください。
apt install autoconf gcc libc6 make apache2-utils libgd-dev
ソースからNagiosをコンパイルするために必要なすべての依存関係とパッケージがDebianシステムにインストールされたら、Nagiosの公式ウェブサイトhttps://www.nagios.org/downloads/nagios-core/にアクセスし、最新バージョンのNagiosCore安定ソースアーカイブをダウンロードします。 wgetを発行する 次のコマンドの抜粋に示すように、ユーティリティ。
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz
Nagiosソースtarballがダウンロードされたら、次のコマンドを使用して、tarアーカイブを抽出し、抽出されたnagiosディレクトリに入ります。 lsを実行します ソースファイルを一覧表示するために、nagiosで抽出されたディレクトリ内のコマンド。
tar xzf nagios-4.3.4.tar.gz
cd nagios-4.3.4/
ls
Nagiosで抽出されたソースディレクトリ内にいる間に、以下のコマンドを発行して、ソースからNagiosコンパイルプロセスを開始します。まず、 sites-enabledを指すApacheWebサーバーのhttp構成パスでコンパイルされるようにNagiosを構成します。 ディレクトリ。
./configure --with-httpd-conf=/etc/apache2/sites-enabled
次に、以下の画像に示すように、次のコマンドを発行してNagiosをコンパイルします。
make all
次に、nagiosシステムユーザーとグループを作成し、nagiosアカウントをApacheランタイムユーザーに追加して、nagiosユーザーがWebリソースにアクセスするために必要な権限を持つようにします。
useradd nagios
usermod -a -G nagios www-data
次に、次のコマンドを発行して、Nagiosバイナリファイル、CGIスクリプト、およびHTMLファイルのインストールを開始します。以下の画像に示すように、make installコマンドの最終出力には、バイナリの場所が表示されます。
make install
次に、Nagiosデーモンsystemd initファイルをインストールし、次のコマンドを発行してシステム全体でnagiosサービスを有効にします。
make install-init
systemctl enable nagios.service
また、以下のコマンドを実行して、Nagios外部コマンドファイルをインストールして構成します。
make install-commandmode
次に、次のコマンドを実行して、Nagiosデーモンが正しく起動および動作するために必要なNagiosサンプル構成ファイルをインストールします。
make install-config
最後に、Nagios用のApacheWebサーバー構成ファイルをインストールします。これは/ etc / apacahe2 / sites-enabled /にあります。 以下のコマンドを実行して、ディレクトリを作成します。
make install-webconf
nagiosadminを作成します 次のコマンドを発行してNagiosWebツールにログインできるようにするためにApacheWebサーバーに必要な対応するパスワードを持つユーザーアカウント。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nagios Webパネルにアクセスするには、まずApache HTTPサーバーを再起動し、次のコマンドを発行してNagiosサービスを開始します。
systemctl restart apache2
systemctl start nagios
次に、ブラウザを開いてサーバーのIPアドレスまたはドメイン名またはFQDNにアクセスし、 / nagios を追加して、NagiosWebInterfaceにログインします。 以下のスクリーンショットに示すように、HTTPプロトコルを介したURLパス。 nagiosadminを使用します Nagios Webインターフェースにログインするために、このユーザーに対して以前に構成されたパスワードを持つユーザー。
Nagiosプラグインをインストールする
これで、Nagiosエンジンがシステムにインストールされました。ただし、ホストとサービスのチェックに使用されるプラグインがインストールされていないため、Nagiosソフトウェアはまだ動作していません。この動作は、以下のスクリーンショットに示すように、プラグインエラーに気付く[ホスト]メニューに移動することで確認できます。
ソースからいくつかの基本的なNagiosプラグインをコンパイルしてインストールするには、最初に次のコマンドを発行して、次のライブラリと依存関係をインストールしてください。
apt install libmcrypt-dev make libssl-dev bc gawk dc build-essential snmp libnet-snmp-perl gettext libldap2-dev smbclient fping default-libmysqlclient-dev
すべての依存関係パッケージがシステムにインストールされたら、次のアドレスhttps://github.com/nagios-plugins/nagios-plugins/releasesにアクセスしてNagiosプラグインリポジトリページに移動し、 wget 以下のコマンド例に示すように、コマンドラインユーティリティ。
wget https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
次に、圧縮されたNagiosプラグインのソースコードtarballを抽出し、次のコマンドを実行して、抽出されたnagios-pluginsディレクトリに入ります。
tar xfz release-2.2.1.tar.gz
cd nagios-plugins-release-2.2.1/
ソースからNagiosプラグインをコンパイルしてインストールするには、以下の抜粋に示すように、root権限で次のスクリプトとコマンドを実行します。
./tools/setup
./configure
make
make install
すべてのプラグインをインストールしたら、 / usr / local / nagios / libexec /でプラグインを見つけることができます。 システムパス。 lsを発行します / usr / local / nagios / libexec /のすべてのコンテンツを調べるためのコマンド ディレクトリを作成して、システムでNagiosに使用できるプラグインを確認してください。
ls /usr/local/nagios/libexec/
Nagiosエンジンがインストールされたプラグインを取得して使用するには、再起動して、次のコマンドでnagiosサービスのステータスを確認する必要があります。
systemctl restart nagios.service
systemctl status nagios.service
Nagiosプラグインが期待どおりに機能しているかどうかをテストするには、下のスクリーンショットに示すように、ブラウザを開いてサーバーのIPアドレス、FQDN、またはドメイン名にアクセスし、[ホスト]または[サービス]メニューに移動して、NagiosWebインターフェイスにログインし直します。監視対象のホストとサービスは、プラグインによってチェックされ、プラグインコマンドの終了ステータスに応じて正しい出力が表示されるはずです。表示される色は、OKの場合は緑、警告の場合は黄色、クリティカルの場合は赤です。
HTTPSプロトコルを使用して、セキュリティで保護された接続を介してNagiosエンジンのWebインターフェイスにアクセスするには、次のコマンドを発行して、ApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。
a2enmod ssl
a2ensite default-ssl.conf
次に、訪問者がブラウザからNagios Webインターフェイスにアクセスするたびに、HTTPSプロトコルに自動的にリダイレクトされるようにするには、 /etc/apache2/sites-enabled/000-default.confを開きます。 編集用のファイルを作成し、 DocumentRootの後に次の書き換えルールを追加します 以下の例に示すようなステートメント。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1
最後に、Apacheデーモンを再起動して、これまでに構成されたすべてのルールを適用し、HTTPプロトコルを介してNagiosWebインターフェースにアクセスします。
systemctl restart apache2.service
ApacheがHTTPSポートでリッスンしているかどうかを確認するには、 netstatを実行します。 次の画像に示すように、コマンドを実行して443ポートバインディングを探します。
netstat -tlpn
UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow 'WWW Full'
または
ufw allow 443/tcp
Debianシステムを保護するためにiptablesファイアウォールを実行する場合は、次のルールを追加して、ファイアウォールでポート443のインバウンドトラフィックを許可し、訪問者がNagiosCoreWebインターフェイスを参照できるようにします。
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
これで、HTTPSプロトコルを介してNagiosWebパネルに自動的にリダイレクトされるはずです。インストール時にApacheによって発行された自動的に自己署名された証明書のペアを使用しているため、ブラウザにエラー警告が表示されます。以下のスクリーンショットに示すように、ブラウザの警告を受け入れ、前に設定したクレデンシャルを使用してNagiosにログインします。
Nagiosによって監視される新しいホストを追加するには、/usr/local/nagios/etc/objects/localhost.cfgを開きます。 localhostの後に新しいデバイスを編集して追加するための構成ファイル 以下の例に示すように、定義。
define host{
use linux-server
host_name router
alias router
address 192.168.1.1
}
host_nameを置き換えます 、エイリアス およびIPアドレス それに応じて変数を変更し、Nagiosデーモンを再起動して、新しいホスト定義をロードし、変更を適用します。
systemctl restart nagios
下の画像に示すように、デバイスのステータスを確認するには、数分後にNagiosウェブインターフェースの[ホスト]メニューに移動します。
それで全部です! Debian 9のソースからNagiosエンジンを正常にインストールおよび構成しました。組織のネットワークデバイス、サーバー、またはNagiosによって監視される重要なサービスの追加を開始できます。 Nagios CoreおよびNagiosプラグインに関するその他のカスタム構成については、次のリンクのドキュメントページにアクセスしてくださいhttps://support.nagios.com/kb/category.php?id=12