Rhel 8/CentOS 8上安装和配置Nagios 4

时间:2020-02-23 14:39:09  来源:igfitidea点击:

如何在Rhel 8/CentOS 8 Linux机器上安装Nagios Core?
本教程将解释如何在RHEL 8/CentOS 8上安装和配置Nagios 4. Nagios是各种操作系统的开源主机,服务,过程和网络监控工具,如Linux,Windows,BSD,AIX 等。

Nagios使用文本文件配置,并提供了一种用于管理和监视的直观Web界面。
如果出现问题,服务退化或者中断,Nagios将通过电子邮件,短信或者甚至电话发送警报,如果配置为这样做。

按照以下步骤安装和配置RHEL/CentOS 8上的Nagios 4监视服务器。

安装前提条件

在许可模式下设置SELinux:

sudo sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
sudo setenforce 0

第1步:安装依赖项

建议在更新系统上工作。

sudo dnf update

安装REL/CentOS 8上的构建和运行Nagios Server的所需依赖项。

sudo dnf install @php
sudo dnf install @perl @httpd wget unzip glibc automake glibc-common gettext autoconf php php-cli gcc gd gd-devel net-snmp openssl-devel unzip net-snmp postfix net-snmp-utils

我们还可以检查如何在Rhel/CentOS 8上安装开发工具。

sudo dnf groupinstall "Development Tools"

安装后,启动和启用HTTPD和PHP-FPM服务。

sudo systemctl enable --now httpd php-fpm

确认服务状态。

$systemctl status httpd php-fpm
 ● httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Drop-In: /usr/lib/systemd/system/httpd.service.d
            └─php-fpm.conf
    Active: active (running) since Mon 2019-03-18 21:07:31 EAT; 17min ago
      Docs: man:httpd.service(8)
  Main PID: 794 (httpd)
    Status: "Running, listening on: port 443, port 80"
     Tasks: 213 (limit: 11510)
    Memory: 38.0M
    CGroup: /system.slice/httpd.service
            ├─794 /usr/sbin/httpd -DFOREGROUND
            ├─810 /usr/sbin/httpd -DFOREGROUND
            ├─811 /usr/sbin/httpd -DFOREGROUND
            ├─812 /usr/sbin/httpd -DFOREGROUND
            └─813 /usr/sbin/httpd -DFOREGROUND
 Mar 18 21:07:30 rhel8.local systemd[1]: Starting The Apache HTTP Server…
 Mar 18 21:07:31 rhel8.local httpd[794]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using rhel8.local. Set >
 Mar 18 21:07:31 rhel8.local httpd[794]: Server configured, listening on: port 443, port 80
 Mar 18 21:07:31 rhel8.local systemd[1]: Started The Apache HTTP Server.
 ● php-fpm.service - The PHP FastCGI Process Manager
    Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
    Active: active (running) since Mon 2019-03-18 21:07:31 EAT; 17min ago
  Main PID: 795 (php-fpm)
    Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
     Tasks: 6 (limit: 11510)
    Memory: 43.2M
    CGroup: /system.slice/php-fpm.service
            ├─ 795 php-fpm: master process (/etc/php-fpm.conf)
            ├─1023 php-fpm: pool www
            ├─1030 php-fpm: pool www
            ├─1033 php-fpm: pool www
            ├─1043 php-fpm: pool www
            └─1087 php-fpm: pool www
 Mar 18 21:07:30 rhel8.local systemd[1]: Starting The PHP FastCGI Process Manager…
 Mar 18 21:07:31 rhel8.local systemd[1]: Started The PHP FastCGI Process Manager.

我们可以在安装PHP和Apache Httpd Server上看到详细教程。

第2步:下载Nagios Core

查看最新Nagios的版本页面可用。
然后下载并提取Nagios tar包。

cd ~
export VER="4.4.6"
curl -SL https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-$VER/nagios-$VER.tar.gz | tar -xzf 

更改为创建的Nagios文件夹。

cd nagios-$VER

第3步:在RHEL 8/CentOS 8上编译Nagios核心 1.提取存档后,运行配置脚本:

./configure

示例输出。

2
使用make命令 all编译主程序和CGI的选项。

make all

3.创建用户和组

这会创建Nagios用户和组。
Apache用户也将添加到Nagios组中。

sudo make install-groups-users
sudo usermod -a -G nagios apache

4
在Rhel/CentOS 8上安装Nagios

安装Nagios Base。

sudo make install

4.安装init脚本 /lib/systemd/system

$sudo make install-daemoninit
/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
Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /usr/lib/systemd/system/nagios.service.
*** Init script installed ***

5.安装并配置用于保存外部命令文件的目录的权限。

$sudo 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 ***

6.安装示例配置文件 /usr/local/nagios/etc

$sudo make install-config
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc
 /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc/objects
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg
 /usr/bin/install -c -b -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/templates.cfg /usr/local/nagios/etc/objects/templates.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/objects/commands.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/timeperiods.cfg /usr/local/nagios/etc/objects/timeperiods.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/windows.cfg /usr/local/nagios/etc/objects/windows.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/printer.cfg /usr/local/nagios/etc/objects/printer.cfg
 /usr/bin/install -c -b -m 664 -o nagios -g nagios sample-config/template-object/switch.cfg /usr/local/nagios/etc/objects/switch.cfg
 *** 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.

