#author("2018-08-28T16:47:36+09:00","","") #author("2018-08-28T16:59:45+09:00","","") [[CentOS7]] *統合監視システム構築(Nagios) [#lc264125] 統合監視システム[[Nagios>http://www.nagios.org/]]([[日本語訳>http://nagios.x-trans.jp/naija/]])でシステムを監視する。 ※Webサーバー構築済であること *Nagiosインストール [#f4f09d7e] **Nagiosインストール [#l2b7f567] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install gd-devel &color(lime){← Nagiosに必要なgd-develをインストール};| |[root@localhost ~]# useradd -d /usr/local/nagios/ -M nagios &color(lime){← nagiosユーザー作成};| |[root@localhost ~]# wget https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.2.4/nagios-4.2.4.tar.gz &color(lime){← Nagiosダウンロード};| |&color(lightpink){※最新版のURLは[[ダウンロードページ>http://sourceforge.net/project/showfiles.php?group_id=26589&package_id=224047]]で確認すること};| |[root@localhost ~]# tar zxvf nagios-4.2.4.tar.gz &color(lime){← Nagios展開};| |[root@localhost ~]# cd nagios-4.2.4 &color(lime){← Nagios展開先ディレクトリへ移動};| |[root@localhost nagios-4.2.4]# wget http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.2.4.patch.gz &color(lime){← Nagios日本語化パッチダウンロード};| |&color(lightpink){※最新版のURLは[[ダウンロードページ>http://www.momo-i.org/chapter5/nagios/4.x.html]]で確認すること};| |[root@localhost nagios-4.2.4]# gzip -dc nagios-jp-4.2.4.patch.gz | patch -p1 &color(lime){← Nagios日本語化パッチ施行};| |[root@localhost nagios-4.2.4]# ./configure && make all && make fullinstall && make install-config &color(lime){← Nagiosインストール};| |[root@localhost nagios-4.2.4]# cd &color(lime){← Nagios展開先ディレクトリを抜ける};| |[root@localhost ~]# rm -rf nagios-4.2.4 &color(lime){← Nagios展開先ディレクトリを削除};| |[root@localhost ~]# yum -y install gd-devel &color(lime){← ''Nagios''に必要な''gd-devel''をインストール};| |[root@localhost ~]# useradd -d /usr/local/nagios/ -M nagios &color(lime){← ''nagios''ユーザー作成};| |[root@localhost ~]# wget https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.2.4/nagios-4.2.4.tar.gz &color(lime){← ''Nagios''ダウンロード};| |&color(lightpink){※最新版の''URL''は[[ダウンロードページ>http://sourceforge.net/project/showfiles.php?group_id=26589&package_id=224047]]で確認すること};| |[root@localhost ~]# tar zxvf nagios-4.2.4.tar.gz &color(lime){← ''Nagios''展開};| |[root@localhost ~]# cd nagios-4.2.4 &color(lime){← ''Nagios''展開先ディレクトリへ移動};| |[root@localhost nagios-4.2.4]# wget http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.2.4.patch.gz &color(lime){← ''Nagios''日本語化パッチダウンロード};| |&color(lightpink){※最新版の''URL''は[[ダウンロードページ>http://www.momo-i.org/chapter5/nagios/4.x.html]]で確認すること};| |[root@localhost nagios-4.2.4]# gzip -dc nagios-jp-4.2.4.patch.gz | patch -p1 &color(lime){← ''Nagios''日本語化パッチ施行};| |[root@localhost nagios-4.2.4]# ./configure && make all && make fullinstall && make install-config &color(lime){← ''Nagios''インストール};| |[root@localhost nagios-4.2.4]# cd &color(lime){← ''Nagios''展開先ディレクトリを抜ける};| |[root@localhost ~]# rm -rf nagios-4.2.4 &color(lime){← ''Nagios''展開先ディレクトリを削除};| |[root@localhost ~]# rm -f nagios-4.2.4.tar.gz &color(lime){← ダウンロードしたファイルを削除};| **Nagiosプラグインインストール [#ra8f7af0] **''Nagios''プラグインインストール [#ra8f7af0] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install mysql-devel &color(lime){← mysql-develインストール※MySQLの監視を行なう場合のみ};| |[root@localhost ~]# wget https://nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz &color(lime){← Nagiosプラグインダウンロード};| |&color(lightpink){※最新版のURLは[[ダウンロードページ>http://www.nagios.org/download/plugins]]で確認すること};| |[root@localhost ~]# tar zxvf nagios-plugins-2.1.4.tar.gz &color(lime){← Nagiosプラグイン展開};| |[root@localhost ~]# cd nagios-plugins-2.1.4 &color(lime){← Nagiosプラグイン展開先ディレクトリへ移動};| |[root@localhost nagios-plugins-2.1.4]# ./configure && make && make install &color(lime){← Nagiosプラグインインストール};| |[root@localhost nagios-plugins-2.1.4]# cd &color(lime){← Nagiosプラグイン展開先ディレクトリを抜ける};| |[root@localhost ~]# rm -rf nagios-plugins-2.1.4 &color(lime){← Nagiosプラグイン展開先ディレクトリを削除};| |[root@localhost ~]# yum -y install mysql-devel &color(lime){← ''mysql-devel''インストール ※''MySQL''の監視を行なう場合のみ};| |[root@localhost ~]# wget https://nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz &color(lime){← ''Nagios''プラグインダウンロード};| |&color(lightpink){※最新版の''URL''は[[ダウンロードページ>http://www.nagios.org/download/plugins]]で確認すること};| |[root@localhost ~]# tar zxvf nagios-plugins-2.1.4.tar.gz &color(lime){← ''Nagios''プラグイン展開};| |[root@localhost ~]# cd nagios-plugins-2.1.4 &color(lime){← ''Nagios''プラグイン展開先ディレクトリへ移動};| |[root@localhost nagios-plugins-2.1.4]# ./configure && make && make install &color(lime){← ''Nagios''プラグインインストール};| |[root@localhost nagios-plugins-2.1.4]# cd &color(lime){← ''Nagios''プラグイン展開先ディレクトリを抜ける};| |[root@localhost ~]# rm -rf nagios-plugins-2.1.4 &color(lime){← ''Nagios''プラグイン展開先ディレクトリを削除};| |[root@localhost ~]# rm -f nagios-plugins-2.1.4.tar.gz &color(lime){← ダウンロードしたファイルを削除};| *Nagios設定 [#x7a43ad5] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg &color(lime){← nagios.cfg編集};| |cfg_dir=/usr/local/nagios/etc/servers &color(lime){← 行頭の#を削除してコメント解除(サーバー監視設定有効化)}; &br; &br; date_format=iso8601 &color(lime){← 日付書式をYYYY-MM-DD HH:MM:SSにする};| |[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg &color(lime){← ''nagios.cfg''編集};| |cfg_dir=/usr/local/nagios/etc/servers &color(lime){← 行頭の#を削除してコメント解除(サーバー監視設定有効化)}; &br; &br; date_format=iso8601 &color(lime){← 日付書式を''YYYY-MM-DD HH:MM:SS''にする};| |[root@localhost ~]# mkdir /usr/local/nagios/etc/servers &color(lime){← サーバー監視設定ファイル格納ディレクトリ作成};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/contacts.cfg &color(lime){← contacts.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/contacts.cfg &color(lime){← ''contacts.cfg''編集};| |define contact{ &br; contact_name nagiosadmin ; Short name of user &br; use generic-contact ; Inherit default values from generic-contact template (defined above) &br; alias Nagios Admin ; Full name of user &br; &br; email &color(lime){管理者メールアドレス ← 管理者メールアドレスを指定}; &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |define service{ &br; use local-service ; Name of service template to use &br; host_name localhost &br; service_description SSH &br; check_command check_ssh &br; notifications_enabled 1 &color(lime){← 1を指定(SSH状態変化時に通知する)}; &br; } &br; &br; define service{ &br; use local-service ; Name of service template to use &br; host_name localhost &br; service_description HTTP &br; check_command check_http &br; notifications_enabled 1 &color(lime){← 1を指定(HTTP状態変化時に通知する)}; &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← commands.cfg編集};| |# 'notify-host-by-email' command definition &br; define command{ &br; command_name notify-host-by-email &br; command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ &color(lime){← nkfコマンド追加(メール本文文字化け対処)}; } &br; &br; # 'notify-service-by-email' command definition &br; define command{ &br; command_name notify-service-by-email &br; command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ &color(lime){← nkfコマンド追加(メール本文文字化け対処)}; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |define service{ &br; use local-service ; Name of service template to use &br; host_name localhost &br; service_description SSH &br; check_command check_ssh &br; notifications_enabled 1 &color(lime){← 1を指定(''SSH''状態変化時に通知する)}; &br; } &br; &br; define service{ &br; use local-service ; Name of service template to use &br; host_name localhost &br; service_description HTTP &br; check_command check_http &br; notifications_enabled 1 &color(lime){← 1を指定(''HTTP''状態変化時に通知する)}; &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |# 'notify-host-by-email' command definition &br; define command{ &br; command_name notify-host-by-email &br; command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ &color(lime){← ''nkf''コマンド追加(メール本文文字化け対処)}; } &br; &br; # 'notify-service-by-email' command definition &br; define command{ &br; command_name notify-service-by-email &br; command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/nkf -j | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ &color(lime){← ''nkf''コマンド追加(メール本文文字化け対処)}; }| *Apache設定 [#u077e7b1] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# usermod -G nagios apache &color(lime){← ''apache''ユーザーをnagiosグループに所属させる};| |[root@localhost ~]# vi /etc/httpd/conf.d/nagios.conf &color(lime){← ''Nagios''用''Apache''設定ファイル編集};| |<Directory "/usr/local/nagios/sbin"> &br; # SSLRequireSSL &br; Options ExecCGI &br; AllowOverride None &br; <IfVersion >= 2.3> &br; <RequireAll> &br; <RequireAny> &color(lime){← 追加}; &br; &color(lime){#}; Require all granted &color(lime){← 行頭に''#''を追加してコメントアウト(内部からのみアクセス可能にする)}; &br; # Require host 127.0.0.1 &br; Require ip 192.168.1.0/24 &color(lime){← 追加(内部ネットワーク(例:192.168.1.0/24)からのみアクセス可能にする)}; &br; </RequireAny> &color(lime){← 追加}; &br; &br; AuthName "Nagios Access" &br; AuthType Basic &br; AuthUserFile /usr/local/nagios/etc/htpasswd.users &br; Require valid-user &br; </RequireAll> &br; </IfVersion> &br; <IfVersion < 2.3> &br; Order allow,deny &br; Allow from all &br; # Order deny,allow &br; # Deny from all &br; # Allow from 127.0.0.1 &br; &br; AuthName "Nagios Access" &br; AuthType Basic &br; AuthUserFile /usr/local/nagios/etc/htpasswd.users &br; Require valid-user &br; </IfVersion> &br; </Directory> &br; &br; <Directory "/usr/local/nagios/share"> &br; # SSLRequireSSL &br; Options None &br; AllowOverride None &br; <IfVersion >= 2.3> &br; <RequireAll> &br; <RequireAny> &color(lime){← 追加}; &br; &color(lime){#}; Require all granted &color(lime){← 行頭に''#''を追加してコメントアウト(内部からのみアクセス可能にする)}; &br; # Require host 127.0.0.1 &br; Require ip 192.168.1.0/24 &color(lime){← 追加(内部ネットワーク(例:192.168.1.0/24)からのみアクセス可能にする)}; &br; </RequireAny> &color(lime){← 追加}; &br; &br; AuthName "Nagios Access" &br; AuthType Basic &br; AuthUserFile /usr/local/nagios/etc/htpasswd.users &br; Require valid-user &br; </RequireAll> &br; </IfVersion> &br; <IfVersion < 2.3> &br; Order allow,deny &br; Allow from all &br; # Order deny,allow &br; # Deny from all &br; # Allow from 127.0.0.1 &br; &br; AuthName "Nagios Access" &br; AuthType Basic &br; AuthUserFile /usr/local/nagios/etc/htpasswd.users &br; Require valid-user &br; </IfVersion> &br; </Directory>| |[root@localhost ~]# systemctl reload httpd &color(lime){← ''Web''サーバー設定反映};| |[root@localhost ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin &color(lime){← ''Nagios''管理ユーザー(''nagiosadmin'')作成};| |New password: &color(lime){← 任意のパスワード応答※表示はされない};| |Re-type new password: &color(lime){← 任意のパスワード応答(確認)※表示はされない};| |Adding password for user nagiosadmin| *Nagios起動 [#md139441] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# /etc/rc.d/init.d/nagios start &color(lime){← Nagios起動};| |[root@localhost ~]# chkconfig nagios on &color(lime){← Nagios自動起動設定};| |[root@localhost ~]# /etc/rc.d/init.d/nagios start &color(lime){← ''Nagios''起動};| |[root@localhost ~]# chkconfig nagios on &color(lime){← ''Nagios''自動起動設定};| *Nagios確認 [#tf485424] http://サーバー名/nagios/へアクセスし、''Ngios''の''Web''インタフェース画面が表示されることを確認。※ユーザー名/パスワードは''htpasswd''コマンドで作成した''Nagios''管理ユーザーのユーザー名/パスワードを指定する。 デフォルトの監視項目は自ホストの「''CPU負荷''」、「''ログインユーザー数''」、「''Webサーバー稼動状況''」、「''ネットワーク障害''」、「''ディスク空き状況''」、「''SSHサーバー稼動状況''」、「''SWAP空き状況''」、「''プロセス数''」。 *監視ホスト追加 [#f2512d37] 例としてホスト名''fedora''、IPアドレス192.168.1.20を監視ホストとして追加する。 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/servers/fedora.cfg &color(lime){← ホスト名.cfg作成};| |define host{ &br; use linux-server &br; host_name fedora &br; alias fedora &br; address 192.168.1.20 &br; } &br; &br; define service{ &br; use generic-service &br; host_name fedora &br; service_description PING &br; check_command check_ping!100.0,20%!500.0,60% &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *監視ホスト追加確認 [#l8124efc] http://サーバー名/nagios/へアクセスし、「ホスト」で追加したホストが表示されることを確認。 *監視サービス追加(自ホスト編) [#wffdefd8] **メモリ使用状況 [#efb2ac42] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# wget "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=4174&cf_id=24" -O check_mem &color(lime){← ''check_mem''プラグインダウンロード};| |[root@localhost ~]# /bin/mv check_mem /usr/local/nagios/libexec/ &color(lime){← ''check_mem''プラグインを所定のディレクトリへ移動};| |[root@localhost ~]# chmod +x /usr/local/nagios/libexec/check_mem &color(lime){← ''check_mem''プラグインに実行権限付加};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_mem' command definition &br; define command{ &br; command_name check_mem &br; command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$ -W $ARG3$ -C $ARG4$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |以下を最終行へ追加 &br; define service{ &br; use generic-service &br; host_name localhost &br; #service_description Memory Free &br; service_description Memory Usage &br; check_command check_mem!80!90!80!90 &color(lime){← 物理メモリ使用率が''80%''で警告、''90%''で異常、仮想メモリ使用率が''80%''で警告、''90%''で異常とする}; &br; } &br; &br; &color(lime){--''check_mem''プラグインで仮想メモリ使用率も取得できるため削除(ここから)--}; &br; define service{ &br; use local-service ; Name of service template to use &br; host_name localhost &br; service_description Swap Usage &br; check_command check_local_swap!20!10 &br; } &br; &color(lime){--''check_mem''プラグインで仮想メモリ使用率も取得できるため削除(ここまで)--};| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| **ログインユーザー数 [#q0e42867] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |define service{ &br; use generic-service &br; host_name localhost &br; service_description Current Users &br; check_command check_local_users!3!5 &color(lime){← ログインユーザー数が''3''以上で警告、''5''以上で異常とする}; &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| **NTP [#t055810e] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← commands.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_ntp' command definition &br; define command{ &br; command_name check_ntp &br; command_line $USER1$/check_ntp -H $ARG1$ -w $ARG2$ -c $ARG3$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description NTP &br; check_command check_ntp!ntp.nict.jp!1!2 &color(lime){← ntp.nict.jpと時間が1秒ずれていたら警告、2秒ずれていたら異常とする}; &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| **clamd ※Clam AntiVirusまたはamavisd-new+Clam AntiVirus導入済の場合のみ [#me49fbd3] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_clamd' command definition &br; define command{ &br; command_name check_clamd &br; command_line $USER1$/check_clamd -H $ARG1$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description clamd &br; check_command check_clamd!/var/run/clamav/clamd.sock &color(lime){← ''/var/run/clamav/clamd.sock''は''/etc/clamd.conf''または''/etc/clamd.d/amavisd.conf''の''LocalSocket''オプションで指定した値}; &br; }| |[root@localhost ~]# chmod u+s /usr/local/nagios/libexec/check_clamd &color(lime){← ''clamd''ソケットファイルへ接続できるようにする| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| **DNS ※BIND導入済の場合のみ [#y1c6b585] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_dig' command definition &br; define command{ &br; command_name check_dig &br; command_line $USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description DNS &br; check_command check_dig!hoge.com &color(lime){← 名前解決ホスト名に自ドメイン名を指定}; &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *SMTP ※メールサーバー導入済の場合のみ [#b74953a1] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |以下を最終行へ追加 &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description SMTP &br; check_command check_smtp &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *POP ※メールサーバー導入済の場合のみ [#z6911334] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |# 'check_pop' command definition &br; define command{ &br; command_name check_pop &br; command_line $USER1$/check_pop -H $HOSTADDRESS$ -s quit &color(lime){← 「''-s quit''」追加}; &br; } &br; &color(lime){※「-s quit」はDovecotがpop3-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, securedという}; &br; &color(lime){エラーメッセージをログに出力しないようにする対処};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description POP &br; check_command check_pop &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *IMAP ※メールサーバー導入済の場合のみ [#d720a284] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |# 'check_imap' command definition &br; define command{ &br; command_name check_imap &br; command_line $USER1$/check_imap -H $HOSTADDRESS$ -s "A2 logout" &color(lime){← 「-s "A2 logout"」追加}; &br; } &br; &color(lime){※「''-s "A2 logout"''」は''Dovecot''が''imap-login: Aborted login: rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured''という}; &br; &color(lime){エラーメッセージをログに出力しないようにする対処};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description IMAP &br; check_command check_imap &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *milter-manager ※milter-manager(milter-greylist、clamav-milter、spamass-milter)導入済の場合のみ [#g319844e] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集| |&color(lime){以下を最終行へ追加}; &br; # 'check_milter-manager' command definition &br; define command{ &br; command_name check_milter-manager &br; command_line $USER1$/check_tcp -H /var/run/milter-manager/milter-manager.sock &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description milter-manager &br; check_command check_milter-manager &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *milter-greylist ※milter-greylist導入済の場合のみ [#bdbf2400] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_milter-greylist' command definition &br; define command{ &br; command_name check_milter-greylist &br; command_line $USER1$/check_tcp -H /run/milter-greylist/milter-greylist.sock &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description milter-greylist &br; check_command check_milter-greylist &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *clamav-milter ※clamav-milter導入済の場合のみ [#n57affe6] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_clamav-milter' command definition &br; define command{ &br; command_name check_clamav-milter &br; command_line $USER1$/check_tcp -H /var/run/clamav-milter/clamav-milter.socket &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description clamav-milter &br; check_command check_clamav-milter &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *spamass-milter ※spamass-milter導入済の場合のみ [#wfb26b51] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_spamass-milter' command definition &br; define command{ &br; command_name check_spamass-milter &br; command_line $USER1$/check_tcp -H /run/spamass-milter/postfix/sock &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description spamass-milter &br; check_command check_spamass-milter &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *spamd ※SpamAssassin導入済の場合のみ [#k91a1b29] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_spamd' command definition &br; define command{ &br; command_name check_spamd &br; command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 783 &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← localhost.cfg編集};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description spamd &br; check_command check_spamd &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *Samba ※Samba導入済の場合のみ [#x5882a2e] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install samba-client &color(lime){← ''samba-client''インストール};| |[root@localhost ~]# vi /usr/local/nagios/libexec/check_disk_smb &color(lime){← ''check_disk_smb''プラグイン編集};| |my $smbclient= "/usr/bin/smbclient" ; &color(lime){← ''smbclient''コマンドパス設定};| |[root@localhost ~]# echo &color(lime){SambaサーバーIPアドレス※ Sambaサーバーホスト名}; >> /etc/samba/lmhosts &color(lime){← lmhostsへSambaサーバーのIPアドレス/ホスト名を追加する};| |[root@localhost ~]# echo &color(lime){''Samba''サーバーIPアドレス※ ''Samba''サーバーホスト名}; >> /etc/samba/lmhosts &color(lime){← ''lmhosts''へ''Samba''サーバーのIPアドレス/ホスト名を追加する};| |&color(lightpink){※SambaサーバーIPアドレスにループバックアドレス(127.0.0.1)は指定できない};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_disk_smb' command definition &br; define command{ &br; command_name check_disk_smb &br; command_line $USER1$/check_disk_smb -H $ARG1$ -s $ARG2$ -W $ARG3$ -u $ARG4$ -p $ARG5$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description Samba &br; check_command check_disk_smb!Sambaサーバーホスト名!Samba共有名!Sambaワークグループ名!Sambaユーザー名!Sambaユーザーパスワード &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *MySQL ※MariaDBまたはMySQL導入済の場合のみ [#m40fb310] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_mysql' command definition &br; define command{ &br; command_name check_mysql &br; command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description MySQL &br; check_command check_mysql!root!&color(lime){MySQLのrootユーザーパスワード}; &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *ネットワーク使用状況 [#i82c6e86] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# wget "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=4105&cf_id=24" -O check_traffic_pnp4naios.sh &color(lime){← ''check_traffic_pnp4naios''プラグインダウンロード};| |[root@localhost ~]# mv check_traffic_pnp4naios.sh /usr/local/nagios/libexec/ &color(lime){← ''check_traffic_pnp4naios''プラグインを所定のディレクトリへ移動};| |[root@localhost ~]# chmod +x /usr/local/nagios/libexec/check_traffic_pnp4naios.sh &color(lime){← ''check_traffic_pnp4naios''プラグインに実行権限付加};| |[root@localhost ~]# vi /usr/local/nagios/libexec/check_traffic_pnp4naios.sh &color(lime){← ''check_traffic_pnp4naios''プラグイン編集};| |&color(lime){#};DIR=/App/nagios/tmp &color(lime){← 行頭に#を追加してコメントアウト}; &br; DIR=/usr/local/nagios/var &color(lime){← 追加(一時ディレクトリを指定)}; &br; &br; #if [ `cat /App/nagios/tmp/.network-$DEVICE.tmp | wc -c` -eq 0 ];then &color(lime){← 行頭に#を追加してコメントアウト}; &br; if [ `cat $FILE | wc -c` -eq 0 ];then &color(lime){← 追加(前回取得値格納先を変数に変更)}; &br; echo -en `date +%s`"\t" >$FILE &br; &color(lime){#};echo -en `ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'`"\t" >>$FILE &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};echo `ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'`>>$FILE &color(lime){← 行頭に#を追加してコメントアウト}; &br; echo -en `ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'`"\t" >>$FILE &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; &br; echo `ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'`>>$FILE &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; &br; echo "This is first run" &br; else &br; New_Time=`date +%s` &br; &color(lime){#};New_In=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'` &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};New_Out=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'` &color(lime){← 行頭に#を追加してコメントアウト}; &br; New_In=`ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'` &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; New_Out=`ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'` &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)};| |&color(lime){#};DIR=/App/nagios/tmp &color(lime){← 行頭に#を追加してコメントアウト}; &br; DIR=/usr/local/nagios/var &color(lime){← 追加(一時ディレクトリを指定)}; &br; &br; &color(lime){#};if [ `cat /App/nagios/tmp/.network-$DEVICE.tmp | wc -c` -eq 0 ];then &color(lime){← 行頭に#を追加してコメントアウト}; &br; if [ `cat $FILE | wc -c` -eq 0 ];then &color(lime){← 追加(前回取得値格納先を変数に変更)}; &br; echo -en `date +%s`"\t" >$FILE &br; &color(lime){#};echo -en `ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'`"\t" >>$FILE &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};echo `ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'`>>$FILE &color(lime){← 行頭に#を追加してコメントアウト}; &br; echo -en `ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'`"\t" >>$FILE &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; &br; echo `ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'`>>$FILE &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; &br; echo "This is first run" &br; else &br; New_Time=`date +%s` &br; &color(lime){#};New_In=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $2}' | awk -F: '{print $NF}'` &color(lime){← 行頭に#を追加してコメントアウト}; &br; &color(lime){#};New_Out=`ifconfig $DEVICE | grep "RX bytes" | awk '{print $6}' | awk -F: '{print $NF}'` &color(lime){← 行頭に#を追加してコメントアウト}; &br; New_In=`ifconfig $DEVICE | grep "RX " | grep "bytes" | awk '{print $5}'` &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)}; New_Out=`ifconfig $DEVICE | grep "TX " | grep "bytes" | awk '{print $5}'` &color(lime){← 追加(''ifconfig''コマンドフォーマット相違対応)};| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg &color(lime){← ''commands.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; # 'check_traffic' command definition &br; define command{ &br; command_name check_traffic &br; command_line $USER1$/check_traffic_pnp4naios.sh -i $ARG1$ -w $ARG2$ -c $ARG3$ &br; }| |[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg &color(lime){← ''localhost.cfg''編集};| |&color(lime){以下を最終行へ追加}; &br; define service{ &br; use generic-service &br; host_name localhost &br; service_description Traffic Usage &br; check_command check_traffic!eth0!80000000!90000000 &color(lime){← ネットワークインタフェース''eth0''の単位時間あたり使用量が''80Mbit''で警告、''90Mbit''で異常とする}; &br; }| |[root@localhost ~]# /etc/rc.d/init.d/nagios restart &color(lime){← ''Nagios''再起動};| *監視サービス追加確認(自ホスト編) [#h5436f99] http://サーバー名/nagios/へアクセスし、「サービス」で追加したサービスが表示されることを確認。 *Downtime Scheduling Utility導入 [#vbdbcb87] 日々のサーバー運用では、定時バックアップや定時ウィルススキャン等を実施しており、これらの処理を実施している時間帯はサーバーが一時的に高負荷になるため、''Nagios''が警告を発してしまう場合がある。これらの処理が毎日行なわれる場合、''Nagios''からの警告もほぼ毎日発生することになるため、サーバー管理者にとっては非常に煩わしい。そこで、''Nagios''標準の「ダウンタイム」機能を利用して、指定時間帯のサーバー監視を無視するようにする。ただし、''Nagios''標準の「ダウンタイム」機能では、指定した日時のサーバー監視を無視することしかできないため、''Downtime Scheduling Utility''を導入して、''CRON''でダウンタイムの登録作業を自動化する。 ''Downtime Scheduling Utility''ダウンロードページより''nagios_down''をダウンロードして''WinSCP''等でサーバーへアップロードする。 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# tar zxvf nagios_down-0.2.tar.gz &color(lime){← ''nagios_down''展開};| |[root@localhost ~]# cp nagios_down.php /usr/local/nagios/bin/ &color(lime){← ''nagios_down.php''を所定のディレクトリへコピー};| |[root@localhost ~]# rm -f nagios_down.* &color(lime){← 展開したファイルを削除};| |[root@localhost ~]# rm -f nagios_down-0.2.tar.gz &color(lime){← ダウンロードしたファイルを削除};| |[root@localhost ~]# vi /usr/local/nagios/bin/nagios_down.php &color(lime){← ''nagios_down.php''編集| |define(NAGIOSCMD, "/usr/local/groundwork/nagios/var/spool/nagios.cmd"); &br; &color(lime){↓}; &br; define(NAGIOSCMD, "/usr/local/nagios/var/rw/nagios.cmd"); &color(lime){← ''nagios.cmd''パス変更};| |[root@localhost ~]# vi /etc/php.ini &color(lime){← ''php''設定ファイル編集};| |&color(lime){※''nagios_down''実行時下記エラーメッセージ出力時対処}; &br; PHP Notice: Use of undefined constant NAGIOSCMD - assumed 'NAGIOSCMD' in /usr/local/nagios/bin/nagios_down.php on line 13 &br; PHP Notice: Use of undefined constant VERSION - assumed 'VERSION' in /usr/local/nagios/bin/nagios_down.php on line 18 &br; PHP Notice: Use of undefined constant VERDATE - assumed 'VERDATE' in /usr/local/nagios/bin/nagios_down.php on line 19 &br; PHP Notice: Undefined variable: duration in /usr/local/nagios/bin/nagios_down.php on line 131 &br; error_reporting = E_ALL & ~E_DEPRECATED &br; &color(lime){↓}; &br; error_reporting = E_ALL & ~E_NOTICE &color(lime){← 通知メッセージを出力しないようにする}; &br; &br; &color(lime){※''nagios_down''実行時下記エラーメッセージ出力時対処}; &br; PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.~ &br; [Date] &br; ; Defines the default timezone used by the date functions &br; ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone &br; ;date.timezone = &br; date.timezone = Asia/Tokyo &color(lime){← 追加(デフォルトのタイムゾーン)};| |[root@localhost ~]# vi /usr/local/nagios/bin/nagios_down.php &color(lime){← ''nagios_down.php''編集};| |&color(lime){※nagios_down実行時下記エラーメッセージ出力時対処}; &br; PHP Deprecated: Function ereg() is deprecated in /usr/local/nagios/bin/nagios_down.php on line 189 &br; if ( ereg("^all$", $service) ) &br; &color(lime){↓}; &br; if ( preg_match("/^all$/", $service) ) &color(lime){← 非推奨関数eregを推奨関数preg_matchへ変更};| |&color(lime){※''nagios_down''実行時下記エラーメッセージ出力時対処}; &br; PHP Deprecated: Function ereg() is deprecated in /usr/local/nagios/bin/nagios_down.php on line 189 &br; if ( ereg("^all$", $service) ) &br; &color(lime){↓}; &br; if ( preg_match("/^all$/", $service) ) &color(lime){← 非推奨関数''ereg''を推奨関数''preg_match''へ変更};| |[root@localhost ~]# vi /etc/cron.d/nagios &color(lime){← ''nagios_down''用''cron''設定ファイル新規作成};| |01 00 * * * root /usr/bin/php /usr/local/nagios/bin/nagios_down.php -h localhost -s "Current Load" -f -b "04:00 now" -e "06:00 now" -a "Nagios Admin" -c "Server Maintenance" &color(lime){← 毎日''4:00''~''6:00''は''localhost''の''CPU''負荷監視を行なわない※上記は例};|