Rocky Linux 9/AlmaLinux 9上安装配置Nagios服务器

本文介绍如何在Rocky Linux 9/AlmaLinux 9系统上安装和配置Nagios服务器的方法,以下是详细的操作步骤。

详细步骤

1、安装所需的软件包

在开始之前,请确保系统和所有可用软件包都已更新到最新可用版本:

sudo dnf update -y

将SELinux设置为许可模式:

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

sudo setenforce 0

安装所需的软件包,如Apache和其他构建工具:

sudo dnf -y install unzip tar httpd httpd-tools php gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel

安装完成后,启动并启用Apache和PHP-FPM:

sudo systemctl enable --now httpd php-fpm

2、下载Nagios核心源代码

要下载Nagios Core的最新源代码,请导航到Nagios Downloads页面https://www.nagios.org/downloads/。或者,您可以获取最新版本并使用以下命令导出:

VER=4.4.9

导出后,使用以下命令下载版本:

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-$VER.tar.gz

提取存档:

tar xzf nagios-$VER.tar.gz

3、在Rocky Linux 9/AlmaLinux 9上安装Nagios Core

我们将首先配置内核以适应系统,并检查是否已安装所有所需的软件包:

cd nagios-$VER/

./configure

现在编译Nagios Core:

make all

将Nagios用户和组添加到系统:

sudo make install-groups-users

将Apache用户添加到创建的Nagios组中:

sudo usermod -aG nagios apache

现在通过执行以下命令安装Nagios Core:

sudo make install

安装Nagios的init脚本:

sudo make install-init

安装外部命令文件和权限:

sudo make install-commandmode

安装Nagios配置文件:

sudo make install-config

最后,安装Nagios的Apache配置文件:

sudo make install-webconf

4、在Rocky Linux 9/AlmaLinux 9上安装Nagios插件

插件用于从服务器收集监控信息。要从本地主机收集监控数据,可以安装Nagios插件,如下所示。首先从Nagios插件页面下载最新的socuce代码,地址在https://www.nagios.org/downloads/nagios-plugins/:

wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz

提取存档:

tar -xvf nagios-plugins-*.tar.gz

导航到目录:

cd nagios-plugins-*/

创建具有适当权限的所需目录:

mkdir -p /usr/local/nagios/var/spool/checkresults

sudo chown -R nagios:nagios /usr/local/nagios/var/spool/checkresults

配置并安装Nagios插件:

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

sudo make install

5、创建Nagios Web用户

为了访问Nagios web仪表板,我们需要创建一个用户帐户。此用户帐户将用于身份验证:

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

New password: PasswordHere

Re-type new password: Repeat_PasswordHere

Adding password for user nagiosadmin

用户的默认名称是nagiosadmin。您可以使用另一个用户名,方法是用首选用户名替换/usr/local/nagios/etc/cgi.cfg文件中的所有nagiosadmin实例。

通过设置正确的所有权和权限,允许apache访问配置文件:

sudo chown apache:apache /usr/local/nagios/etc/htpasswd.users

sudo chmod 640 /usr/local/nagios/etc/htpasswd.users

要应用所做的更改,请重新启动Apache:

sudo systemctl restart httpd

允许HTTP服务通过防火墙:

sudo firewall-cmd --add-port=80/tcp --permanent

sudo firewall-cmd --reload

启动并启用Nagios服务:

sudo systemctl enable nagios --now

重新启动系统:

sudo reboot now

系统重新启动后,验证服务是否正在运行:

$ systemctl status nagios

6、访问Nagios Web界面

现在,您可以使用URL访问Nagios web UI,地址格式是http://IP_Address/nagios/,您需要使用nagiosadmin用户登录,如图所示:

Rocky Linux 9/AlmaLinux 9上安装配置Nagios服务器

成功登录后,您将看到下面的仪表板:

Rocky Linux 9/AlmaLinux 9上安装配置Nagios服务器

