如何使用 Icinga 在 Ubuntu 14.04 上监控您的服务器和服务如何使用 Icinga 在 Ubuntu 14.04 上监控您的服务器和服务如何使用 Icinga 在 Ubuntu 14.04 上监控您的服务器和服务如何使用 Icinga 在 Ubuntu 14.04 上监控您的服务器和服务
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何使用 Icinga 在 Ubuntu 14.04 上监控您的服务器和服务

介绍

在本教程中,我们将介绍在 Ubuntu 14.04 上安装开源监控系统 Icinga。我们将介绍一些基本配置,以便您能够通过 Web 界面监控网络服务和主机资源。我们还将利用 Nagios 远程插件执行器 (NRPE),它将作为代理安装在远程系统上以监控其本地资源(磁盘使用情况、登录用户数量等)。

Icinga 是一种流行的开源监控系统,可以检查主机和服务,并通知您它们的状态。 Icinga 是 Nagios 的一个分支,因此它们兼容并有许多相似之处,并且由于与 Nagios 相比更敏捷的开发周期,它越来越受欢迎。

先决条件

要完成本教程,您需要 root 访问 Ubuntu 14.04 VPS。可以在此处找到设置说明(步骤 3 和 4):Initial Server Setup with Ubuntu 14.04。

此外,如果要设置邮件通知功能,则需要正确配置 Postfix。可以在此处找到相关说明:如何在 Ubuntu 14.04 上安装和设置 Postfix。 Postfix 与 Icinga 软件包一起安装,但可以在设置 Icinga 后对其进行配置。

安装 Icinga

我们将使用包安装 Icinga。此外,我们将使用 MySQL 作为我们的 DBMS——PostgreSQL、SQLite 和 Oracle 是其他受支持的选项。

运行以下命令将 Icinga PPA 添加到包管理器中:

sudo add-apt-repository ppa:formorer/icinga

然后更新你的 apt 包数据库:

sudo apt update

现在使用 apt 安装 Icinga 和 MySQL:

sudo apt install icinga icinga-doc icinga-idoutils mysql-server libdbd-mysql mysql-client

现在您将看到一系列关于 Icinga 安装的提示。以下是提示列表,以及您应该如何回答它们:

  • MySQL 配置:输入新的 MySQL root 用户密码
  • PostFix 配置:选择“Internet 站点”
  • PostFix 配置:输入您的完全限定域名(例如 example.com)
  • 配置icinga-cgi:输入“icingaadmin”用户密码(登录访问Icinga)。
  • 配置 icinga-common:输入“否”以启用外部命令
  • 配置 icinga-idutils:输入“是”以使用 dbconfig-common 为 icinga-idutils 配置数据库
  • 配置icinga-idutils:选择“mysql”作为数据库类型
  • 配置 icinga-idutils:输入 MySQL root 密码(您刚刚在上面分配的密码)
  • 配置 icinga-idutils:输入新的 icinga-idutils 数据库用户密码

Icinga 现在已经安装好了,但是在我们启动它之前我们还需要配置一些东西。请注意,Apache HTTP 服务器和 Postfix 是作为该过程的一部分安装的。

将 Apache 用户 (www-data) 添加到 nagios 组:

sudo usermod -a -G nagios www-data

使 ido2db 守护进程在启动时启动,它将 Icinga 事件和配置存储在数据库中。编辑 Icinga 默认配置:

sudo vi /etc/default/icinga

将 IDO2DB 的值更改为 yes,因此它看起来如下所示:

IDO2DB=yes

保存并退出。现在启动 ido2db 服务:

sudo service ido2db start

通过将示例 idoutils.cfg 文件复制到 Icinga 的活动配置来启用 idomod 模块:

sudo cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg

现在 Icinga 已配置并准备启动:

sudo service icinga restart

让我们试试 Icinga 用户界面。

访问 Icinga 用户界面

转到 http://yourhost/icinga,并使用您在 Icinga 安装期间设置的 icingaadmin 登录名登录。

您应该看到 Icinga 正在监视一台主机 localhost(您的 Icinga 服务器)和七项服务,如下所示:

最上面一行显示单个被监控的主机是“Up”,最下面一行显示有七个“OK”的被监控服务。

如果 localhost 的状态为“Down”,您可能需要更改 ping 命令的权限。运行以下命令以允许 nagios 用户使用 ping命令:

sudo chmod u+s `which ping`

让我们添加更多要监控的主机和服务!

使用 Icinga 进行监控的方法

使用 Icinga 监控主机和服务有两种主要方式:

  1. 监控“公共服务”
  2. 通过安装在远程主机上的代理进行监控,以收集数据并将数据发送到 Icinga

对于第一种方法,公共可用服务是指可通过本地网络或 Internet 访问的服务。常见示例包括 HTTP、邮件、SSH 和 ICMP ping。此方法可用于监控您不能(或不想)安装代理的系统,也可用于监控面向用户的网络接口。

为了实现第二种方法,我们将在远程主机上安装 NRPE 作为代理来监视它们的本地资源。这将允许 Icinga 监控第一种方法无法实现的磁盘使用情况、正在运行的进程和其他系统统计信息。

方法 1:监控公开可用的服务

因为第一种方法只是监控监听服务,所以这种方法的配置全部在 Icinga 服务器上完成。使用此方法可以监控几件事,因此我们将演示如何监控 Web 服务器的公共接口。

