Nagiosインストール手順と設定ファイルまとめ

# nagiosのインストール手順
## １ウェブサーバーとPHPをインストールする
・httpdをインストールする
yum install httpd
・httpdの自動起動設定する
systemctl enable httpd
・httpdを起動する
systemctl start httpd

## ２epel リポジトリを用意する
epelはサードパーティ製のリポジトリです。標準のリポジトリでは提供されないパッケージを使うときに使用します。

amazon-linux-extrasはAmazonLinux2にはインストールされていない。
amazon-linux-extras
amamazon-linux-extrasazon-linux-extras
## ３ナギオスとオフィシャルプラグインをインストールする
以下がnagiosとnagiosのオフィシャルプラグインをインストールするコマンド
（プラグインはオフィシャル以外のプラグインもたくさんある。）
```
yum -y install nagios nagios-plugins-all
```

## ４設定ファイルを編集していく
### /etc/nagios/nagios.cfg
 Nagiosの主要cfgファイルです。編集する前にバックアップを取るようにしましょう。
ログファイルの場所、チェック間隔、通知設定などが設定されます
nagiosの主要cfgファイルログをどこに出力するのかなどの設定が記載されている。


```nagios:
--ファイル内容------
define host{
        use                     linux-server
        host_name               host_name
        alias                   EC2:i-xxxxxx
        address                 xxxxxxxxxxxx	#旧IPアドレスから新IPアドレスに変更
        check_command           check_dummy
        contact_groups          contact_groups
        }

define hostextinfo{
       host_name                host_name
       notes                    note
       notes_url                url
       }

define service{
        use                             local-service
        host_name                       host_name
        service_description             URL Check Failed
        check_command                   check_http!/healthcheck/healthcheck.html!10!10
        check_period                    24x7
        max_check_attempts              1
        normal_check_interval           5
        retry_check_interval            1
        notification_interval           60
        notification_period             24x7
        notification_options            c,r,u
        contact_groups                  contact_groups
        }
︙
---------------
```
#### 〇define host定義
・use　ホスト定義でのテンプレートを参照する。linux-serverはLinuxサーバーの監視に適した設定を含むテンプレートの名前。テンプレートは、監視間隔、リトライ間隔、通知方法などの基本的な監視設定を含むことが一般的。

・host_name
はそのままの意味ホスト名を記載する

・alias
ホスト名の別名を記載する

・address
ホストのIPアドレスを入力する

### 〇define hostextinfo定義
ホストの拡張情報を定義するために使用され、Nagiosの監視システムに追加の文脈や情報を提供します。
ホストに関する注釈や関連するウェブリソースへのリンクを含めることができる。

・host_name
この拡張情報が関連するホストの名前。すでに定義しているホストの名前と一致している必要がある。

・notes
ホストに関する追加情報または注釈です。これはNagiosのWebインターフェースで表示される。

・notes_url
このホストに関連するウェブページやリソースへのURLを指定する。ホストに関連するドキュメント、管理インターフェースへのリンクを提供するのに便利。

#### 〇define service定義(サービスを定義する)
（サービスとは、そのホストに対してどういった監視を実施するかを決めるもの）
 ・use
 テンプレートを指定する。テンプレートはホストと同様、**templates.cfg**に定義されている。

 ・host_name
 そのまま、ホスト定義で指定したものと同じ。

 ・service_description
 サービスの名前をや説明を記載する。自由に記載してよいが同一のホストに同一のサービス名を複数設定することはできません

・check_command
/etc/nagios/objects/commands.cfgファイルに設定されているコマンドを指定する。

・contact_groups
通知を受け取る連絡グループ。

・check_command
サービスをチェックするために使用するコマンド。check_http プラグインを使って特定のURL（/healthcheck/healthcheck.html）のHTTPチェックを行い、追加の引数（10 と 10）で応答時間の閾値を設定しています

・check_period: サービスのチェックを行う時間帯。24x7 は一週間中、24時間いつでもチェックを行うことを意味します。

・max_check_attempts: サービスが障害状態と判断される前にチェックを試みる最大回数。この例では 1 に設定されています。

・notification_interval: 通知を繰り返す間隔（分）。この例では 60 分ごとです。

・notification_period: 通知を送信する時間帯。ここでも 24x7 が指定されています。

・notification_options: 通知を送信する状況。c（クリティカル）、r（復旧）、u（不明）の状態で通知します。

### /etc/nagios/objects/commands.cfg
スクリプトを実行するためのコマンドが記載されている。

### /etc/nagios/objects/contacts.cfg
通知先が記載されているファイル。


### etc/nagios/objects/templates.cfg
ホストやサービスのテンプレートを定義するファイル。これにより、共通の設定を複数のホストやサービスに簡単に適用できます。

### objects/timeperiods.cfg
監視の時間帯を定義するファイル。例えば、「平日の営業時間」といった特定の時間帯を指定できます。

### cgi.cfg
NagiosのCGIスクリプトに関する設定を含むファイル。Webインターフェースにアクセスするユーザーの認証と権限を管理します。

### resource.cfg
外部リソース（例：パスワード、ユーザー名）の定義を含むファイル。セキュリティ上の理由から、これらの情報は他の設定ファイルから分離されています。

nagiosはデータベースを使用しないため、データ管理をすべてファイルベースで行っている。

## その他

　※NDOUtilsというユーティリティを使用することで、データをMySQLに格納することも可能です。

Webベースアプリケーションであり
LinuxやUNIXでないと動作しない

nagios xiは商用
nagios core　フリー版オープンソース

アマゾンLinuxは
RHEL7 / CentOS7 をベースとしていると言われて

SElinux
Security-Enhanced Linuxの略、有効化しておくと動かないものが多く、無効化しておくことも多いがセキュリティのためには利用したほうがよい。
getenforce/setenforce
「getenforce」はSELinuxの動作モードを表示するコマンド、「setenforce」はSELinuxの動作モードを一時的に変更するコマンド

nagiosの監視設定

・nagios -v /etc/nagios/nagios.cfg
nagiosに問題がないかチェック

・/etc/rc.d/init.d/nagios restart
nagiosを再起動