如何配置Nagios服务器以监控Apache服务器
在本文中,我们将介绍如何在CentOS 6.7上安装Nagios 4(一个非常流行的开源监控工具)。我们将介绍一些基本的配置步骤,这些步骤可能对通过Web界面监控大量资源很有用。在这里,我们还将使用Nagios远程插件执行器(NRPE),它作为代理安装在远程主机上,以监控服务器/客户端的本地资源。
Nagios可用于跟踪服务器清单,并确保关键服务正常运行。在任何生产服务器环境中,Nagios作为监控系统都是必不可少的工具。
前提条件
要配置Nagios,理想情况下,我们必须在运行Nagios的Linux服务器上拥有root用户权限。
安装Nagios 4
**创建Nagios用户和组**: 我们必须创建一个用户和组来运行Nagios进程。创建“Nagios”用户和“nagcmd”组,然后使用以下命令将用户添加到该组
# useradd nagios # groupadd nagcmd # usermod -a -G nagcmd nagios
安装构建依赖项
由于我们是从源代码构建Nagios Core,因此我们必须安装一些开发库,以便完成构建。同时,我们还将安装**apache2-utils**,它将用于设置Nagios Web界面。
首先,更新您的Yum软件包列表
# yum update
然后,安装所需的软件包
# yum install -y httpd php gcc glibc glibc-common gd gd-devel make net-snmp perl-rrd xinetd openssl-devel package perl-GD* ntp perl-rrd*
下载Nagios 4.1.1 Core和插件
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.1.1.tar.gz # wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
安装Nagios Core 4.1.1
我们需要使用tar命令解压下载的软件包,如下所示。
# tar –xvf nagios-4.1.1.tar.gz # cd nagios-*
在构建Nagios之前,我们必须对其进行配置。如果您想将其配置为使用postfix(可以使用apt-get安装),请将`–with-mail=/usr/sbin/sendmail`添加到以下命令中
# ./configure --with-nagios-group=nagios --with-command-group=nagcmd Output: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagcmd Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: ${prefix}/var/nagios.lock Check result directory: ${prefix}/var/spool/checkresults Init directory: /etc/init.d Apache conf.d directory: /etc/httpd/conf.d Mail program: /usr/bin/mail Host OS: nagios.test.com Web Interface Options: ------------------------ HTML URL: https://127.0.0.1/nagios/ CGI URL: https://127.0.0.1/nagios/cgi-bin/ Traceroute (used by WAP): /usr/sbin/traceroute Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs *** Main program, CGIs and HTML files installed *** Now compile Nagios with this command: Output: You can continue with installing Nagios as follows (type 'make'without any arguments for a list of all possible options):
# make install-init
– 这会将init脚本安装在`/etc/rc.d/init.d`中
# make install-commandmode
– 这会安装并配置保存外部命令文件的目录的权限
# make install-init
为了使nagios能够从命令行工作,我们需要安装命令模式。
# make install-commandmode
接下来,安装示例nagios文件,请运行以下命令。
# make install-config Output: /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 ***
安装Nagios插件
在此处查找Nagios插件的最新版本:Nagios插件下载。复制最新版本的链接地址,并复制链接地址以便您可以将其下载到您的Nagios服务器。
在撰写本文时,最新版本是Nagios Plugins 2.1.1。
# cd /root/nagios # cd tar –xvf nagios-plugins-2.1.1.tar.gz # ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl --enable-perl-modules --enable-libtap # make # make install
安装NRPE
在NRPE下载页面查找NRPE最新稳定版本的源代码。将最新版本下载到您的Nagios服务器。
在撰写本文时,最新版本是2.15。
# mkdir -p /usr/local/src/nrpe # cd /usr/local/src/nrpe
下载文件并解压
# wget http://kent.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz # tar -xf nrpe-2.15.tar.gz # cd nrpe-2.15
由于OpenSSL库文件夹存在问题,我们需要使用`/usr/lib`以外的另一个路径
#./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
现在进行make和make install
# make all
接下来,安装NRPE插件守护程序和示例守护程序配置文件。
# make install-plugin # make install-daemon # make install-daemon-config
将NRPE守护程序作为服务安装在xinetd下。
# make install-xinetd
接下来,打开`/etc/services`文件,在文件的底部为NRPE守护程序添加以下条目。
# vi /etc/services nrpe 5666/tcp NRPE
重启xinetd服务。
# service xinetd restart
本地验证NRPE守护程序
运行以下命令以验证NRPE守护程序在xinetd下是否正常工作。
# netstat -at | grep nrpe tcp 0 0 *:nrpe *:* LISTEN
验证NRPE守护程序是否正常运行。
# /usr/local/nagios/libexec/check_nrpe -H localhost Output: NRPE v2.15
现在Nagios 4.1.1已安装,我们需要对其进行配置。
配置Nagios
现在让我们执行初始Nagios配置。您只需要在Nagios服务器上执行此部分一次。
在您最喜欢的文本编辑器中打开主要的Nagios配置文件。我们将使用vi编辑该文件
# vi /usr/local/nagios/etc/nagios.cfg
现在找到并取消注释此行(删除#)
# cfg_dir=/usr/local/nagios/etc/servers
现在创建将存储每个要监控的服务器的配置文件的目录
# mkdir /usr/local/nagios/etc/servers
配置Nagios联系人
在您最喜欢的文本编辑器中打开Nagios联系人配置。我们将使用vi编辑该文件
# vi /usr/local/nagios/etc/objects/contacts.cfg
找到email指令,并将其值(突出显示的部分)替换为您自己的电子邮件地址
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
配置check_nrpe命令
让我们向Nagios配置添加一个新命令
# vi /usr/local/nagios/etc/objects/commands.cfg
将以下内容添加到文件的末尾
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
安装和配置Nagios的Web界面
我们完成了后端的所有配置,现在我们将使用以下命令配置Nagios的Web界面。以下命令将配置Nagios的Web界面,并将创建一个Web管理员用户“nagiosadmin”。
# make install-webconf
在此步骤中,我们将为“nagiosadmin”创建密码。执行此命令后,请两次提供密码并记住它,因为此密码将在您登录Nagios Web界面时使用。
# htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password:************ Re-type new password:************
添加nagiosadmin用户的密码
重新启动Apache以使新设置生效。
# service httpd start
Nagios现在正在运行,所以让我们尝试登录。
访问Nagios Web界面
打开您最喜欢的Web浏览器,然后转到您的Nagios服务器http://nagios_server_public_IP或私有IP地址/nagios。
因为我们将Apache配置为使用htpasswd,所以您必须输入您之前创建的登录凭据。我们使用“nagiosadmin”作为用户名
身份验证后,您将看到默认的Nagios主页。单击左侧导航栏中的“主机”链接,以查看Nagios正在监控哪些主机
如您所见,Nagios仅监控“localhost”或自身。
监控/使用NRPE添加新主机
在本节中,我们将向您展示如何向Nagios添加新主机,以便对其进行监控。对于要监控的每台服务器,重复此部分。
在要监控的服务器上,更新apt-get
# yum update
现在安装Nagios插件和NRPE
# yum install nagios-plugins nagios-nrpe-server
配置允许的主机
现在,让我们更新NRPE配置文件。在您最喜欢的编辑器中打开它(我们使用vi)
# vi /etc/nagios/nrpe.cfg
找到allowed_hosts指令,并将Nagios服务器的私有IP地址添加到逗号分隔的列表中(用突出显示的示例替换它)
allowed_hosts=127.0.0.1,10.132.224.168
保存并退出。这将配置NRPE以通过其私有IP地址或公共IP地址接受来自Nagios服务器的请求。
添加主机
# cd /usr/local/nagios/etc # vi /usr/local/nagios/etc/hosts.cfg
define host{ name linux-box ; 此模板的名称 use generic-host ; 继承默认值 check_period 24x7 check_interval 5 retry_interval 1 max_check_attempts 10 check_command check-host-alive notification_period 24x7 notification_interval 30 notification_options d,r contact_groups admins register 0 } define host{ use linux-box ; 从模板继承默认值 host_name Testbox ; 我们为此服务器提供的名称 alias CentOS 6.7 ; 服务器的更长名称 address 192.168.1.84 ; 远程Linux主机的IP地址 }
要添加服务,我们需要编辑services.cfg文件,我们添加CPU负载、总进程、当前用户、根分区、主目录分区、Ping状态
# vi /usr/local/nagios/etc/services.cfg define service{ use generic-service host_name TestBox service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name Testbox service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name Testbox service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name Testbox service_description Root Partition check_command check_nrpe!check_disk } define service{ use generic-service host_name Testbox service_description Home Partition check_command check_nrpe!check_disk_home } define service{ use generic-service host_name Testbox service_description Ping Status check_command check_ping!10.0,80%!50.0,90% }
我们需要在nagios.cfg中添加此配置文件。
# vi /usr/local/nagios/nagios.cfg cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg
现在需要在commands.cfg文件中创建NRPE命令定义。
# vi /usr/local/nagios/etc/objects/commands.cfg define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
最后,验证Nagios配置文件中是否存在任何错误。
验证Nagios配置文件
现在我们完成了Nagios配置,现在该验证它了,为此,请运行以下命令。如果一切顺利,它将显示类似于以下输出的结果。
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Output: Nagios Core 4.1.1 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 08-19-2015 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 7 services. Checked 1 hosts. Checked 1 host groups. Checked 0 service groups. Checked 1 contacts. Checked 1 contact groups. Checked 7 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 1 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服务器
# service nagios reload Running configuration check... Stopping nagios: done. Starting nagios: done.
监控Apache Web服务器
Nagios也可用于监控Apache Web服务器。
Apache监控要求
监控Apache服务器是否可用。这项任务非常容易,因为Nagios为此内置了一个命令,我们需要编辑下面的文件。
# vi /etc/nagios3/conf.d/services.cfg define service{ use generic-service host_name Webserver service_description Check Apache Web Server check_command check_http }
完成后,请检查Nagios配置并在我们打开Web界面并单击服务后重新启动服务,我们可以看到Apache服务正在监控。
结论
现在您了解了Nagios及其功能,例如监控您的主机和某些服务,您可能需要花一些时间来确定哪些服务对您至关重要,以便您可以开始监控这些服务器。您可能还需要设置通知,例如,当磁盘利用率达到警告或临界阈值或您的主要网站关闭时,您会收到电子邮件,以便您可以立即或在问题发生之前解决问题。