NagiosをYUMでインストール

コンピュータシステムおよびネットワークの統合監視アプリケーションであるNagiosをVPSのCentOS7にインストールした際の備忘録です。

◆バージョン

最新版のNagios Coreは、バージョン 4.4.6(2020.4.28リリース)
プラグインパッケージのバージョン 2.3.3

◆システム要件

Webサーバ(推奨はApahe)が構築済み
CGIの稼働およびGDライブラリ

# yum install httpd php php-cli gd gd-devel openssl-devel

追加されていない場合は、これらのパッケージが必要なのでインストールします。

◆インストール

# yum install nagios nagios-plugins-all
読み込んだプラグイン:langpacks, versionlock
依存性の解決をしています

~ 中略 ~

依存性を解決しました

======================================================================================================================
 Package                                 アーキテクチャー      バージョン                   リポジトリー         容量
======================================================================================================================
インストール中:
 nagios                                  x86_64                4.4.6-4.el7                  epel                1.8 M
 nagios-plugins-all                      x86_64                2.3.3-2.el7                  epel                 21 k
依存性関連でのインストールをします:

~ 中略 ~

トランザクションの要約
======================================================================================================================
インストール  2 パッケージ (+49 個の依存関係のパッケージ)

総ダウンロード容量: 3.8 M
インストール容量: 12 M
Is this ok [y/d/N]: y

~ 中略 ~

インストール:
  nagios.x86_64 0:4.4.6-4.el7                         nagios-plugins-all.x86_64 0:2.3.3-2.el7

依存性関連をインストールしました:
  nagios-plugins.x86_64 0:2.3.3-2.el7                       nagios-plugins-breeze.x86_64 0:2.3.3-2.el7
  nagios-plugins-by_ssh.x86_64 0:2.3.3-2.el7                nagios-plugins-cluster.x86_64 0:2.3.3-2.el7
  nagios-plugins-dhcp.x86_64 0:2.3.3-2.el7                  nagios-plugins-dig.x86_64 0:2.3.3-2.el7
  nagios-plugins-disk.x86_64 0:2.3.3-2.el7                  nagios-plugins-disk_smb.x86_64 0:2.3.3-2.el7
  nagios-plugins-dns.x86_64 0:2.3.3-2.el7                   nagios-plugins-dummy.x86_64 0:2.3.3-2.el7
  nagios-plugins-file_age.x86_64 0:2.3.3-2.el7              nagios-plugins-flexlm.x86_64 0:2.3.3-2.el7
  nagios-plugins-fping.x86_64 0:2.3.3-2.el7                 nagios-plugins-game.x86_64 0:2.3.3-2.el7
  nagios-plugins-hpjd.x86_64 0:2.3.3-2.el7                  nagios-plugins-http.x86_64 0:2.3.3-2.el7
  nagios-plugins-icmp.x86_64 0:2.3.3-2.el7                  nagios-plugins-ide_smart.x86_64 0:2.3.3-2.el7
  nagios-plugins-ircd.x86_64 0:2.3.3-2.el7                  nagios-plugins-ldap.x86_64 0:2.3.3-2.el7
  nagios-plugins-load.x86_64 0:2.3.3-2.el7                  nagios-plugins-log.x86_64 0:2.3.3-2.el7
  nagios-plugins-mailq.x86_64 0:2.3.3-2.el7                 nagios-plugins-mrtg.x86_64 0:2.3.3-2.el7
  nagios-plugins-mrtgtraf.x86_64 0:2.3.3-2.el7              nagios-plugins-mysql.x86_64 0:2.3.3-2.el7
  nagios-plugins-nagios.x86_64 0:2.3.3-2.el7                nagios-plugins-nt.x86_64 0:2.3.3-2.el7
  nagios-plugins-ntp.x86_64 0:2.3.3-2.el7                   nagios-plugins-ntp-perl.x86_64 0:2.3.3-2.el7
  nagios-plugins-nwstat.x86_64 0:2.3.3-2.el7                nagios-plugins-oracle.x86_64 0:2.3.3-2.el7
  nagios-plugins-overcr.x86_64 0:2.3.3-2.el7                nagios-plugins-perl.x86_64 0:2.3.3-2.el7
  nagios-plugins-pgsql.x86_64 0:2.3.3-2.el7                 nagios-plugins-ping.x86_64 0:2.3.3-2.el7
  nagios-plugins-procs.x86_64 0:2.3.3-2.el7                 nagios-plugins-real.x86_64 0:2.3.3-2.el7
  nagios-plugins-rpc.x86_64 0:2.3.3-2.el7                   nagios-plugins-sensors.x86_64 0:2.3.3-2.el7
  nagios-plugins-smtp.x86_64 0:2.3.3-2.el7                  nagios-plugins-snmp.x86_64 0:2.3.3-2.el7
  nagios-plugins-ssh.x86_64 0:2.3.3-2.el7                   nagios-plugins-swap.x86_64 0:2.3.3-2.el7
  nagios-plugins-tcp.x86_64 0:2.3.3-2.el7                   nagios-plugins-time.x86_64 0:2.3.3-2.el7
  nagios-plugins-ups.x86_64 0:2.3.3-2.el7                   nagios-plugins-users.x86_64 0:2.3.3-2.el7
  nagios-plugins-wave.x86_64 0:2.3.3-2.el7

