Contents
オープンソースの統合監視ソフトウェア「Nagios Server」インストール
Nagiosは、Linux 上で実行するオープンソースの監視ソリューションです。
Nagiosは、 Ethan Galstadによって開発され、 1999 年に最初にリリースされました。その後、このプロジェクトは、いくつかの貢献者によってオープンソース プロジェクトとして改良されました。
Nagiosは、ネットワーク、アプリケーション、またはサーバーの重要なパラメーターを定期的にチェックするように設計されています。これらのパラメータには、マイクロプロセッサの負荷、実行中のプロセス数、ログ ファイル、ディスクおよびメモリの使用量の他、SMTP (Simple Mail Transfer Protocol)、HTTP (Hypertext Transfer Protocol)、POP3 ( Post Office Protocol 3)の他の多くのサービスもチェックできます。
Nagoisを実行するにはPHP、MySQLなどのデータベース、ApacheやNginxなどのWebサーバーが必要です。今回はこれらすべてが構成済みという前提で進めます。
SELinux を permissive に設定する必要があります(SELinuxをDisabledにしている場合は有効にする)
1 2 3 4 5 6 7 |
# setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config # cat /etc/selinux/config | grep SELINUX= # SELINUX= can take one of these three values: # NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also #SELINUX=enforcing SELINUX=permissive |
1. 必要なパッケージをインストール
1 |
# dnf -y install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel |
Apache と PHP-FPM を起動して有効にする
1 |
# systemctl enable --now httpd php-fpm |
2. Nagios Coreのインストール
①ダウンロード
Nagios Core の最新のソース コードをダウンロードするには、Nagios ダウンロードページに移動し、最新のリリース バージョンを確認する(2022.11.3現在)
1 2 3 4 5 |
# VER=4.4.8 # wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-$VER.tar.gz 展開する # tar xzf nagios-$VER.tar.gz |
②インストール
1 2 |
# cd nagios-$VER/ # ./configure |
以下のように表示される
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
checking for a BSD-compatible install... /usr/bin/install -c checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu ~中略~ config.status: creating lib/snprintf.h config.status: creating lib/iobroker.h Creating sample config files in sample-config/ ... *** Configuration summary for nagios 4.4.8 2022-10-04 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/httpd/conf.d Mail program: /usr/bin/mail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): /usr/bin/traceroute Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs |
コンパイル
1 |
# make all |
以下のように表示される
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
- This installs the Exfoliation theme for the Nagios web interface make install-classicui - This installs the classic theme for the Nagios web interface *** Support Notes ******************************************* If you have questions about configuring or running Nagios, please make sure that you: - Look at the sample config files - Read the documentation on the Nagios Library at: https://library.nagios.com before you post a question to one of the mailing lists. Also make sure to include pertinent information that could help others help you. This might include: - What version of Nagios you are using - What version of the plugins you are using - Relevant snippets from your config files - Relevant error messages from the Nagios log file For more information on obtaining support for Nagios, visit: https://support.nagios.com ************************************************************* Enjoy. |
Nagios ユーザーとグループを作成
1 |
# make install-groups-users |
Nagios グループに Apache ユーザーを追加
1 |
# usermod -aG nagios apache |
Nagios Core をインストール
1 |
# make install |
Nagios の init スクリプトをインストール
1 2 3 |
# make install-init /usr/bin/install -c -m 755 -d -o root -g root /lib/systemd/system /usr/bin/install -c -m 755 -o root -g root startup/default-service /lib/systemd/system/nagios.service |
外部コマンド ファイルと権限をインストール
1 2 3 4 |
# make install-commandmode /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw chmod g+s /usr/local/nagios/var/rw *** External command directory configured *** |
Nagios 構成ファイルをインストール
1 2 3 4 5 |
# make install-config *** Config files installed *** Remember, these are *SAMPLE* config files. You'll need to read the documentation for more information on how to actually define services, hosts, etc. to fit your particular needs. |
Nagios 用の Apache 構成ファイルをインストール
1 2 3 4 5 6 |
# make install-webconf usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf if [ 0 -eq 1 ]; then \ ln -s /etc/httpd/conf.d/nagios.conf /etc/apache2/sites-enabled/nagios.conf; \ fi *** Nagios/Apache conf file installed *** |
3. Nagios プラグインをインストール
①Nagios Pluginsページから最新の codeをダウンロード
1 |
# wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz |
②インストール
1 2 3 4 5 |
# tar -xvf nagios-plugins-2.3.3.tar.gz # cd nagios-plugins-2.3.3 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install |
③必要なディレクトリを作成
1 2 |
# mkdir -p /usr/local/nagios/var/spool/checkresults # chown -R nagios:nagios /usr/local/nagios/var/spool/checkresults |
4. Nagios Web ユーザーの作成
Nagios Web ダッシュボードにアクセスするためのユーザー アカウントを作成する。このユーザーアカウントは、認証に使用される。
ユーザーのデフォルト名はnagiosadminで、/usr/local/nagios/etc/cgi.cfgファイル内に優先ユーザー名として定義されています。
1 2 3 4 |
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin |
所有権と権限を設定
1 2 |
# chown apache:apache /usr/local/nagios/etc/htpasswd.users # chmod 640 /usr/local/nagios/etc/htpasswd.users |
Apache を再起動
1 |
# systemctl restart httpd |
ファイアウォールで HTTP サービスポートを解放します
1 2 |
# firewall-cmd --add-port=80/tcp --permanent # firewall-cmd --reload |
Nagios サービスを開始と有効
1 2 |
# systemctl enable nagios --now Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /usr/lib/systemd/system/nagios.service. |
システムを再起動
1 |
# shutdown -r now |
サービスが実行しているか確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# systemctl status nagios ● nagios.service - Nagios Core 4.4.8 Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; vendor pr> Active: active (running) since Wed 2022-11-02 20:36:36 JST; 1min 10s ago Docs: https://www.nagios.org/documentation Process: 832 ExecStartPre=/usr/local/nagios/bin/nagios -v /usr/local/nagios> Process: 842 ExecStart=/usr/local/nagios/bin/nagios -d /usr/local/nagios/et> Main PID: 843 (nagios) Tasks: 6 (limit: 10944) Memory: 21.0M CPU: 56ms CGroup: /system.slice/nagios.service tq843 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios> tq844 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/> tq845 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/> tq846 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/> tq847 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/> mq850 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios> |
5. Nagios Web インターフェイスにアクセス
任意のブラウザで http://[IP_Address]/nagios/にアクセスし[Username]にnagoisadmin、[Password]には上記でユーザーを作成したとき指定したパスワードを入力し、[Sign in]
ログインに成功すると、以下のダッシュボードが表示されます。
ホストの可用性を表示
左メニューの[Hosts]をクリック
左メニューの [Tactical Overview] をクリックすると監視データを閲覧できる
6. Nagios エージェントの構成
エージェントを監視するため。以下をインストールする
• データ収集用のNagios plugins
• プラグインを実行するNRPE Agent
6.1 Nagios pluginsのインストール
EPEL リポジトリを使用してインストールする
1 |
# dnf install epel-release |
利用可能な Nagios プラグイン
1 |
# dnf list nagios-plugins-* |
下記のとおりnagios-pluginsが利用可能である
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
Available Packages nagios-plugins-all.x86_64 2.4.0-7.el9 epel nagios-plugins-apt.x86_64 2.4.0-7.el9 epel nagios-plugins-breeze.x86_64 2.4.0-7.el9 epel nagios-plugins-by_ssh.x86_64 2.4.0-7.el9 epel nagios-plugins-cluster.x86_64 2.4.0-7.el9 epel nagios-plugins-dhcp.x86_64 2.4.0-7.el9 epel nagios-plugins-dig.x86_64 2.4.0-7.el9 epel nagios-plugins-disk.x86_64 2.4.0-7.el9 epel nagios-plugins-disk_smb.x86_64 2.4.0-7.el9 epel nagios-plugins-dns.x86_64 2.4.0-7.el9 epel nagios-plugins-dummy.x86_64 2.4.0-7.el9 epel nagios-plugins-file_age.x86_64 2.4.0-7.el9 epel nagios-plugins-flexlm.x86_64 2.4.0-7.el9 epel nagios-plugins-fping.x86_64 2.4.0-7.el9 epel nagios-plugins-game.x86_64 2.4.0-7.el9 epel nagios-plugins-hpjd.x86_64 2.4.0-7.el9 epel nagios-plugins-http.x86_64 2.4.0-7.el9 epel nagios-plugins-icmp.x86_64 2.4.0-7.el9 epel nagios-plugins-ide_smart.x86_64 2.4.0-7.el9 epel nagios-plugins-ifoperstatus.x86_64 2.4.0-7.el9 epel nagios-plugins-ifstatus.x86_64 2.4.0-7.el9 epel nagios-plugins-ircd.x86_64 2.4.0-7.el9 epel nagios-plugins-ldap.x86_64 2.4.0-7.el9 epel nagios-plugins-load.x86_64 2.4.0-7.el9 epel nagios-plugins-log.x86_64 2.4.0-7.el9 epel nagios-plugins-mailq.x86_64 2.4.0-7.el9 epel nagios-plugins-mrtg.x86_64 2.4.0-7.el9 epel nagios-plugins-mrtgtraf.x86_64 2.4.0-7.el9 epel nagios-plugins-mysql.x86_64 2.4.0-7.el9 epel nagios-plugins-nagios.x86_64 2.4.0-7.el9 epel nagios-plugins-nrpe.x86_64 4.1.0-2.el9 epel nagios-plugins-nt.x86_64 2.4.0-7.el9 epel nagios-plugins-ntp.x86_64 2.4.0-7.el9 epel nagios-plugins-nwstat.x86_64 2.4.0-7.el9 epel nagios-plugins-oracle.x86_64 2.4.0-7.el9 epel nagios-plugins-overcr.x86_64 2.4.0-7.el9 epel nagios-plugins-perl.x86_64 2.4.0-7.el9 epel nagios-plugins-pgsql.x86_64 2.4.0-7.el9 epel nagios-plugins-ping.x86_64 2.4.0-7.el9 epel nagios-plugins-procs.x86_64 2.4.0-7.el9 epel nagios-plugins-real.x86_64 2.4.0-7.el9 epel nagios-plugins-remove_perfdata.x86_64 2.4.0-7.el9 epel nagios-plugins-rpc.x86_64 2.4.0-7.el9 epel nagios-plugins-sensors.x86_64 2.4.0-7.el9 epel nagios-plugins-smtp.x86_64 2.4.0-7.el9 epel nagios-plugins-snmp.x86_64 2.4.0-7.el9 epel nagios-plugins-ssh.x86_64 2.4.0-7.el9 epel nagios-plugins-ssl_validity.x86_64 2.4.0-7.el9 epel nagios-plugins-swap.x86_64 2.4.0-7.el9 epel nagios-plugins-tcp.x86_64 2.4.0-7.el9 epel nagios-plugins-time.x86_64 2.4.0-7.el9 epel nagios-plugins-ups.x86_64 2.4.0-7.el9 epel nagios-plugins-uptime.x86_64 2.4.0-7.el9 epel nagios-plugins-users.x86_64 2.4.0-7.el9 epel nagios-plugins-wave.x86_64 2.4.0-7.el9 epel |
重要なNagios プラグインをインストールします。(例としてcheck the processes, disk space, swap space, dns, users, uptime, httpand load、をインストール)
1 |
# dnf install nagios-plugins-{load,http,users,procs,disk,swap,nrpe,uptime,dns} |
インストールすると、パッケージはパス /usr/lib64/nagios/plugins/ に保存されるので確認する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# ls -1 /usr/lib64/nagios/plugins/ check_disk check_dns check_http check_load check_nrpe check_procs check_swap check_uptime check_users eventhandlers negate urlize utils.sh |
6.2 Nagios NRPE Agentのインストール
EPEL リポジトリからインストールします
1 |
# dnf install nrpe |
バージョン確認
1 2 3 |
# nrpe -V NRPE - Nagios Remote Plugin Executor Version: 4.1.0 |
サービスを開始して有効にする
1 2 |
# systemctl enable nrpe --now Created symlink /etc/systemd/system/multi-user.target.wants/nrpe.service → /usr/lib/systemd/system/nrpe.service. |
サービスが実行されているかどうかを確認
1 2 3 4 5 6 7 8 9 10 11 |
# systemctl status nrpe ● nrpe.service - Nagios Remote Plugin Executor Loaded: loaded (/usr/lib/systemd/system/nrpe.service; enabled; vendor pres> Active: active (running) since Wed 2022-11-02 22:24:18 JST; 1min 11s ago Docs: http://www.nagios.org/documentation Main PID: 4396 (nrpe) Tasks: 1 (limit: 10944) Memory: 1.3M CPU: 8ms CGroup: /system.slice/nrpe.service mq4396 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f |
ファイアウォールを通過するサービスを許可
1 2 |
# firewall-cmd --add-port=5666/tcp --permanent # firewall-cmd --reload |
1 |
# systemctl restart nagios |
Nagios Web UI から、追加されたホストの監視を実行できるようになりました。ホストが使用可能になるまでに時間がかかります。