7.安装Nagios Web界面的Apache配置文件。

$sudo 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 ***

8.为Nagios Web界面安装exfoliation主题。

$sudo make install-exfoliation
*** Exfoliation theme installed ***
 NOTE: Use 'make install-classicui' to revert to classic Nagios theme

9.为Nagios Web界面安装Classic主题。

$sudo make install-classicui
*** Classic theme installed ***
 NOTE: Use 'make install-exfoliation' to use new Nagios theme

第4步:创建Nagios Web用户

我们需要添加一个用户帐户来访问Nagios Web界面。
为此,我们将使用 htpasswd写信给 /usr/local/nagios/etc/htpasswd.users文件。

$sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin

输入和确认用户的密码。
我们还需要重新启动Apache服务以进行更改以生效:

sudo systemctl restart httpd

第5步:安装Nagios插件

Nagios插件用于扩展Nagios监控功能。

cd ~

从GitHub发布页面下载Nagios插件。

VER="2.3.3"
curl -SL https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$VER/nagios-plugins-$VER.tar.gz | tar -xzf 

更改为插件源目录:

cd nagios-plugins-$VER

通过在下面的运行命令编译并安装Nagios插件。

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

我们应该在成功编译时看到下面的输出。

.....
configure: creating ./config.status
config.status: creating gl/Makefile
config.status: creating nagios-plugins.spec
config.status: creating tools/build_perl_modules
config.status: creating Makefile
config.status: creating tap/Makefile
config.status: creating lib/Makefile
config.status: creating plugins/Makefile
config.status: creating lib/tests/Makefile
config.status: creating plugins-root/Makefile
config.status: creating plugins-scripts/Makefile
config.status: creating plugins-scripts/utils.pm
config.status: creating plugins-scripts/utils.sh
config.status: creating perlmods/Makefile
config.status: creating test.pl
config.status: creating pkg/solaris/pkginfo
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
.......
make[1]: Leaving directory '/usr/src/nagios-plugins-2.2.1/po'
make[1]: Entering directory '/usr/src/nagios-plugins-2.2.1'
make[2]: Entering directory '/usr/src/nagios-plugins-2.2.1'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/usr/src/nagios-plugins-2.2.1'
make[1]: Leaving directory '/usr/src/nagios-plugins-2.2.1'

第6步:验证安装并启动Nagios服务

确认Nagios安装成功并工作。

$sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
 Nagios Core 4.4.5
 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
 Copyright (c) 1999-2009 Ethan Galstad
 Last Modified: 2019-08-20
 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

启动并启用Nagios服务以启动启动。

$sudo systemctl  enable --now nagios
Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /usr/lib/systemd/system/nagios.service.

服务状态应指示运行。

$systemctl status nagios
 ● nagios.service - Nagios Core 4.4.3
    Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; vendor preset: disabled)
    Active: active (running) since Mon 2019-03-18 22:55:35 EAT; 18s ago
      Docs: https://www.nagios.org/documentation
   Process: 29161 ExecStart=/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg (code=exited, status=0/SUCCESS)
   Process: 29159 ExecStartPre=/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg (code=exited, status=0/SUCCESS)
  Main PID: 29162 (nagios)
     Tasks: 6 (limit: 11510)
    Memory: 2.9M
    CGroup: /system.slice/nagios.service
            ├─29162 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
            ├─29163 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
            ├─29164 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
            ├─29165 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
            ├─29166 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
            └─29167 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
 Mar 18 22:55:35 rhel8.local nagios[29162]: qh: Socket '/usr/local/nagios/var/rw/nagios.qh' successfully initialized
 Mar 18 22:55:35 rhel8.local nagios[29162]: qh: core query handler registered
 Mar 18 22:55:35 rhel8.local nagios[29162]: qh: echo service query handler registered
 Mar 18 22:55:35 rhel8.local nagios[29162]: qh: help for the query handler registered
 Mar 18 22:55:35 rhel8.local nagios[29162]: wproc: Successfully registered manager as @wproc with query handler
 Mar 18 22:55:35 rhel8.local nagios[29162]: wproc: Registry request: name=Core Worker 29165;pid=29165
 Mar 18 22:55:35 rhel8.local nagios[29162]: wproc: Registry request: name=Core Worker 29163;pid=29163
 Mar 18 22:55:35 rhel8.local nagios[29162]: wproc: Registry request: name=Core Worker 29164;pid=29164
 Mar 18 22:55:35 rhel8.local nagios[29162]: wproc: Registry request: name=Core Worker 29166;pid=29166
 Mar 18 22:55:36 rhel8.local nagios[29162]: Successfully launched command file worker with pid 29167

第7步:访问Nagios Web Dashboard

允许防火墙上的HTTP和HTTPS协议。

sudo firewall-cmd --permanent  --add-service={http,https}
sudo firewall-cmd --reload

在安装过程中,添加了Nagios的Apache配置文件。
我们可以访问仪表板 http:[IP/hostname]/nagios/

使用前面添加的用户名和密码进行身份验证。

Username: nagiosadmin

我们应该看到Nagios仪表板,我们可以其中添加要监视的设备。