完了しました!

1行目:Nagios Core本体とプラグインパッケージをEPELリポジトリからインストール
32行目以降:依存性関連で各プラグインがインストールされる

◆インストールディレクトリ

Nagios Core
/etc/nagios
├── cgi.cfg                       CGI設定ファイル
├── nagios.cfg                    Nagios本体の設定ファイル
├── objects
│   ├── commands.cfg              監視サービスコマンド設定ファイル
│   ├── contacts.cfg              通知先設定ファイル
│   ├── localhost.cfg             ローカルマシン(Linux)監視設定ファイル
│   ├── printer.cfg               ネットワークプリンタ監視設定ファイル
│   ├── switch.cfg                ネットワークスイッチ監視設定ファイル
│   ├── templates.cfg             オブジェクト定義テンプレートファイル
│   ├── timeperiods.cfg           監視・通知時間設定ファイル
│   └── windows.cfg               Windowsサーバ監視設定ファイル
├── passwd                        Nagiosパスワード設定ファイル
└── private
    └── resource.cfg              ユーザー情報設定ファイル

Plugins
/usr/lib64/nagios
├── cgi-bin
│   └── *.cgi
└── plugins
    └── check_*                   各監視サービスプラグイン

Nagios Web Page
/usr/share/nagios                 Nagiosウェブページファイル

HTTPD
/etc/httpd/conf.d/nagios.conf     httpd用Nagios設定ファイル

Log Files
/var/log/nagios
├── archives                      ログファイルアーカイブ格納ディレクトリ
└── nagios.log                    ログファイル

◆設定

・nagios.cfg
# vi /etc/nagios/nagios.cfg

# DATE FORMAT OPTION
# This option determines how short dates are displayed. Valid options
# include:
#       us              (MM-DD-YYYY HH:MM:SS)
#       euro            (DD-MM-YYYY HH:MM:SS)
#       iso8601         (YYYY-MM-DD HH:MM:SS)
#       strict-iso8601  (YYYY-MM-DDTHH:MM:SS)
#

date_format=iso8601

1行目:nagios.cfgファイル編集
12行目:日付表示書式を変更(任意)

・contacts.cfg
# vi /etc/nagios/objects/contacts.cfg

define contact {

    contact_name            nagiosadmin             ; Short name of user
    use                     generic-contact         ; Inherit default values from generic-contact template (defined above)
    alias                   Nagios Admin            ; Full name of user
    email                   nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}

1行目:contacts.cfgファイル編集
8行目:emailを通知先メールアドレスに変更

・localhost.cfg
# vi /etc/nagios/objects/localhost.cfg

define service {

    use                     local-service           ; Name of service template to use
    host_name               localhost
    service_description     SSH
    check_command           check_ssh
    notifications_enabled   1
}



# Define a service to check HTTP on the local machine.
# Disable notifications for this service by default, as not all users may have HTTP enabled.

