nagiosのインストール手順
1ウェブサーバーとPHPをインストールする
・httpdをインストールする
yum install httpd
・httpdの自動起動設定する
systemctl enable httpd
・httpdを起動する
systemctl start httpd
2epel リポジトリを用意する
epelはサードパーティ製のリポジトリです。標準のリポジトリでは提供されないパッケージを使うときに使用します。
amazon-linux-extrasはAmazonLinux2にはインストールされていない。
amazon-linux-extras
amamazon-linux-extrasazon-linux-extras
3ナギオスとオフィシャルプラグインをインストールする
以下がnagiosとnagiosのオフィシャルプラグインをインストールするコマンド
(プラグインはオフィシャル以外のプラグインもたくさんある。)
yum -y install nagios nagios-plugins-all
4設定ファイルを編集していく
/etc/nagios/nagios.cfg
Nagiosの主要cfgファイルです。編集する前にバックアップを取るようにしましょう。
ログファイルの場所、チェック間隔、通知設定などが設定されます
nagiosの主要cfgファイルログをどこに出力するのかなどの設定が記載されている。
--ファイル内容------
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を再起動