性能統計グラフ追加(Nagios+PNP4Nagios)〜CentOS7〜

最終更新日: 2016.12.21

<<トップページ <<新着情報 <<リンク集 <<サイト内検索 <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

NagiosのアドオンPNP4Nagiosを導入して、Nagios監視項目の性能統計データをグラフ化する。

Nagios導入済であることが前提


■PNP4Nagiosインストール

[root@centos ~]# yum -y install rrdtool php-gd ← PNP4Nagiosに必要なパッケージインストール

[root@centos ~]# /etc/rc.d/init.d/httpd reload ← Apache設定再読み込み
httpd を再読み込み中:                                      [  OK  ]

[root@centos ~]# wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.24.tar.gz ← PNP4Nagiosダウンロード

※最新版のURLはダウンロードページで確認すること

[root@centos ~]# tar zxvf pnp4nagios-0.6.24.tar.gz ← PNP4Nagios展開

[root@centos ~]# cd pnp4nagios-0.6.24/ ← PNP4Nagios展開先ディレクトリへ移動

[root@centos pnp4nagios-0.6.24]# ./configure && make all && make fullinstall ← PNP4Nagiosインストール

[root@centos pnp4nagios-0.6.24]# cd ← PNP4Nagios展開先ディレクトリを抜ける

[root@centos ~]# rm -rf pnp4nagios-0.6.24 ← PNP4Nagios展開先ディレクトリを削除

[root@centos ~]# rm -f pnp4nagios-0.6.24.tar.gz ← ダウンロードしたファイルを削除

[root@centos ~]# systemctl restart httpd ← Apache再起動

http://サーバー名/pnp4nagios/へアクセスして全項目グリーン表示されることを確認

[root@centos ~]# rm -f /usr/local/pnp4nagios/share/install.php ← インストールスクリプト削除


■PNP4Nagios設定

(1)PNP4Nagios設定
[root@centos ~]# vi /usr/local/pnp4nagios/etc/config_local.php ← PNP4Nagios設定ファイル編集
#
# Date format
#
$conf['date_fmt'] = "Y.m.d G:i"; ← 日付形式をYYYY.MM.DDにする

(2)Nagios設定
[root@centos ~]# vi /usr/local/nagios/etc/nagios.cfg ← nagios.cfg編集
process_performance_data=1 ← パフォーマンスデータ取得を有効化

host_perfdata_command=process-host-perfdata ← ホストパフォーマンスデータ取得コマンドを有効化
service_perfdata_command=process-service-perfdata ← サービスパフォーマンスデータ取得コマンドを有効化

以下を最終行へ追加
#
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
# 
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

[root@centos ~]# vi /usr/local/nagios/etc/objects/commands.cfg ← commands.cfg編集
−−削除(ここから)−−
# 'process-host-perfdata' command definition
define command{
       command_name    process-host-perfdata
       command_line    /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /usr/local/nagios/var/host-perfdata.out
       }


# 'process-service-perfdata' command definition
define command{
       command_name    process-service-perfdata
       command_line    /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/service-perfdata.out
       }
−−削除(ここまで)−−

以下を最終行へ追加
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

[root@centos ~]# vi /usr/local/nagios/etc/objects/templates.cfg ← templates.cfg編集
###############################################################################
###############################################################################
#
# HOST TEMPLATES
#
###############################################################################
###############################################################################

# Generic host definition template - This is NOT a real host, just a template!

define host{
        name                            generic-host    ; The name of this host template
        notifications_enabled           1               ; Host notifications are enabled
        event_handler_enabled           1               ; Host event handler is enabled
        flap_detection_enabled          1               ; Flap detection is enabled
        failure_prediction_enabled      1               ; Failure prediction 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            ; Send host notifications at any time
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        action_url /pnp4nagios/graph?host=$HOSTNAME$' onmouseover="get_g('$HOSTNAME$','_HOST_')" onmouseout="clear_g()" ← 追加(Nagios画面からPNP画面へのリンク表示(ホスト))
        }

###############################################################################
## SERVICE TEMPLATES
#
###############################################################################
###############################################################################

# Generic service definition template - This is NOT a real service, just a template!

define service{
        name                            generic-service         ; The 'name' of this service template
        active_checks_enabled           1                       ; Active service checks are enabled
        passive_checks_enabled          1                       ; Passive service checks are enabled/accepted
        parallelize_check               1                       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
        obsess_over_service             1                       ; We should obsess over this service (if necessary)
        check_freshness                 0                       ; Default is to NOT check service 'freshness'
        notifications_enabled           1                       ; Service notifications are enabled
        event_handler_enabled           1                       ; Service event handler is enabled
        flap_detection_enabled          1                       ; Flap detection is enabled
        failure_prediction_enabled      1                       ; Failure prediction 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
        is_volatile                     0                       ; The service is not volatile
        check_period                    24x7                    ; The service can be checked at any time of the day
        max_check_attempts              3                       ; Re-check the service up to 3 times in order to determine its final (hard) state
        normal_check_interval           10                      ; Check the service every 10 minutes under normal conditions
        retry_check_interval            2                       ; Re-check the service every two minutes until a hard state can be determined
        contact_groups                  admins                  ; Notifications get sent out to everyone in the 'admins' group
        notification_options            w,u,c,r                 ; Send notifications about warning, unknown, critical, and recovery events
        notification_interval           60                      ; Re-notify about service problems every hour
        notification_period             24x7                    ; Notifications can be sent out at any time
         register                        0                      ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
        action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' onmouseover="get_g('$HOSTNAME$','$SERVICEDESC$')" onmouseout="clear_g()" ← 追加(Nagios画面からPNP画面へのリンク表示(サービス))
        }

[root@centos ~]# systemctl start npcd ← NPCD起動

[root@centos ~]# systemctl enable npcd ← NPCD自動起動設定

[root@centos ~]# /etc/rc.d/init.d/nagios restart ← Nagios再起動
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.

■PNP確認

http://サーバー名/nagios/へアクセスし、「サービス稼動状態」でホストまたはサービス横のをクリックして性能統計グラフが表示されることを確認。

※一部監視項目はパフォーマンスデータを出力しないため、グラフ表示できない



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします