ホームサポート技術情報OpenMicroServerNagiosの設定

Nagios の設定

はじめに

「OpenMicroServer への Nagios の導入について」では nagios と nagios-plugins のインストールを行いました。ここでは Nagios の設定について説明します。

ここでは nagios のバージョンは 2.11 と 2.5 とします。2.11 と 2.5 に固有な場合はそれぞれ (2.11) と (2.5) と注記します。共通な場合は何も示しません。

設定ファイル

設定ファイルのサンプルは、ディレクトリ /usr/local/nagios/etc/ にあります。バージョン 2.5 ではファイル名の末尾に `-sample’が付いています。 これらのサンプルを元に設定を行います。

設定ファイルが正しく記述できているかは以下のコマンドを実行することで確認できます。

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

Total Errors が 0 であれば正しいです。さもなければ表示されるメッセージを読んで修正します。

Total Warnings が 0 でなくとも Nagios を起動することはできます。表示されるメッセージを読んで、必要があれば修正してください。

nagios.cfg (2.11)

ファイル nagios.cfg をコピーして nagios.cfg-dist を作ります。

# cp nagios.cfg nagios.cfg-dist

変更点

参照するファイルのコメント・アウトを以下の通りはずします。

cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg

CGI コマンド・インタフェースを使えるようにします。

check_external_commands=1

フラップ検知機能を有効にします。

enable_flap_detection=1

nagios.cfg (2.5)

ファイル nagios.cfg-sample をコピーして nagios.cfg を作ります。

# cp nagios.cfg-sample nagios.cfg

変更点

設定が重複するので ファイル minimal.cfg を参照しないよう、以下の通りコメント・アウトします。

#cfg_file=/usr/local/nagios/etc/minimal.cfg

参照するファイルのコメント・アウトを以下の通りはずします。

cfg_file=/usr/local/nagios/etc/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/contacts.cfg
cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/servicesgroups.cfg

CGI コマンド・インタフェースを使えるようにします。

check_external_commands=1

フラップ検知機能を有効にします。

enable_flap_detection=1

cgi.cfg

(2.11) ファイル cgi.cfg をコピーして cgi.cfg-dist を作ります。

# cp cgi.cfg cgi.cfg-dist

(2.5) ファイル cgi.cfg-sample をコピーして cgi.cfg を作ります。

# cp cgi.cfg-sample cgi.cfg

変更点

Nagios のプロセスをチェックするために以下の通りコメント・アウトをはずします。

nagios_check_command=/usr/local/nagios/libexec/check_nagios /usr/local/nagios/var/status.dat 5 '/usr/local/nagios/bin/nagios'

コマンド htpasswd で登録した(「OpenMicroServer への Nagios の導入について」)ユーザ nagios に権限を与えるために以下の通り設定します。

authorized_for_system_information=nagios
authorized_for_configuration_information=nagios
authorized_for_system_commands=nagios
authorized_for_all_services=nagios
authorized_for_all_hosts=nagios
authorized_for_all_service_commands=nagios
authorized_for_all_host_commands=nagios

resource.cfg

(2.11) ファイル resource.cfg をコピーして resource.cfg-dist を作ります。

# cp resource.cfg-sample resource.cfg

(2.5) ファイル resource.cfg-sample をコピーして resource.cfg を作ります。

# cp resource.cfg-sample resource.cfg

変更点

ファイル services.cfg でユーザ user1 とパスワード plathome を直接に記述しないようにするため、以下の通り設定します。

$USER3$=user1
$USER4$=plathome

localhost.cfg (2.11)

ファイル localhost.cfg をコピーして localhost.cfg-dist を作ります。

変更点

contact の定義において以下の通り変更します。

contact_name                    nagios
email                           admin@example.com

contactgroupt の定義において以下の通り変更します。

members                 nagios

timeperiods.cfg (2.5)

ファイル bigger.cfg-sample の `TIMEPERIOD DEFINITIONS’ をコピーして timeperiods.cfg を作ります。

################################################################################
# TIMEPERIOD DEFINITIONS
################################################################################

# '24x7' timeperiod definition
define timeperiod{
        timeperiod_name 24x7
        alias           24 Hours A Day, 7 Days A Week
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
        }


# 'workhours' timeperiod definition
define timeperiod{
        timeperiod_name workhours
        alias           "Normal" Working Hours
        monday          09:00-17:00
        tuesday         09:00-17:00
        wednesday       09:00-17:00
        thursday        09:00-17:00
        friday          09:00-17:00
        }