可以查看主机可用性,包括检查服务下收集的数据。到这里,也说明您已在Rocky Linux 9/AlmaLinux 9上成功安装了Nagios服务器。接下来的步骤包括配置要监视的端点。

7、配置Rocky Linux 9/AlmaLinux 9 Nagios代理

要监视的代理。您需要安装以下组件:

用于数据收集的Nagios plugins。

执行插件的NRPE代理。

有两种方法可以在Rocky Linux 9/AlmaLinux 9上安装Nagios插件。可使用源代码或从EPEL repo安装。

在本文中,我们将使用最简单的方法,即使用EPEL repo。在Rocky Linux 9/AlmaLinux 9上启用EPEL repo:

sudo dnf install epel-release

启用后,查找可用的Nagios plugins:

$ dnf list nagios-plugins-*

Rocky Linux 9/AlmaLinux 9上安装配置Nagios服务器

现在安装首选的Nagios插件。例如,要检查进程、磁盘空间、交换空间、dns、用户、正常运行时间、http和加载的插件,请使用以下命令:

sudo dnf install nagios-plugins-{load,http,users,procs,disk,swap,nrpe,uptime,dns}

安装后,软件包将存储在路径/usr/lib64/nagios/plugins/下:

$ 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

此外,可以从源代码和EPEL安装Nagios NRPE代理。从EPEL repo安装它更容易,可以通过以下命令完成:

sudo dnf install nrpe

安装后,使用以下命令进行验证:

$ nrpe -V

NRPE - Nagios Remote Plugin Executor

Version: 4.1.0

启动并启用服务:

sudo systemctl enable nrpe --now

验证服务是否正在运行:

$ systemctl status nrpe

允许服务通过防火墙:

sudo firewall-cmd --add-port=5666/tcp --permanent

sudo firewall-cmd --reload

现在,在Nagios服务器上,通过在/usr/local/nagios/etc/objects创建新对象来添加远程主机。例如:

sudo vim /usr/local/nagios/etc/objects/nodes.cfg

添加以下行以适当替换:

# REMOTE HOST DEFINITION

define host {

    use                     linux-server

    host_name               node1.computingforgeeks-demo.com

    alias                   node1

    address                 192.168.205.13

}

# REMOTE HOST GROUP DEFINITION

define hostgroup {

    hostgroup_name         linux-servers

    alias                  Linux Servers

    members                node1.computingforgeeks-demo.com 

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     PING

    check_command           check_ping!100.0,20%!500.0,60%

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     Root Partition

    check_command           check_local_disk!20%!10%!/

}

define service {

    use                     local-service           ; Name of service template to use

    host_name             node1.computingforgeeks-demo.com

    service_description     Current Users

    check_command           check_local_users!20!50

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     Total Processes

    check_command           check_local_procs!250!400!RSZDT

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     Current Load

    check_command           check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     Swap Usage

    check_command           check_local_swap!20%!10%

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     SSH

    check_command           check_ssh

    notifications_enabled   0

}

define service {

    use                     local-service           ; Name of service template to use

    host_name               node1.computingforgeeks-demo.com

    service_description     HTTP

    check_command           check_http

    notifications_enabled   0

}

在上面的文件中,use local-service定义了要由添加的主机使用的模板。模板在默认模板目录中定义。您还可以创建要使用的自定义模板。

通过对conf进行以下更改,允许Nagios服务器使用配置:

sudo vim /usr/local/nagios/etc/nagios.cfg

添加以下行:

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

cfg_file=/usr/local/nagios/etc/objects/nodes.cfg

注释掉localhost.cfg以允许使用添加的远程主机。保存文件并重新启动Nagios:

sudo systemctl restart nagios

现在,从Nagios web UI,您可以对添加的主机执行监视。主机需要一段时间才能可用:

Rocky Linux 9/AlmaLinux 9上安装配置Nagios服务器

至此,配置完成,这也意味着在Rocky Linux 9/AlmaLinux 9系统上安装和配置Nagios服务器全部结束。

栏目相关文章