如何使用Icinga监视你的服务器和服务在Ubuntu 14.04

介绍

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

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

先决条件

要完成本教程,您需要root用户访问Ubuntu 14.04 VPS。 说明设置,最多可以在这里找到(第3步和4): 初始服务器设置与Ubuntu 14.04

此外,如果要设置邮件通知功能,您将需要正确配置Postfix。 说明这样做可以在这里找到: 如何在Ubuntu 14.04安装和设置Stapling Postfix与Icinga软件包一起安装,但它可以在Icinga设置完成后进行配置。

安装Icinga

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

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

sudo add-apt-repository ppa:formorer/icinga

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

sudo apt update

现在安装Icinga和MySQL与apt:

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:输入“No”启用外部命令
  • 配置icinga-idoutils:输入“Yes”,使用dbconfig-common配置icinga-idoutils的数据库
  • 配置icinga-idoutils:选择“mysql”作为数据库类型
  • 配置icinga-idoutils:输入MySQL root密码(您刚才分配的上面)
  • 配置icinga-idoutils:输入新的icinga-idoutils数据库用户密码

Icinga现在已经安装,但我们仍然需要配置一些东西,我们才能启动它。 注意,Apache HTTP服务器和Postfix是作为该进程的一部分安装的。

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

sudo usermod -a -G nagios www-data

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

sudo vi /etc/default/icinga

的值更改IDO2DByes,所以看起来像下面这样:

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正在监控一台主机, 本地主机 (您Icinga服务器)和七个服务,就像这样:

Icinga初始概述

第一行显示单个受监视的主机为“Up”,最下一行显示有七个“OK”受监视的服务。

如果本地主机的状态为“向下”,则可能需要更改ping命令的权限。 运行以下命令,让nagios用户使用ping命令:

sudo chmod u+s `which ping`

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

监控与Icinga

有两种主要方法来监视主机和服务与Icinga:

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

Icinga监测方法

使用第一种方法,公共可用服务是指可通过本地网络或因特网访问的服务。 常见的示例包括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配置文件很长,并有很多注释。 有几行,你需要找到和修改:

  • 服务器地址 :设定到这个主机的私有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值与主机的描述,以及address与远程的私有IP地址值主办:

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手段,它只是继承所谓的“通用服务”的服务模板由默认定义的值。

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

sudo service icinga reload

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

用户界面示例

无论使用哪种方法,监测设置的几个主机的监控后,转到您的Icinga用户界面( http://youricingaserver.com/icinga ,acingaadmin登录),然后单击服务细节链接。 您应该会看到您设置监视的所有服务的列表。

作为一个例子,在这里是正在使用该被上述配置文件监视两个主机。web的1 HTTP服务正在通过其正常的HTTP端口监视,这表明它的网络服务器与一个OK状态响应,并且wordpress-1是其所有监控服务确定

Icinga用户界面示例

Icinga有很多功能,所以随意浏览界面,看看你可以找到关于您的主机和服务。

结论

现在您监控主机及其某些服务,您可能需要花一些时间来确定哪些服务对您至关重要,因此您可以开始监控这些服务。 您还可能需要设置通知,例如,当您的磁盘利用率达到警告或临界阈值或主网站关闭时,您会收到电子邮件,以便您可以及时解决问题或在问题发生之前解决。

祝你好运!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