# 'nonworkhours' timeperiod definition
define timeperiod{
        timeperiod_name nonworkhours
        alias           Non-Work Hours
        sunday          00:00-24:00
        monday          00:00-09:00,17:00-24:00
        tuesday         00:00-09:00,17:00-24:00
        wednesday       00:00-09:00,17:00-24:00
        thursday        00:00-09:00,17:00-24:00
        friday          00:00-09:00,17:00-24:00
        saturday        00:00-24:00
        }


# 'none' timeperiod definition
define timeperiod{
        timeperiod_name none
        alias           No Time Is A Good Time
        }

contacts.cfg (2.5)

ファイル minimal.cfg-sample の `CONTACTS’ をコピーして contacts.cfg を作ります。

異常時に送られるメールの通知先を admin@example.com とします。

###############################################################################
###############################################################################
#
# CONTACTS
#
###############################################################################
###############################################################################

# In this simple config file, a single contact will receive all alerts.
# This assumes that you have an account (or email alias) called
# "nagios-admin" on the local host.

define contact{
        contact_name                    nagios
        alias                           Nagios Admin
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-email
        host_notification_commands      host-notify-by-email
        email                           admin@example.com
        }

contactgroups.cfg (2.5)

ファイル minimal.cfg-sample の `CONTACTS GROUPS’をコピーして contactgroups.cfg を作ります。

contacts.cfg で設定した通知先名称 nagios を members に入れます。

###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################

# We only have one contact in this simple configuration file, so there is
# no need to create more than one contact group.

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagios
        }

hosts.cfg (2.11)

監視対象ホストの IP アドレスを 192.168.0.1、192.168.0.100 とします。プラグイン check_nt の監視対象ホストとするため、後者の OS は Windows (2000 など)です。

################################################################################
# HOST DEFINITIONS
################################################################################

define host{
        use                             linux-server
        host_name                       targethost
        address                         192.168.0.1
        check_command                   check-host-alive
        contact_groups                  admins
        }

define host{
        use                             linux-server
        host_name                       windows
        address                         192.168.0.100
        check_command                   check-host-alive
        contact_groups                  admins
        }

hosts.cfg (2.5)

