介绍
在本教程中,我们将涵盖安装Nagios 4,一个非常流行的开源监控系统,在Ubuntu 14.04.我们将涵盖一些基本的配置,所以你将能够通过Web界面监控主机资源。
Nagios 有助于保持服务器的库存,并确保您的关键服务正在运行. 使用监控系统,如Nagios,是任何生产服务器环境中不可或缺的工具。
前提条件
要遵循本教程,您必须在 Ubuntu 14.04 服务器上拥有超级用户权限,该服务器将运行 Nagios. 理想情况下,您将使用具有超级用户权限的非根用户。 如果您需要帮助设置它,请按照本教程中的步骤 1 到 3 执行: Ubuntu 14.04 初始服务器设置。
如果您需要设置它,请遵循本教程: How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Ubuntu 14.04。
本教程假设您的服务器已启用私人网络. 如果没有,只需用公共 IP 地址更换所有私人 IP 地址的引用。
现在我们已经解决了前提条件,让我们继续安装Nagios 4。
安装Nagios 4
本节将介绍如何在您的监控服务器上安装 Nagios 4,您只需要完成此部分一次。
创建 Nagios 用户和组
创建一个nagios
用户和nagcmd
组,然后用以下命令将用户添加到组中:
1sudo useradd nagios
2sudo groupadd nagcmd
3sudo usermod -a -G nagcmd nagios
安装构建依赖
由于我们正在从源头上构建 Nagios Core,我们必须安装一些开发库,这将使我们能够完成构建,而我们正在进行中,我们还将安装apache2-utils
,这将用于设置Nagios Web 界面。
首先,更新您的 apt-get 包列表:
1sudo apt-get update
然后安装所需的包:
1sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip
现在就来安装Nagios吧。
安装 Nagios Core
下载 Nagios Core 最新稳定版本的源代码。 转到 Nagios 下载页面,然后点击表单下方的 Skip to download 链接。
在这篇文章的写作时,最新的稳定版本是Nagios 4.1.1。
1cd ~
2curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz
使用此命令提取 Nagios 档案:
1tar xvf nagios-*.tar.gz
然后更改到提取的目录:
1cd nagios-*
如果您想将它配置为使用postfix(您可以用 apt-get 安装),请将 --with-mail=/usr/sbin/sendmail
添加到以下命令:
1./configure --with-nagios-group=nagios --with-command-group=nagcmd
现在用这个命令编译 Nagios:
1make all
现在我们可以运行这些 make 命令来安装 Nagios、 init 脚本和样本配置文件:
1sudo make install
2sudo make install-commandmode
3sudo make install-init
4sudo make install-config
5sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf
为了通过 Web 界面向 Nagios 发出外部命令,我们必须将 Web 服务器用户 www-data
添加到 nagcmd
组:
1sudo usermod -G nagcmd www-data
安装 Nagios 插件
请在这里找到 Nagios 插件的最新版本: Nagios 插件下载. 复制最新版本的链接地址,并复制链接地址,以便您可以将其下载到您的 Nagios 服务器。
在这篇文章的写作时,最新版本是Nagios Plugins 2.1.1 下载到您的主目录用 curl:
1cd ~
2curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
使用此命令提取 Nagios Plugins 档案:
1tar xvf nagios-plugins-*.tar.gz
然后更改到提取的目录:
1cd nagios-plugins-*
在构建 Nagios 插件之前,我们必须配置它。
1./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
现在用这个命令编译 Nagios 插件:
1make
然后用这个命令安装它:
1sudo make install
安装NRPE
在 NRPE 下载页面找到 NRPE 最新稳定版本的源代码。
在这篇文章的写作时,最新版本是 2.15. 下载到您的主目录用 curl:
1cd ~
2curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
使用此命令提取 NRPE 档案:
1tar xvf nrpe-*.tar.gz
然后更改到提取的目录:
1cd nrpe-*
使用这些命令配置 NRPE:
1./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
现在使用以下命令构建和安装 NRPE 及其 xinetd 启动脚本:
1make all
2sudo make install
3sudo make install-xinetd
4sudo make install-daemon-config
在编辑器中打开 xinetd 启动脚本:
1sudo vi /etc/xinetd.d/nrpe
通过将您的 Nagios 服务器的私人 IP 地址添加到尾部(取代您的服务器的实际 IP 地址)来修改only_from
行:
1only_from = 127.0.0.1 10.132.224.168
只允许Nagios服务器与NRPE进行通信。
重新启动 xinetd 服务以启动 NRPE:
1sudo service xinetd restart
现在Nagios 4已安装,我们需要配置它。
配置 Nagios
现在让我们执行初始的Nagios配置,您只需要在Nagios服务器上执行此部分一次。
组织 Nagios 配置
在您最喜欢的文本编辑器中打开主 Nagios 配置文件. 我们将使用 vi 来编辑该文件:
1sudo vi /usr/local/nagios/etc/nagios.cfg
现在通过删除#
来查找这个行:
1#cfg_dir=/usr/local/nagios/etc/servers
保存和退出。
现在创建将为您监控的每个服务器存储配置文件的目录:
1sudo mkdir /usr/local/nagios/etc/servers
设置 Nagios 联系人
在您最喜欢的文本编辑器中打开 Nagios 联系人配置. 我们将使用 vi 来编辑文件:
1sudo vi /usr/local/nagios/etc/objects/contacts.cfg
查找电子邮件指令,并用自己的电子邮件地址取代其值(突出部分):
1email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
保存和退出。
配置 check_nrpe 命令
让我们在我们的 Nagios 配置中添加一个新的命令:
1sudo vi /usr/local/nagios/etc/objects/commands.cfg
将下列内容添加到文件的末尾:
1define command{
2 command_name check_nrpe
3 command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
4}
这允许您在您的 Nagios 服务定义中使用check_nrpe
命令。
Apache 配置
启用 Apache 重写和 cgi 模块:
1sudo a2enmod rewrite
2sudo a2enmod cgi
使用 htpasswd 创建一个名为nagiosadmin
的管理员用户,可以访问 Nagios Web 界面:
1sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
请记住这个密码,因为您将需要它来访问Nagios Web接口。
<$>[注]
注: 如果您创建一个不是nagiosadmin
的用户,则需要编辑 /usr/local/nagios/etc/cgi.cfg
并更改所有创建的用户的nagiosadmin
引用。
现在,创建一个象征性的nagios.conf
链接到网站启用
目录:
1sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
Nagios 已经准备好启动了,让我们这样做,然后重新启动 Apache:
1sudo service nagios start
2sudo service apache2 restart
要允许 Nagios 在服务器启动时启动,请运行此命令:
1sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
可选:限制 IP 地址访问
如果您想限制可以访问 Nagios Web 接口的 IP 地址,则需要编辑 Apache 配置文件:
1sudo vi /etc/apache2/sites-available/nagios.conf
通过在它们前面添加#
符号来查找并评论以下两行:
1Order allow,deny
2Allow from all
然后,通过删除#
符号,删除下列行,并添加您希望在允许
行中允许的IP地址或范围(空间划界):
1# Order deny,allow
2# Deny from all
3# Allow from 127.0.0.1
由于这些行会在配置文件中出现两次,因此您需要再次执行这些步骤。
保存和退出。
现在重新启动 Apache 以实现更改:
1sudo service nagios restart
2sudo service apache2 restart
Nagios现在正在运行,所以让我们尝试登录。
访问 Nagios Web 界面
打开您最喜欢的网页浏览器,然后到您的 Nagios 服务器(取代所突出的部分的 IP 地址或主机名称):
1http://nagios_server_public_ip/nagios
由于我们将Apache配置为使用 htpasswd,所以您必须输入您之前创建的登录凭证,我们使用nagiosadmin
作为用户名:
验证后,您将看到默认的 Nagios 主页. 在左导航栏中,点击 Hosts 链接,以查看 Nagios 正在监控哪些主机:
正如你所看到的,Nagios只监控本地主机
或自己。
让我们跟踪另一个主人与Nagios!
用NRPE监控一个主机
在本节中,我们将向您展示如何将新主机添加到 Nagios,以便监控它。
在您想要监控的服务器上,更新 apt-get:
1sudo apt-get update
现在安装 Nagios 插件和 NRPE:
1sudo apt-get install nagios-plugins nagios-nrpe-server
设置允许的主机
现在,让我们更新 NRPE 配置文件,在您最喜欢的编辑器中打开它(我们正在使用 vi):
1sudo vi /etc/nagios/nrpe.cfg
查找允许_主机
指令,并将您的Nagios服务器的私人IP地址添加到命令列表中(取而代之的是突出示例):
1allowed_hosts=127.0.0.1,10.132.224.168
这将 NRPE 配置为通过其私人 IP 地址接受来自 Nagios 服务器的请求。
设置允许的 NRPE 命令
查看您的根文件系统的名称(因为它是我们想要监控的项目之一):
1df -h /
我们将使用 NRPE 配置中的文件系统名称来监控您的磁盘使用情况(可能是 /dev/vda
)。
1sudo vi /etc/nagios/nrpe.cfg
NRPE配置文件非常长,充满了评论,有几个行你需要找到和修改:
- server_address : 设置为此主机
- allowed_hosts 的私有IP地址: 设置为您的Nagios server
- command[check_hda1] 的私有IP地址: 更改
/dev/hda1
到您的根文件系统叫做
上述三行应该是这样的(取代相应的值):
1server_address=client_private_IP
2allowed_hosts=nagios_server_private_IP
3command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
请注意,如果 Nagios 服务器已配置使用这些命令,该文件会运行其他几个命令
。NRPE 也会在端口 5666 上听,因为设置为 server_port=5666
。
保存和停止。
重新启动 NRPE
重新启动 NRPE 以实现更改:
1sudo service nagios-nrpe-server restart
在您想要监控的主机上安装和配置 NRPE 后,您必须将这些主机添加到您的 Nagios 服务器配置中,然后开始监控它们。
将主机添加到 Nagios 配置
在您的 Nagios 服务器上,为您希望在 /usr/local/nagios/etc/servers/
中监控的每个远程主机创建一个新的配置文件。
1sudo vi /usr/local/nagios/etc/servers/yourhost.cfg
添加以下主机定义,将host_name
值替换为您的远程主机名称(示例中的web-1
),alias
值以描述主机,以及地址
值以远程主机的私人 IP 地址:
1define host {
2 use linux-server
3 host_name yourhost
4 alias My first Apache server
5 address 10.132.234.52
6 max_check_attempts 5
7 check_period 24x7
8 notification_interval 30
9 notification_period 24x7
10}
使用上面的配置文件,Nagios 只会监控主机是否上或下。如果这对您来说足够,请保存和退出,然后重新启动 Nagios。
对于想要监控的服务,添加这些服务块。注意 check_command 值决定将监控的内容,包括状态门槛值。
平:
1define service {
2 use generic-service
3 host_name yourhost
4 service_description PING
5 check_command check_ping!100.0,20%!500.0,60%
6}
SSH (notifications_enabled 设置为 0 禁用服务的通知):
1define service {
2 use generic-service
3 host_name yourhost
4 service_description SSH
5 check_command check_ssh
6 notifications_enabled 0
7}
如果您不确定使用通用服务
意味着什么,则仅仅是继承了被默认定义为通用服务
的服务模板的值。
重新加载您的 Nagios 配置以使任何更改生效:
1sudo service nagios reload
一旦您已完成 Nagios 配置以监控所有远程主机,您应该设置。 请确保访问您的 Nagios Web 界面,并查看 服务 页面以查看所有监控的主机和服务:
结论
现在你监控你的主机和他们的某些服务,你可能想花一些时间来弄清楚哪些服务对你至关重要,所以你可以开始监控这些。
好运!