GNU/Linux >> Linux の 問題 >  >> Linux

Nagios を使用して VPN アクティブ セッションと温度を監視する方法

以前、Nagios を使用して Linux および Windows サーバーを監視する方法について説明しました。この記事では、Nagios を使用してアクティブなセッションと VPN デバイスの温度を監視する方法を確認します。 nagios check_snmp プラグインを使用して、ハードウェアに関するほぼすべてを監視できます。

1. VPN デバイスのホスト、ホストグループ、およびサービスを定義するための cfg ファイルを特定します

新しい vpn.cfg ファイルを作成するか、既存の .cfg ファイルの 1 つを再利用できます。この記事では、VPN サービスとホストグループの定義を既存の switch.cfg ファイルに追加しました。以下に示すように、nagios.cfg ファイルの switch.cfg 行がコメント化されていないことを確認してください。

# grep switch.cfg /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/switch.cfg

2. switch.cfg に VPN デバイスの新しいホストグループを追加

次の ciscovpn ホストグループを /usr/local/nagios/etc/objects/switch.cfg ファイルに追加します。

define hostgroup{
hostgroup_name  ciscovpn
alias           Cisco VPN Concentrator
}

3. switch.cfg に VPN デバイスの新しいホストを追加

この例では、/usr/local/nagios/etc/objects/switch.cfg ファイルで 2 つのホストを定義しました。1 つはプライマリ用、もう 1 つはセカンダリ Cisco VPN コンセントレータ用です。それに応じてアドレス ディレクティブを VPN デバイスの ip-address に変更します。

define host{
use                     generic-host
host_name               cisco-vpn-primary
alias                   Cisco VPN Concentrator Primary
address                 192.168.1.7
check_command           check-host-alive
max_check_attempts      10
notification_interval   120
notification_period     24x7
notification_options    d,r
contact_groups          admins
hostgroups              ciscovpn
}

define host{
use                     generic-host
host_name               cisco-vpn-secondary
alias                   Cisco VPN Concentrator Secondary
address                 192.168.1.9
check_command           check-host-alive
max_check_attempts      10
notification_interval   120
notification_period     24x7
notification_options    d,r
contact_groups          admins
hostgroups              ciscovpn
}

4. switch.cfg で VPN アクティブ セッションと温度を監視する新しいサービスを追加

「Temperature」サービスと「Active VPN Sessions」サービスを /usr/local/nagios/etc/objects/switch.cfg ファイルに追加します。

define service{
use                             generic-service
hostgroup_name                  ciscovpn
service_description             Temperature
is_volatile                     0
check_period                    24x7
max_check_attempts              4
normal_check_interval           10
retry_check_interval            2
contact_groups                  admins
notification_interval           960
notification_period             24x7
check_command                   check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45
}

define service{
use                             generic-service
hostgroup_name                  ciscovpn
service_description             Active VPN Sessions
is_volatile                     0
check_period                    24x7
max_check_attempts              4
normal_check_interval           5
retry_check_interval            1
contact_groups                  admins
notification_interval           960
notification_period             24x7
check_command                   check_snmp!-l ActiveSessions -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 -w :70,:8 -c :75,:10
}

5.コマンドラインから check_snmp を検証

Check_snmp プラグインは、NET-SNMP パッケージの「snmpget」コマンドを使用します。以下に示すように、net-snmp がシステムにインストールされていることを確認します。そうでない場合は、NET-SNMP Web サイトからダウンロードしてください。

# rpm -qa | grep -i net-snmp
net-snmp-libs-5.1.2-11.el4_6.11.2
net-snmp-5.1.2-11.el4_6.11.2
net-snmp-utils-5.1.2-11.EL4.10

以下に示すように、check_snmp がコマンドラインから機能することを確認してください。

# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \
-P 2c -l Temperature -w :35,:40 -c :40,:45 \
-o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0

Temperature OK - 35 38 | iso.3.6.1.4.1.3076.2.1.2.22.1.29.0=35
                         iso.3.6.1.4.1.3076.2.1.2.22.1.33.0=38

# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \
-P 2c -l ActiveSessions -w :80,:40 -c :100,:50 \
-o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0