ファイル bigger.cfg-sample の `HOST DEFINITIONS’ の generic-host の部分をコピーして hosts.cfg を作ります。

監視対象ホストの IP アドレスを 192.168.0.1、192.168.0.100 とします。プラグイン check_nt の監視対象ホストとするため、後者の OS は Windows (2000 など)です。

################################################################################
# HOST DEFINITIONS
################################################################################

# Generic host definition template
define host{
        name                            generic-host    ; The name of this host template - referenced in other host definitions, used for template recursion/resolution
        notifications_enabled           1       ; Host notifications are enabled
        event_handler_enabled           1       ; Host event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
        notification_period             24x7
        notification_options            d,u,r,f
        max_check_attempts              10
        notification_interval           480

        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }

define host{
        use                             generic-host
        host_name                       targethost
        address                         192.168.0.1
        check_command                   check-host-alive
        contact_groups                  admins
        }

define host{
        use                             generic-host
        host_name                       windows
        address                         192.168.0.100
        check_command                   check-host-alive
        contact_groups                  admins
        }

hostgroups.cfg

ファイル hosts.cfg で設定した監視対象ホスト targethost をホストグループ example の members に入れます。

define hostgroup{
        hostgroup_name                  example
        alias                           192.168.0.0/24
        members                         targethost
        }

services.cfg

(2.5)ファイル hosts.cfg の generic-host と同様に generic-service を定義します。

define service{
        name                            generic-service
        active_checks_enabled           1
        passive_checks_enabled          1
        parallelize_check               1
        obsess_over_service             1
        check_freshness                 0
        notifications_enabled           1
        event_handler_enabled           1
        flap_detection_enabled          1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        notification_period             24x7
        check_period                    24x7
        notification_options            w,u,c,r,f
        is_volatile                     1
        contact_groups                  admins
        max_check_attempts              3
        retry_check_interval            1
        normal_check_interval           3
        notification_interval           120
        register                        0
        }

追加の定義はプラグイン毎に説明します。

servicesgroups.cfg (2.5)

define servicegroup{
        servicegroup_name               PING
        alias                           PING service
        members                         targethost,PING
        }

commands.cfg (2.11)

ファイル commands.cfg をコピーして commands.cfg-dist を作ります。

# cp commands.cfg commands.cfg-dist

追加の定義はプラグイン毎に説明します。

checkcommands.cfg (2.5)

ファイル checkcommands.cfg-sample をコピーして checkcommands.cfg を作ります。

# cp checkcommands.cfg-sample checkcommands.cfg

追加の定義はプラグイン毎に説明します。

misccommands.cfg (2.5)

ファイル misccommands.cfg-sample をコピーして misccommands.cfg を作ります。

# cp misccommands.cfg-sample misccommands.cfg

変更点はありません。

監視対象サービスの設定

プラグイン毎に commands.cfg (2.11)、checkcommands.cfg (2.5) と services.cfg とでの定義をまとめます。これらの例はプラグインの動作検証に使ったものです。

services.cfg で

use                             generic-service

と記述している行はバージョン 2.5 の場合です。バージョン 2.11 の場合は

use                             local-service

と記述してください。

プラグインの使用方法は、以下の例の通り、オプション −−help を付けて実行することにより知ることができます。

# /usr/local/nagios/libexec/check_by_ssh --help

check_by_ssh

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_by_ssh
        command_line    $USER1$/check_by_ssh -l $ARG1$ -H $HOSTADDRESS$ -C $ARG2$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             BY_SSH
        check_command                   check_by_ssh!nagios!"~nagios/libexec/check_swap -w 90% -c 70%"
        }

監視対象ホスト targethost にてプラグイン check_swap を実行します。ここで、OS のユーザ nagios にパスフレーズ無しで SSH 接続できなければなりません。

check_dhcp

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_dhcp
        command_line    $USER1$/check_dhcp -s $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             DHCP
        check_command                   check_dhcp
        }

DHCP サーバが利用できるかチェックします。

check_dig

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_dig
        command_line    $USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             DIG
        check_command                   check_dig!example.com
        }

監視対象ホスト targethost のネーム・サーバに example.com を問合せます。

check_disk

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             DISK
        check_command                   check_disk!10%!5%
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのディスクのルート・パーティションの空き容量が 5% 以下なら状態 CRITICAL を、10% 以下なら状態 WARNING を返します。

check_disk_smb

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_disk_smb
        command_line    $USER1$/check_disk_smb -H $HOSTADDRESS$ -s $ARG1$ -u $USER3$ -p $USER4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             DISK_SMB
        check_command                   check_disk_smb!share
        }

監視対象ホスト targethost の Samba の共有名 share の空き容量をチェックします。Samba のユーザは $USER3$、そのパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。

check_dns

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_dns
        command_line    $USER1$/check_dns -H $ARG1$ -s $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             DNS
        check_command                   check_dns!host.example.com.
        }

監視対象ホスト targethost のネーム・サーバに対して host.example.com. を問合せます。

check_file_age

commands.cfg (2.11), checkcommands.cfg

 (2.5)
define command{
        command_name    check_file_age
        command_line    $USER1$/check_file_age -w $ARG1$ -c $ARG2$ -f $ARG3$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             FILE_AGE
        check_command                   check_file_age!240!600!/path/file
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのファイル /path/file の更新時刻が 600 秒より経過しているなら状態 CRITICAL を、240 秒より経過しているなら状態 WARNING を返します。

check_fping

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_fping
        command_line    $USER1$/check_fping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -n $ARG3$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             FPING
        check_command                   check_fping!300.0,30%!500.0,50%!3
        }

監視対象ホスト targethost へのコマンド fping(1) の応答(ICMP パケット数 3)が、RTA(Round Trip Average travel time) が 500ms 以上、パケット・ロスが 50% 以上なら状態 CRITICAL を、RTA が 300ms 以上、パケット・ロスが 30% 以上なら状態 WARNING を返します。

check_http

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_http
        command_line    $USER1$/check_http -H $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             HTTP
        check_command                   check_http
        }

監視対象ホスト targethost の HTTP サーバに接続を試みます。

check_icmp

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_icmp
        command_line    $USER1$/check_icmp $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             ICMP
        check_command                   check_icmp!targethost windows
        }

監視対象ホスト targethost と windows の PING 監視を行います。複数のホストを指定できます。

check_ifoperstatus

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_ifoperstatus
        command_line    $USER1$/check_ifoperstatus -H $HOSTADDRESS$ -C $ARG1$ -d $ARG2$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             IFOPERSTATUS
        check_command                   check_ifoperstatus!public!eth0
        }

監視対象ホスト targethost の SNMP コミュニティ public にネットワーク・インタフェース eth0 の状態を問合せます。

check_ifstatus

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_ifstatus
        command_line    $USER1$/check_ifstatus -C $ARG1$ -H $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             IFSTATUS
        check_command                   check_ifstatus!public
        }

監視対象ホスト targethost の SNMP コミュニティ public の状態をチェックします。

check_ldap

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_ldap
        command_line    $USER1$/check_ldap -H $HOSTADDRESS$ -b $ARG1$ -D $ARG2$ -P $USER4$ -3
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             LDAP
        check_command                   check_ldap!dc=example,dc=com!cn=Manager,dc=example,dc=com
        }

監視対象ホスト targethost の LDAP サーバに、プロトコル・バージョン 3、LDAP base dc=example,dc=com、LDAP bind DN cn=Manager,dc=example,dc=com で問合せます。ここで LDAP サーバのパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。

check_load

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             LOAD
        check_command                   check_local_load!15,10,5!30,25,20
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのロード・アベレージの一分間平均,五分間平均,十五分間平均がそれぞれ、30,25,20 以上なら状態 CRITICAL を, 15,10,5 以上なら状態 WARNING を返します。

check_log

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_log
        command_line    $USER1$/check_log -F $ARG1$ -O $ARG2$ -q $ARG3$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             LOG
        check_command                   check_log!/var/log/messages!/var/log/messages.old!'foo'
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのファイル /var/log/messages に文字列 foo を検索します。ファイル /var/log/messages.old は、検索後の/var/log/messages のコピーです。したがって重要なファイルを誤って指定すると /var/log/messges で上書きされてしまいます。

check_mailq

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             MAILQ
        check_command                   check_mailq!100!300
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのメール・キューに存在するメッセージ数が 300 以上なら状態 CRITICAL を、100 以上なら状態 WARNING を返します。

check_mrtg

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_mrtg
        command_line    $USER1$/check_mrtg -F $ARG1$ -a $ARG2$ -v $ARG3$ -w $ARG4$ -c $ARG5$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             MRTG
        check_command                   check_mrtg!/home/www/data/mrtg/targethost.example.com_1.log!AVG!1!131072!262144
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストの MRTG のログ・ファイル /home/www/data/mrtg/targethost.example.com_1.log に基づいて、受信の平均値が 2Mbps より多ければ状態 CRITICAL を、1Mbps より多ければ状態 WARNING を返します。

check_mrtgtraf

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_mrtgtraf
        command_line    $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             MRTGTRAF
        check_command                   check_mrtgtraf!/home/www/data/mrtg/targethost.example.com_1.log!AVG!131072,131072!262144,262144
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストの MRTG のログ・ファイル /home/www/data/mrtg/targethost.example.com_1.log に基づいて、受信,送信の平均値が 2Mbps より多ければ状態 CRITICAL を、1Mbps より多ければ状態 WARNING を返します。

check_mysql

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_mysql
        command_line    $USER1$/check_mysql -d $ARG1$ -H $HOSTADDRESS$ -u $ARG2$ -p $USER4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             MYSQL
        check_command                   check_mysql!nagios!nagios
        }

監視対象ホスト targethost の MySQL サーバのデータベース nagios に MySQL ユーザ nagios で接続します。ここで MySQL ユーザ nagios のパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。

check_mysql_query

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_mysql_query
        command_line    $USER1$/check_mysql_query -q $ARG1$ -d $ARG2$ -H $HOSTADDRESS$ -u $ARG3$ -p $USER4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             MYSQL_QUERY
        check_command                   check_mysql_query!'SELECT * FROM plugins'!nagios!nagios
        }

監視対象ホスト targethost の MySQL サーバのデータベース nagios に MySQL ユーザ nagios で接続し、テーブル plugins に対して `SELECT * FROM plugins’ と問合せます。ここで MySQL ユーザ nagios のパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。