define service {

    use                     local-service           ; Name of service template to use
    host_name               localhost
    service_description     HTTP
    check_command           check_http
    notifications_enabled   1
}

1行目:localhost.cfgファイル編集
9行目:SSH状態監視有効化
23行目:HTTP状態監視有効化

・nagios.conf(httpd)
# vi /etc/httpd/conf.d/nagios.conf

ScriptAlias /nagios/cgi-bin "/usr/lib64/nagios/cgi-bin/"

<Directory "/usr/lib64/nagios/cgi-bin/">
#  SSLRequireSSL
   Options ExecCGI
   AllowOverride None
   <IfVersion >= 2.3>
      <RequireAll>
      <RequireAny>
#        Require all granted
#        Require host 127.0.0.1
         Require host example.jp
      </RequireAny>

         AuthName "Nagios Access"
         AuthType Basic
         AuthUserFile /etc/nagios/passwd
         Require valid-user
      </RequireAll>
   </IfVersion>
   <IfVersion < 2.3>
      Order allow,deny
      Allow from all
#     Order deny,allow
#     Deny from all
#     Allow from 127.0.0.1

      AuthName "Nagios Access"
      AuthType Basic
      AuthUserFile /etc/nagios/passwd
      Require valid-user
   </IfVersion>
</Directory>

Alias /nagios "/usr/share/nagios/html"

<Directory "/usr/share/nagios/html">
#  SSLRequireSSL
   Options None
   AllowOverride None
   <IfVersion >= 2.3>
      <RequireAll>
      <RequireAny>
#        Require all granted
#        Require host 127.0.0.1
         Require host example.jp
      </RequireAny>

         AuthName "Nagios Access"
         AuthType Basic
         AuthUserFile /etc/nagios/passwd
         Require valid-user
      </RequireAll>
   </IfVersion>
   <IfVersion < 2.3>
      Order allow,deny
      Allow from all
#     Order deny,allow
#     Deny from all
#     Allow from 127.0.0.1

      AuthName "Nagios Access"
      AuthType Basic
      AuthUserFile /etc/nagios/passwd
      Require valid-user
   </IfVersion>
</Directory>

1行目:httpd設定用nagios.confファイル編集
11,15(45,49)行目:RequireAnyディレクティブの追加
12(46)行目:すべての接続を許可をコメントアウト
14(48)行目:アクセス許可するホスト名(ドメイン名)を指定、IPアドレスで指定する場合は、「Require ip」で指定

◆起動

・httpdリロード
# systemctl reload httpd
・nagiosサービス自動起動設定
# systemctl enable nagios.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nagios.service to /usr/lib/systemd/system/nagios.service.
・nagiosサービス起動
# systemctl start nagios
・確認

サイトにアクセスして確認します。

naigosの監視サイト「domain/nagios/」にアクセスし、ログイン認証画面でユーザー名「nagiosadmin」パスワード(初期)「nagiosadmin」でログインします。

ログイン後、左ツリーから「Services」をクリックすると、サービスの状態監視画面が表示され、「Services」一覧にはデフォルトの監視項目「Current Load(CPU負荷)」、「Current Users(ログインユーザー数)」、「PING(ネットワーク疎通状況)」、「Root Partition(ディスク空き状況)」、「Swap Usage(SWAP空き状況)」、「Total Processes(プロセス数)」および有効化設定した「SSH(SSHサーバー稼動状況)」、「HTTP(Webサーバー稼動状況)」を含め、「Status」がOKとなっているのが確認できます。

◆その他

・パスワード変更
# htpasswd -c /etc/nagios/passwd nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

ユーザパスワードを変更する場合の要領です。

・nagios.cfg設定ファイル確認コマンド
# nagios -v /etc/nagios/nagios.cfg

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
        Checked 8 services.
        Checked 1 hosts.
        Checked 1 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 24 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 1 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
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

設定ファイルのチェックをすることで機能状態の確認をすることができます。

初期の設定として監視できる状態になりました。
次回は、監視項目を調整していきたいとおもいます。

LINEで送る
Pocket

コメントは受け付けていません。