使用此命令创建一个包含您的主机名的文件(将 yourhost 替换为您自己的主机名):

sudo vi /etc/icinga/objects/yourhost.cfg

现在添加以下内容,将 host_name 的值替换为您自己的主机名(在两个地方),将 alias 的值替换为主机的描述,将 address > 使用主机的公共 IP 地址的值:

define host {
        use                     generic-host
        host_name               web-1
        alias                   A Web Server
        address                 107.170.xxx.xxx
}

define service {
        use                     generic-service
        host_name               web-1
        service_description     HTTP
        check_command           check_http
}

现在保存并退出。重新加载您的 Icinga 配置以使任何更改生效:

sudo service icinga reload

方法 2:通过代理监控

如前所述,我们将使用 NRPE 作为我们的代理来为 Icinga 收集远程主机数据。这意味着 NRPE 必须安装在将使用此方法监视的所有主机上,并且 Icinga 服务器还需要配置为接收每个主机的数据。

让我们来看看安装 NRPE。

在远程主机上安装 NRPE

在您要监控的主机上,更新 apt:

sudo apt update

现在安装 NRPE 和 Nagios 插件:

sudo apt install nagios-plugins nagios-nrpe-server

查找根文件系统的名称(因为它是我们要监控的项目之一):

df -h /

我们将使用 NRPE 配置中的文件系统名称来监控您的磁盘使用情况(可能是 /dev/vda)。现在打开 nrpe.cfg 进行编辑:

sudo vi /etc/nagios/nrpe.cfg

NRPE 配置文件很长而且注释很多。您需要查找和修改几行:

  • server_address:设置为本主机的私有IP地址
  • allowed_hosts:设置为您的 Icinga 服务器的私有 IP 地址
  • 命令[check_hda1]:将/dev/hda1 更改为您的根文件系统名称

上述三行应如下所示(替换适当的值):

server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda

请注意,如果 Icinga 服务器配置为使用它们,此文件中定义的其他几个“命令”将运行。另请注意,NRPE 将侦听端口 5666,因为设置了 server_port=5666 . 如果您有任何防火墙阻止该端口,请确保将其打开到您的 Icinga 服务器。

保存并退出。然后重启 NRPE 使更改生效:

sudo service nagios-nrpe-server restart

在要监控的主机上完成安装和配置 NRPE 后,您必须将这些主机添加到 Icinga 服务器配置中,然后它才会开始监控它们。

将远程主机添加到 Icinga 服务器配置

在您的 Icinga 服务器上,为您要在 /etc/icinga/objects 中监视的每个远程主机创建一个新的配置文件。将 yourhost 替换为您的主机名:

sudo vi /etc/icinga/objects/yourhost.cfg

添加以下主机定义,将 host_name 值替换为您的远程主机名(我在示例中使用了 \wordpress-1”),alias 值带有对主机,以及带有远程主机私有 IP 地址的 address 值:

define host {
        use                     generic-host
        host_name               wordpress-1
        alias                   My first wordpress server
        address                 10.128.xxx.xxx
        }

然后为您要监视的服务添加任何这些服务块。请注意,check_command 的值决定了将要监视的内容,包括状态阈值。以下是您可以添加到主机配置文件中的一些示例:

平:

define service {
        use                             generic-service
        host_name                       wordpress-1
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

SSH(notifications_enabled 设置为 0 禁用服务通知):

define service {
        use                             generic-service
        host_name                       wordpress-1
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
        }

加载:

define service {
        use                             generic-service
        host_name                       wordpress-1
        service_description             Current Load
        check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0
        }

当前用户:

define service {
        use                             generic-service
        host_name                       wordpress-1
        service_description             Current Users
        check_command                   check_users!20!50
        }

磁盘空间:

define service {
        use                             generic-service
        host_name                       wordpress-1
        service_description             Disk Space
        check_command                   check_all_disks!20%!10%
        }

如果您想知道 use generic-service 是什么意思,它只是继承默认定义的名为 \generic-service 的服务模板的值。

现在保存并退出。重新加载您的 Icinga 配置以使任何更改生效:

sudo service icinga reload

完成配置 Icinga 以监控所有远程主机后,让我们检查一下用户界面。

用户界面示例

在使用任一监控方法在几台主机上设置监控后,转到您的 Icinga 用户界面(http://youricingaserver.com/icinga,acingaadmin 登录),然后单击“服务详细信息”链接。您应该会看到您为其设置监控的所有服务的列表。

例如,这里有两台主机正在使用上述配置文件进行监控。 web-1 HTTP 服务正在通过其正常的 HTTP 端口进行监视,表明其 Web 服务器正在响应 OK 状态,并且 wordpress-1 显示其所有受监控的服务都OK。

Icinga 具有大量功能,因此请随意浏览界面以查看您可以发现有关您的主机和服务的内容。

结论

现在您已经监控了您的主机和它们的一些服务,您可能想花一些时间来弄清楚哪些服务对您至关重要,这样您就可以开始监控它们了。您可能还想设置通知,例如,当您的磁盘利用率达到警告或临界阈值或您的主要网站关闭时,您会收到一封电子邮件,这样您就可以及时或在问题发生之前解决问题。

祝你好运!

©2015-2025 艾丽卡 support@alaica.com