MySQL からの返り値は数値でなければなりません。

check_nagios

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_nagios
        command_line    $USER1$/check_nagios -e $ARG1$ -F /usr/local/nagios/var/nagios.log -C /usr/local/nagios/bin/nagios
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             NAGIOS
        check_command                   check_nagios!5
        }

Nagios サーバの nagios のプロセスをチェックします。

check_nt

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -v $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       windows
        service_description             NT
        check_command                   check_nt!CLIENTVERSION
        }

監視対象ホスト windows (Windows PC) の NSClient サービスに CLIENTVERSION の値を問合せます。

check_ntp

ccommands.cfg (2.11), heckcommands.cfg (2.5)

define command{
        command_name    check_ntp
        command_line    $USER1$/check_ntp -H $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             NTP
        check_command                   check_ntp
        }

監視対象ホスト targethost に対してコマンド ntpdate(8) を実行します。

check_pgsql

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_pgsql
        command_line    $USER1$/check_pgsql -H $HOSTADDRESS$ -d $ARG1$ -l $ARG2$ -p $USER4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             PGSQL
        check_command                   check_pgsql!nagios!postgres
        }

監視対象ホスト targethost の PostgreSQL サーバのデータベース nagios に PostgreSQL ユーザ postgres で接続します。ここで PostgreSQL ユーザ postgres のパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。