ActiveSessions CRITICAL - *110* 20 | iso.3.6.1.4.1.3076.2.1.2.17.1.7.0=110
                                     iso.3.6.1.4.1.3076.2.1.2.17.1.9.0=20

この例では、次のパラメータが check_snmp に渡されます:

  • -H, –hostname=ADDRESS ホスト名、IP アドレス、または UNIX ソケット (絶対パスである必要があります)
  • -P, –protocol=[1|2c|3] SNMP プロトコル バージョン
  • -l, –label=STRING プラグインからの出力のプレフィックス ラベル。すなわち、Terature または ActiveSessions
  • -w, –warning=INTEGER_RANGE(s) WARNING ステータスにならない範囲
  • -c, –critical=INTEGER_RANGE(s) CRITICALステータスにならない範囲
  • -o, –oid=OID 値を照会するオブジェクト識別子または SNMP 変数。デバイスのマニュアルを参照して、デバイスでサポートされ、利用可能なすべての oid を確認してください。 2 つ以上の oid がある場合は、カンマで区切ります。

ActiveSessions の例では、2 つの OID が監視されています。つまり、VPN LAN-2-LAN トンネル用 (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) と PPTP セッション用 (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0) です。上記の例では、VPN LAN-2-LAN アクティブ セッションがクリティカル リミットの 100 を超えています。

オブジェクト識別子 (OID) は、インターネット標準に基づくルートとブランチを持つ階層的な管理情報ベース (MIB) ツリーに配置されます。

6.構成を検証し、nagios を再起動します

nagios の設定を確認して、警告やエラーがないことを確認してください。

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0
Total Errors:   0
Things look okay - No serious problems were detected during the pre-flight check

nagios サーバーを再起動して、VPN デバイスの監視を開始します。

# /etc/rc.d/init.d/nagios stop
Stopping nagios: .done.

# /etc/rc.d/init.d/nagios start
Starting nagios: done.

以下に示すように、Nagios Web UI (http://{nagios-server}/nagios) から VPN デバイスの ActiveSessions と Temperature のステータスを確認します。


図 – VPN デバイスのステータスを示す Nagios Web UI

7.トラブルシューティング

問題: check_snmp は Linux コマンド ラインから問題なく動作しますが、Nagios Web UI には次のエラーが表示されます:

Status Information:	SNMP problem - No data received from host
CMD: /usr/bin/snmpget -t 1 -r 5 -m '' -v 1 [authpriv] 192.168.1.7:161

解決策: switch.cfg ファイル内の check_snmp プラグインの check_command 定義が正しく定義されていることを確認してください。 check_snmp コマンドの引数は、/usr/local/nagios/etc/commands.cfg の check_snmp 定義と一致する必要があります

check_command check_snmp!Temperature!.1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0!37,:40!:40,:45
[Note: This is wrong, as it is passing 4 arguments to check_snmp command
The value after the exclamation is considered as one argument. !{argument1}!{argument2}]

check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45
[Note: This is correct, as it is passing 1 argument to check_snmp command
The value after the exclamation is considered as one argument. !{argument1}]

以下に示す check_snmp コマンドの定義では、$ARG1$ 引数は 1 つだけです。したがって、switch.cfg では、check_snmp を定義する際に、上記のように引数を 1 つだけ渡す必要があります。

# 'check_snmp' command definition
define command{
command_name    check_snmp
command_line    $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}

推奨読書

これらは、最新の Nagios 3 をカバーする最高の 2 冊の本です。Nagios の詳細な理解を得るために、これらの本を両方とも読むことを強くお勧めします。


Linux
  1. Nagios4をインストールしてUbuntu20.04でサーバーを監視する方法

  2. Linux で Nagios を使用してリモート Windows マシンを監視する方法

  3. Nagios を使用してネットワーク スイッチとポートを監視する方法

  1. Redhat7LinuxシステムでCPU温度を監視する方法

  2. 「script」および「scriptreplay」コマンドを使用してLinuxターミナルセッションを記録および再生する方法

  3. vnStat を使用して Linux でネットワーク トラフィックを監視およびログに記録する方法

  1. Metricbeatを使用してシステムとアプリケーションのメトリックを収集する方法

  2. Strongswanを使用してIKEv2VPNをセットアップし、CentOS8で暗号化する方法

  3. CloudStatsを使用してLinuxサーバーを監視する方法