nagios-pluginsには、DHCPサーバを監視するためのプラグインがあります。
このプラグインは、HDCPサーバに問い合わせをするためにroot権限が必要です。
Nagiosに組み込み監視するには、sudoと組み合わせる必要があります。
動作確認
Debian/Ubuntuの場合、プラグインは、下記にあります。
$ cat /etc/nagios-plugins/config/dhcp.cfg # note: these plugins require root privilege. see README.Debian for # more information on how it is recommended that you do this. # 'check_dhcp' command definition define command{ command_name check_dhcp command_line /usr/lib/nagios/plugins/check_dhcp -s $HOSTADDRESS$ } # 'check_dhcp_interface' command definition define command{ command_name check_dhcp_interface command_line /usr/lib/nagios/plugins/check_dhcp -s $HOSTADDRESS$ -i $ARG1$ }
プラグインを実行するとroot権限が必要なことが分かります。
$ /usr/lib/nagios/plugins/check_dhcp Error: Could not bind socket to interface eth0. Check your privileges... $ sudo /usr/lib/nagios/plugins/check_dhcp OK: Received 1 DHCPOFFER(s), max lease time = 14400 sec. $
シェルを作る
nagiosがプラグインを実行するときには、root権限はありません。
プラグインを呼び出すときにroot権限を得るために次のようなシェルを準備します。
$ cat check_dhcp.sh #! /bin/sh /usr/bin/sudo /usr/lib/nagios/plugins/check_dhcp $
sudoの設定
visudoコマンドを実行して作成したシェルとプラグインをパスワードなしでroot権限で実行できるように設定します。
$ sudo visudo ... ここで/etc/sudoersファイルを編集 ... $ sudo grep nagios /etc/sudoers nagios ALL=(root) NOPASSWD:/etc/nagios2/check_dhcp.sh nagios ALL=(root) NOPASSWD:/usr/lib/nagios/plugins/check_dhcp $
nagiosの設定
作成したシェルをnagiosに登録します。
$ cat conf.d/commands.cfg define command { command_name check_dhcp_free command_line /etc/nagios2/check_dhcp.sh } $
次にサービスを登録します。
$ hg diff diff -r 30c2c90deb5b conf.d/services.cfg --- a/conf.d/services.cfg Tue Sep 29 22:19:27 2009 +0900 +++ b/conf.d/services.cfg Tue Sep 29 22:27:10 2009 +0900 @@ -1,3 +1,11 @@ define service { +define service { + host_name gateway + service_description DHCP + check_command check_dhcp_free + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} +
nagiosの再起動
いつもの手順で設定ファイルのチェックと再起動をします。
$ sudo nagios2 c/nagios2/nagios.cfg Nagios 2.6 Copyright (c) 1999-2006 Ethan Galstad (http://www.nagios.org) Last Modified: 11-27-2006 License: GPL Reading configuration data... Running pre-flight check on configuration data... Checking services... Checked 12 services. Checking hosts... Checked 4 hosts. Checking host groups... Checked 11 host groups. Checking service groups... Checked 0 service groups. Checking contacts... Checked 1 contacts. Checking contact groups... Checked 1 contact groups. Checking service escalations... Checked 0 service escalations. Checking service dependencies... Checked 0 service dependencies. Checking host escalations... Checked 0 host escalations. Checking host dependencies... Checked 0 host dependencies. Checking commands... Checked 121 commands. Checking time periods... Checked 5 time periods. Checking extended host info definitions... Checked 3 extended host info definitions. Checking extended service info definitions... Checked 0 extended service info definitions. Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check $ sudo /etc/init.d/nagios2 restart Restarting nagios2 monitoring daemon: nagios2. $