check_ping

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_ping
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p $ARG3$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             PING
        check_command                   check_ping!300.0,30%!500.0,50%!3
        }

監視対象ホスト targethost へのコマンド ping(8) の応答(ICMP パケット数 3)が、RTA(round trip average travel time) が 500ms 以上、パケット・ロスが 50% 以上なら状態 CRITICAL を、RTA が 300ms 以上、パケット・ロスが 30% 以上なら状態 WARNING を返します。

check_procs

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             PROCS
        check_command                   check_local_procs!10!20!Z
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストの Zombie プロセス数が 20 より多ければ状態 CRITICAL を、10 より多ければ状態 WARNING を返します。

check_radius

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_radius
        command_line    /usr/bin/sudo $USER1$/check_radius -H $HOSTADDRESS$ -F $ARG1$ -u $USER3$ -p $USER4$ -P 1812 -t $ARG2$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             RADIUS
        check_command                   check_radius!/usr/local/etc/radiusclient/radiusclient.conf!10
        }

監視対象ホスト targethost の RADIUS サーバ(ポート番号 1812)に接続します(タイムアウト 10 秒)。ここで、ユーザは $USER3$、そのパスワードは $USER4$ として参照され、それらは resources.cfg で設定されています。radiusclient の設定ファイルは /usr/local/etc/radiusclient/radiusclient.conf です。

sudo(8) の設定: /etc/sudoers

nagios  ALL=(root) NOPASSWD: /usr/local/nagios/libexec/check_radius

check_rpc

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_rpc
        command_line    $USER1$/check_rpc -H $HOSTADDRESS$ -C $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             RPC
        check_command                   check_rpc!portmap
        }

監視対象ホスト targethost で portmap が動作しているかチェックします。

check_smtp

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             SMTP
        check_command                   check_smtp
        }

監視対象ホスト targethost に SMTP 接続を試みます。

check_snmp

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_snmp
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o $ARG2$ -l $ARG3$ -u $ARG4$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             SNMP
        check_command                   check_snmp!public!.1.3.6.1.4.1.2021.11.9.0,.1.3.6.1.4.1.2021.11.10.0,.1.3.6.1.4.1.2021.11.11.0!'CPU usage (user system idle)'!'%,%,%'
        }

監視対象ホスト targethost の SNMT コミュニティ public に CPU 使用率を問合せます。

check_ssh

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_ssh
        command_line    $USER1$/check_ssh -H $HOSTADDRESS$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             SSH
        check_command                   check_ssh
        }

監視対象ホスト targethost に SSH 接続を試みます。

check_swap

commands.cfg (2.11), checkcommands.cfg (2.5)

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

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             SWAP
        check_command                   check_swap!50%!30%
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストの空きスワップ領域が 30% 以下なら状態 CRITICAL を、50% 以下なら状態 WARNING を返します。

check_tcp

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_tcp
        command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             TCP
        check_command                   check_tcp!873
        }

監視対象ホスト targethost のポート番号 873 に TCP 接続します。

check_udp

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_udp
        command_line    $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             UDP
        check_command                   check_udp!873
        }

監視対象ホスト targethost のポート番号 873 に UDP 接続します。

check_users

commands.cfg (2.11), checkcommands.cfg (2.5)

define command{
        command_name    check_local_users
        command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$
        }

services.cfg

define service{
        use                             generic-service
        host_name                       targethost
        service_description             USERS
        check_command                   check_local_users!10!30
        }

プラグイン check_by_ssh や NRPE 経由で監視対象とするホストのログインしているユーザ数が 30 以上なら状態 CRITICAL を、10 以上 なら状態 WARNING を返します。

ページの先頭へ戻る