`
helloyesyes
  • 浏览: 1306282 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Ganglia 和 Nagios,第 2 部分: 使用 Nagios 监视企业集群

阅读更多

第 1 部分回顾

数据中心正在不断增长,而管理职员却在缩减,因此公司迫切需要监视计算资源的工具。本系列的第 1 部分讨论了结合使用 Ganglia 和 Nagios 的好处,然后向您展示了如何使用自定义的监视脚本安装和扩展 Ganglia。

回顾 Ganglia 和 Nagios,第 1 部分:用 Ganglia 监视企业集群 中的多个监视 定义(取决于运行的环境):

  • 如果在集群上运行应用程序,您会想:“我的作业何时运行?何时完成?相比上一次它的执行如何?”
  • 如果是网络操作中心的操作员,您会想:“什么时候会看到红灯,表示需要修复某些内容或者需要安排某个服务?”
  • 如果在系统工程组,您会想:“我们的机器如何执行?所有的服务功能都正常吗?趋势是什么?我们如何更好地利用计算资源?”

您可以找到代码来监视希望监视的内容,也可以 从开源代码中找到类似功能。使用开源监视工具最困难的地方在于,实现安装后如何找出最适合所在环境的配置。开源(和商业)监视软件有两个主要问题如下:

  1. 没有任何工具可以监视您所需的一切内容。
  2. 要让工具完全适应您的需求需要做许多自定义工作。

Ganglia 是一个监视数据中心的工具,频繁用于高性能计算环境中(但是对于其他环境,比如云、渲染场、寄存中心,它的吸引力也是很大的)。它更重视收集标准然后随时跟踪,而 Nagios 主要关注警告机制。Ganglia 用来请求代理在每个主机上运行,以收集主机信息,但是通过 Ganglia 的欺骗机制,现在可以轻松获取所有标准。Ganglia 没有内置的通知机制,但是它可以在目标主机上支持可扩展的内置代理。

学习了第 1 部分之后,您可能已经安装了 Ganglia,也能回答不同用户组可能咨询的监视问题。您也可能已经配置了基本的 Ganglia 设置,使用 Python 模块扩展 IPMI(Intelligent Platform Management Interface,智能平台管理界面)的功能,并使用 Ganglia 主机欺骗机制监视 IPMI。

现在,让我们了解一下 Nagios。


Nagios 简介

该部分演示如何安装 Nagios 并绑定 Ganglia。我们将向 Nagios 添加两个特性,帮助您监视标准集群、网格、云(以及任何扩展计算的功能)。这两个特性的作用是:

  • 监视网络交换机
  • 监视资源管理器

在本例中,我们将监视 TORQUE。完成之后,您将拥有一个控制监视整个数据中心系统的框架。

Nagios 与 Ganglia 一样,常用于 HPC 和其他环境,但是 Nagios 更加关注警告机制,Ganglia 则更加关注收集和跟踪指标。Nagios 以前只是从目标主机收集信息,但最近开发了可以在主机上运行代理的插件。Nagios 内置了一个通知系统。

现在我们安装 Nagios 并安装基本的 HPC Linux® 监视系统集群以满足不同的监视需求:

  • 应用程序开发人员现在可以看到队列的饱和程度和运行作业的可用节点。
  • 系统失败时会警告 NOC,并在 Nagios Web 界面看到闪烁的红点。如果节点异常或者温度太高,NOC 还将收到电子邮件通知。
  • 系统工程师可以绘制数据,报告集群利用率,制定未来采购硬件的决策。

安装 Nagios

在机器上安装 Nagios 的方法可以从 Internet 查询。因为我经常需要在不同的环境中安装,所以为此编写了一个脚本。

首先需要 下载两个包

  • Nagios(测试了 3.0.6 版本)
  • Nagios-plugins(测试了 1.4.13 版本)

插件包括:

  • Nagios Event Log,可以监视 Windows 事件日志
  • NRPE,提供了许多 Ganglia 功能

获取源代码并放在目录中。为了演示,我在 /tmp 中放置了三个文件:

  • nagios-3.0.6.tar.gz
  • nagios-plugins-1.4.13.tar.gz
  • naginstall.sh

清单 1 展示了 naginstall.sh 安装脚本:


清单 1. naginstall.sh 脚本

				
#!/bin/ksh

NAGIOSSRC=nagios-3.0.6
NAGIOSPLUGINSRC=nagios-plugins-1.4.13
NAGIOSCONTACTSCFG=/usr/local/nagios/etc/objects/contacts.cfg
NAGIOSPASSWD=/usr/local/nagios/etc/htpasswd.users
PASSWD=cluster
OS=foo

function buildNagiosPlug {

  if [ -e $NAGIOSPLUGINSRC.tar.gz ]
  then
    echo "found $NAGIOSPLUGINSRC.tar.gz  building and installing Nagios"
  else
    echo "could not find $NAGIOSPLUGINSRC.tar.gz in current directory."
    echo "Please run $0 in the same directory as the source files."
    exit 1
  fi
  echo "Extracting Nagios Plugins..."
  tar zxf $NAGIOSPLUGINSRC.tar.gz
  cd $NAGIOSPLUGINSRC
  echo "Configuring Nagios Plugins..."
  if ./configure --with-nagios-user=nagios --with-nagios-group=nagios
      -prefix=/usr/local/nagios > config.LOG.$$ 2>&1
  then
    echo "Making Nagios Plugins..."
    if make -j8 > make.LOG.$$ 2>&1
    then
      make install > make.LOG.$$ 2>&1
    else
      echo "Make failed of Nagios plugins.  See $NAGIOSPLUGINSRC/make.LOG.$$"
      exit 1
    fi
  else
    echo "configure of Nagios plugins failed.  See config.LOG.$$"
    exit 1
  fi
  echo "Successfully built and installed Nagios Plugins!"
  cd ..

}

function buildNagios {
  if [ -e $NAGIOSSRC.tar.gz ]
  then
    echo "found $NAGIOSSRC.tar.gz  building and installing Nagios"
  else
    echo "could not find $NAGIOSSRC.tar.gz in current directory."
    echo "Please run $0 in the same directory as the source files."
    exit 1
  fi
  echo "Extracting Nagios..."
  tar zxf $NAGIOSSRC.tar.gz
  cd $NAGIOSSRC
  echo "Configuring Nagios..."
  if ./configure --with-command-group=nagcmd > config.LOG.$$ 2>&1
  then
    echo "Making Nagios..."
    if make all -j8 > make.LOG.$$ 2>&1
    then
      make install > make.LOG.$$ 2>&1
      make install-init > make.LOG.$$ 2>&1
      make install-config > make.LOG.$$ 2>&1
      make install-commandmode > make.LOG.$$ 2>&1
      make install-webconf > make.LOG.$$ 2>&1
    else
      echo "make all failed.  See log:"
      echo "$NAGIOSSRC/make.LOG.$$"
      exit 1
    fi
  else
    echo "configure of Nagios failed.  Please read $NAGIOSSRC/config.LOG.$$ for details."
    exit 1
  fi
  echo "Done Making Nagios!"
  cd ..
}


function configNagios {
  echo "We'll now configure Nagios."
  LOOP=1
  while [[ $LOOP -eq 1 ]]
  do
    echo "You'll need to put in a user name.  This should be the person"
    echo "who will be receiving alerts.  This person should have an account"
    echo "on this server.  "
    print "Type in the userid of the person who will receive alerts (e.g. bob)> \c"
    read NAME
    print "What is ${NAME}'s email?> \c"
    read EMAIL
    echo
    echo
    echo "Nagios alerts will be sent to $NAME at $EMAIL"
    print "Is this correct? [y/N] \c"
    read YN
    if [[ "$YN" = "y" ]]
    then
      LOOP=0
    fi
  done
  if [ -r $NAGIOSCONTACTSCFG ]
  then
    perl -pi -e "s/nagiosadmin/$NAME/g" $NAGIOSCONTACTSCFG
    EMAIL=$(echo $EMAIL | sed s/\@/\\\\@/g)
    perl -pi -e "s/nagios\@localhost/$EMAIL/g" $NAGIOSCONTACTSCFG
  else
    echo "$NAGIOSCONTACTSCFG does not exist"
    exit 1
  fi

  echo "setting ${NAME}'s password to be 'cluster' in Nagios"
  echo "    you can change this later by running: "
  echo "    htpasswd -c $NAGIOSPASSWD $Name)'"
  htpasswd -bc $NAGIOSPASSWD $NAME cluster
  if [ "$OS" = "rh" ]
  then
    service httpd restart
  fi

}


function preNagios {

  if [ "$OS" = "rh" ]
  then
    echo "making sure prereqs are installed"
    yum -y install httpd gcc glibc glibc-common gd gd-devel perl-TimeDate
    /usr/sbin/useradd -m nagios
    echo $PASSWD | passwd --stdin nagios
    /usr/sbin/groupadd nagcmd
    /usr/sbin/usermod -a -G nagcmd nagios
    /usr/sbin/usermod -a -G nagcmd apache
  fi

}
function postNagios {
  if [ "$OS" = "rh" ]
  then
    chkconfig --add nagios
    chkconfig nagios on
    # touch this file so that if it doesn't exist we won't get errors
    touch /var/www/html/index.html
    service nagios start
  fi
  echo "You may now be able to access Nagios at the URL below:"
  echo "http://localhost/nagios"

}



if [ -e /etc/redhat-release ]
then
  echo "installing monitoring on Red Hat system"
  OS=rh
fi

# make sure you're root:
ID=$(id -u)
if [ "$ID" != "0" ]
then
  echo "Must run this as root!"
  exit
fi

preNagios
buildNagios
buildNagiosPlug
configNagios
postNagios

运行脚本 ./naginstall.sh

该代码在 Red Hat 系统上能正常运行,如果您安装了本系列 Ganglia 和 Nagios,第 1 部分:用 Ganglia 监视企业集群 中提到的所有依赖关系,那么应该也能正常运行。运行 naginstall.sh 时,提示 Nagios 应该发送警告的用户。稍后可以添加其他用户。大部分组织都有一个邮件别名以组的形式发送邮件。

如果安装时出现问题,可以查看 Nagios 网页(链接见 参考资料)并将其添加到邮件列表。以我的经验看来,像 Nagios 和 Ganglia 这样成功的大部分包都很容易安装。


配置 Nagios

假设脚本运行正常并且已经安装了所有内容。那么在脚本成功退出时,您应该能够打开 Web 浏览器并看到 localhost 已经被监视了(如图 1 所示):


图 1. 显示 localhost 被监视的截屏

通过单击 Service Detail,您可以看到我们监视本地机器上的哪些服务(比如 Ping、HTTP、加载、用户等等),这是默认配置的。

让我们看看名为 Root Partition 的服务。该服务在根分区满时发出警告。通过查看安装时生成的配置文件,您可以完全理解该检查的工作方式。

主配置文件

如果使用 naginstall.sh 脚本,则主配置文件是 /usr/local/nagios/etc/nagios.cfg。该脚本展示几个带有其他定义的 cfg_files。其中的行如下:

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

如果查看该文件,您将看到所有用于 Web 视图中出现的 localhost 的服务。这就是配置默认服务的地方。根分区定义见第 77 行。

根分区检查方式的体系结构见图 2。


图 2. 如何配置根分区检查

首先要注意 Nagios 对象的继承模式。根分区 的定义使用本地服务定义,本地服务定义则使用通用服务定义。这定义了调用服务的方式、频率以及其他可调试参数等等。

接下来重要的定义部分是使用的检查命令。首先它使用名为 check_local_disk 的命令定义。传递的参数是 !20%!10%!/。表示当 check_local_disk 命令定义报告 20% 时,它将发出警告。当它到达 10% 时,您将得到一个严重错误。/ 表示它检查 "/" 分区。check_local_disk 隐式调用 check_disk 命令,该命令位于 /usr/local/nagios/libexec 目录中。

这是设置这些配置的基本思路。您可以按照该思路创建自己的服务来监视所需的参数。有关更深入的内容,请阅读文档并尝试自己设置一些参数。

注册以收到警告

所有配置完成后,注册以收到警告。我们开始时已经完成了该操作,但是如果希望更改或添加用户,则可以修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。将联系人名称改为您的名字,将电子邮件改为您的电子邮件地址。大部分基本的 Linux 服务器应该已经设置好,可以处理邮件了。

现在配置其他节点。

在 grid/cloud/cluster 中配置其他节点

我在 Dallas 数据中心有一组节点。我将创建一个目录放置所有配置文件:

mkdir -p /usr/local/nagios/etc/dallas

我需要通知 Nagios 我的配置文件将放在哪里。为此我修改 nagios.cfg 文件,添加以下行:

cfg_dir=/usr/local/nagios/etc/dallas

我将在此创建一组文件(很容易让人糊涂)。图 3 显示了这些条目以及它们所属的文件,并展示了对象之间的关系。


图 3. 条目及其文件图

根据该图继续进行其他设置和安装。

在 /usr/local/nagios/etc/dallas/nodes.cfg 文件中,我定义所有节点和节点组。我需要监视三种机器:

  • 网络服务器(本例中是运行 Ganglia 的 Linux 服务器)
  • 网络交换机(我的交换机包括高速交换机和 Gigabit Ethernet)
  • 管理设备(比如刀片式管理模块、老 IBM RSA 卡、BMC、可能的智能 PDU 等等)。

我创建三个相应的组,如下所示:

define hostgroup {
 hostgroup_name dallas-cloud-servers
 alias Dallas Cloud Servers
}

define hostgroup
 hostgroup_name dallas-cloud-network
 alias Dallas Cloud Network Infrastructure
}

define hostgroup
 hostgroup_name dallas-cloud-management
 alias Dallas Cloud Management Devides
}

接下来我创建三个模板文件,三个节点组的节点共享通用特征:

define host {
        name dallas-management
        use linux-server
        hostgroups dallas-cloud-management
        # TEMPLATE!
        register 0
}


define host {
        name dallas-server
        use linux-server
        hostgroups dallas-cloud-servers
        # TEMPLATE!
        register 0
}

define host {
        name dallas-network
        use generic-switch
        hostgroups dallas-cloud-network
        # TEMPLATE!
        register 0
}

现在我的每个节点定义为 dallas-managementdallas-serverdallas-network。各自的示例如下:

define host {
 use dallas-server
 host_name x336001
 address 172.10.11.1
}
define host {
 use dallas-network
 host_name smc001
 address 172.10.0.254
}
define host {
 use dallas-management
 host_name x346002-rsa
 address 172.10.11.12
}

我生成了一个遍历节点列表的脚本,并使用我的 Dallas 实验室中的节点完全填充这个文件。当我重启 Nagios 时,将检查这些节点是否可以到达。但是我还有其他一些服务!

您应该首先重启 Nagios 保证设置完成。如果已经完成,则应该在 HostGroup Overview 视图下看到一些组。如果有错误,则运行:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

这将验证文件并帮助您发现错误。

现在可以添加一些基本的服务了。根据 localhost 中的模板,较容易完成的是查看 dallas-cloud-servers 组上的 SSH。让我们启动另一个文件:/usr/local/nagios/etc/dallas/host-services.cfg。最简单的是将配置从希望监视的 localhost 中复制出来。我就是这样做的,并添加了一个依赖关系:

define service{
        use                             generic-service
        hostgroup_name                  dallas-cloud-servers
        service_description             SSH
        check_command                   check_ssh
        }

define service{
        use                             generic-service
        hostgroup_name                  dallas-cloud-servers
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

define servicedependency{
        hostgroup_name                  dallas-cloud-servers
        service_description             PING
        dependent_hostgroup_name        dallas-cloud-servers
        dependent_service_description   SSH
}

如果 PING 无法正常工作,我不会考虑测试 SSH。现在开始可以添加各种内容了,但我们再看看其他东西。重启 Nagios 并测试菜单,以确保看到 ping 和 ssh 检查了节点:

service nagios reload

如果一切正常,我们将开始进入有趣的部分 —— 集成 Ganglia。


集成 Nagios 报告 Ganglia 指标

Nagios Exchange 是另一个获取 Nagios 插件的好地方。但是对于我们的 Ganglia 插件,只要从 Ganglia 和 Nagios,第 1 部分:用 Ganglia 监视企业集群 中下载的源代码中查找。假设您将源代码解压到 /tmp 目录中,剩下的只需要复制 contrib 目录中的 check_ganglia.py 脚本即可:

cp /tmp/ganglia-3.1.1/contrib/check_ganglia.py \
/usr/local/nagios/libexec/

check_ganglia 是一个很棒的 Python 脚本,可以运行于 gmetad 运行的服务器上(在我的示例中是 Nagios 运行的管理服务器)。让我们在端口 8649 上查询 localhost。使用这种方法,您可以通过远程命令扩展网络通讯:可以使用 Ganglia 的扩展技术实现!

如果运行 telnet localhost 8649,您将看到从节点收集的数据中生成大量输出(假设按照第 1 部分安装了 Ganglia 并能正常运行)。让我们监视一些 Ganglia 提供的内容。

进入 /var/lib/ganglia/rrds 目录,您可以看到每个主机的度量指标。生成了易于查看的图形,您可以一直分析指标。我们将度量 load_onedisk_free,由于在第 1 部分中我们启用了 IPMI 温度度量,我们将同样添加该度量。

创建 /usr/local/nagios/etc/dallas/ganglia-services.cfg 文件并添加服务:

define servicegroup {
  servicegroup_name ganglia-metrics
  alias Ganglia Metrics
}

define command {
  command_name check_ganglia
  command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
}

define service {
  use generic-service
  name ganglia-service
  hostgroup_name dallas-cloud-servers
  service_groups ganglia-metrics
  notifications_enabled 0
}


define service {
  use ganglia-service
  service_description load_one
  check_command check_ganglia!load_one!4!5
}


define service {
  use ganglia-service
  service_description ambient_temp
  check_command check_ganglia!AmbientTemp!20!30
}

define service {
  use ganglia-service
  service_description disk_free
  check_command check_ganglia!disk_free!10!5
}

重启 Nagios 时,现在可以根据 Ganglia 指标发出警告!

提醒:check_ganglia.py 命令仅在阈值过高时发出警告。如果希望在阈值过低时发出警告(在 disk_free 中是这样),则需要修改代码。我更改了文件的最后部分,如下所示:

  if critical > warning:
    if value >= critical:
      print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)
      sys.exit(2)
    elif value >= warning:
      print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)
      sys.exit(1)
    else:
      print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)
      sys.exit(0)
  else:
    if critical >= value:
      print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)
      sys.exit(2)
    elif warning >= value:
      print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)
      sys.exit(1)
    else:
      print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)
      sys.exit(0)

现在重新加载 Nagios:

service nagios restart

如果一切正常,您应该看到 Ganglia 数据现在已经在 Nagios 的监视之下!


图 4. 受 Nagios 监视的 Ganglia 数据

结合使用 Ganglia 和 Nagios,您可以监视任何内容。您可以控制整个云!


扩展 Nagios:监视网络交换机

随着云和虚拟化的流程,原来的 “网络管理员” 和 “系统管理员” 之间的界线更加模糊起来。忽视配置网络交换机和理解网络技术的系统管理员将面临过时的风险。

不用再担心完整性,我将展示如何扩展 Nagios 来监视网络交换机。使用 Nagios(而不是网络交换机供应商的解决方案)监视网络交换机的优点很简单 —— 使用 Nagios 您可以监视任何 供应商的交换机。看到 ping 成功后,我们将探讨交换机上的 SNMP。

有些交换机默认启用 SNMP。您可以根据供应商的说明设置。要在 Cisco Switch 上设置 SNMP,请参考以下示例,我的交换机的主机名为 c2960g:

telnet c2960g
c2960g>enable
c2960g#configure terminal
c2960g(config)#snmp-server host 192.168.15.1 traps SNMPv1
c2960g(config)#snmp-server community public
c2960g(config)#exit
c2960g#copy running-config startup-config

现在看看能够监视的内容,运行 snmpwalk 并将其导出到文件:

snmpwalk -v 1 -c public c2960g

如果一切正常,您将看到许多内容传递回来。然后可以捕获输出并查看各种要监视的位置。

我还有一个交换机示例。当我运行 snmpwalk 命令时,我看到端口以及做标记的方式。我对以下信息很感兴趣:

  • MTU(IF-MIB::ifMtu.<portnumber>)。
  • 端口运行速度(IF-MIB::ifSpeed.<port number>)。
  • 端口是否正常(IF-MIB::ifOperStatus.<port number>)。

为了监视这些内容我创建了一个新文件,/usr/local/nagios/etc/dallas/switch-services.cfg。我将网络主机映射到交换机,因此我对所有事情了如指掌。建议您也这样做。如果想体验真正的云计算,就应该了解所有资源的状态。

我将使用节点 x336001 作为示例。我知道它位于端口 5。我的文件如下所示:

define servicegroup {
  servicegroup_name switch-snmp
  alias Switch SNMP Services
}

define service {
  use generic-service
  name switch-service
  host_name smc001
  service_groups switch-snmp
}

define service {
  use switch-service
  service_description Port5-MTU-x336001
  check_command check_snmp!-o IF-MIB::ifMtu.5
}
define service {
  use switch-service
  service_description Port5-Speed-x336001
  check_command check_snmp!-o IF-MIB::ifSpeed.5
}

define service {
  use switch-service
  service_description Port5-Status-x336001
  check_command check_snmp!-o IF-MIB::ifOperStatus.5
}

完成后,重启 Nagios,您会发现现在我可以查看交换机了:


图 5. 监视交换机

这只是如何监视交换机的一个示例。注意,我没有设置警告,也没有指出关键动作。您可能还注意到了,在 libexec 目录中还有一些选项可以完成类似的功能。check_ifoperstatus 以及其他内容也需要技巧。使用 Nagios 时,可以使用多种方式完成一个任务。


扩展 Nagios:报告监视 TORQUE 的作业

可以根据 TORQUE 编写许多脚本来确定该队列系统的运行方式。在该扩展中,假设您已经安装了 TORQUE。TORQUE 是一个可以与 Moab 和 Maui 结合使用的资源管理器。可以参考 Colin Morey 编写的 开源 Nagios 插件

下载并将其放在 /usr/local/nagios/libexec 目录,确定它可以执行。我必须稍微修改代码,将安装 Nagios 的目录从 use lib "/usr/nagios/libexec"; 更改为 use lib "/usr/local/nagios/libexec";。我还必须将 my $qstat = '/usr/bin/qstat' ; 更改为 qstat 命令。我的命令如下所示:my $qstat = '/opt/torque/x86_64/bin/qstat' ;

验证它能运行(我使用的队列名为 dque):

[root@redhouse libexec]# ./check_pbs.pl -Q dque -tw 20 -tm 50
check_pbs.pl Critical: dque on localhost checked, Total number of jobs 
higher than 50.  Total jobs:518, Jobs Queued:518, Jobs Waiting:0, Jobs 
Halted:0 |exectime=9340us

您可以使用 -h 选项显示更多要监视的内容。现在将它放置到配置文件 /usr/local/nagios/etc/dallas/torque.cfg

define service {
        use                             generic-service
        host_name                       localhost
        service_description             TORQUE Queues
        check_command                   check_pbs!20!50
}

define command {
        command_name                    check_pbs
        command_line                    $USER1$/check_pbs.pl -Q dque 
                                         -tw $ARG1$ -tm $ARG2$
}

重启 Nagios 之后,将在 localhost 下显示该服务。


图 6. TORQUE 服务在 Nagios 重启后出现

在我的例子中,我收到了一个严重警告,因为我的队列中有 518 个作业!

显然,跟踪 TORQUE 和脚本有很多方式。您可以使用 pbsnodes 通知节点状态。人们应该更关心节点的运行位置以及运行的作业。这个小示例将展示各种可能性,以及如何在很短的时间内完成监视解决方案。


结束语

阅读了该系列之后,系统管理员应该能够轻松运行 Ganglia 和 Nagios,以前所未有的方式监视其数据中心。这两个包的范围非常广泛。我们在这里接触的只是与集群、网格和云基础结构相关的内容。

设置该监视解决方案的大部分时间都用于配置要监视的服务。许多现有的替代解决方案都是平台而不是成品。换句话说,它们提供框架来支持插件,但很少有预先建好的插件。大部分插件的工作由管理员和用户完成,这些工作往往非常繁琐。实际上,这就是大部分数据中心监视的内容。

Ganglia 和 Nagios 不仅仅是一个插件平台。

<!-- CMA ID: 391580 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file: dw-article-6.0-beta.xsl -->

参考资料

学习

  • Nagios 3.x 文档查找更多有关 Nagios 的内容
  • 访问 Nagios Exchange 获取插件。
  • TORQUE 是一个开源资源管理器,可以控制批量作业和分布式计算节点。
  • developerWorks Linux 专区 寻找为 Linux 开发人员(包括 Linux 新手入门)准备的更多参考资料,查阅我们 最受欢迎的文章和教程
  • 在 developerWorks 上查阅所有 Linux 技巧Linux 教程
  • 随时关注 developerWorks 技术活动网络广播

获得产品和技术

  • 获取 Nagios 和插件。要获得安装帮助,请查看 Nagios Web 页面 并加入邮件列表。
  • 查看 Colin Morey 的 开源 Nagios TORQUE 插件
  • 其他监控工具:
    • Cacti
    • Zenoss
    • Zabbix
    • Performance Co-Pilot
    • Clumon
  • 使用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个 Linux 开发项目。

讨论

  • 通过博客、论坛、podcast 和空间加入 developerWorks 社区

关于作者

Vallard Benincosa 从 2001 年开始构建 HPC 集群的工作。他在许多 IBM 部署的大型计算机场工作,帮助设计、安装和管理一些 IBM 的大型 Linux 集群,包括 Ohio Super Computing Center 和 NASA 中的集群。

分享到:
评论

相关推荐

    ganglia+nagios集成分布式监控系统

    **分布式监控系统集成:Ganglia与Nagios** ...通过集成Ganglia和Nagios,企业能够构建出一套强大而全面的分布式监控系统,确保云应用平台的稳定运行,及时发现并处理潜在问题,从而提高整体运维效率。

    Ganglia集成Nagios组合监视企业集群并设置邮件报警

    Ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从...通过将Ganglia和Nagios组 合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。

    大数据平台监控Ganglia加Nagios

    大数据平台监控是确保系统稳定性和高效运行的关键,Ganglia 和 Nagios 是两种广泛使用的开源监控工具,它们在监控大数据环境方面有着各自的优势。本文将详细介绍如何在大数据平台上结合使用Ganglia和Nagios进行监控...

    基于Ganglia和Nagios的云计算平台智能监控系统.pdf

    Ganglia监控集群或计算节点的性能指标,例如CPU、内存、网络、磁盘的使用情况,以及节点上运行的作业和服务的状态等。 Nagios是另一个功能强大的开源监控系统,它具备故障检测和恢复功能。Nagios能够监控网络服务、...

    ganglia集群资源监控工具

    Ganglia的核心设计理念是简洁、高效,通过收集、聚合和展示节点级别的资源使用情况,帮助管理员对整个集群的健康状态进行实时掌握。 Ganglia系统由两部分组成:收集层(Gmond)和展示层(Gmetad)。Gmond运行在每个...

    ganglia+hadoop+hbase nagios 学习参考链接

    Ganglia、Hadoop和HBase都是大数据领域的重要组件,而Nagios则是一种广泛使用的系统监控工具。这篇博文链接提供的资源聚焦于如何将这些技术结合使用,并进行有效的监控。 Ganglia是一个分布式监控系统,能够收集并...

    nagios-3.1.0.tar

    5. **插件支持**:Nagios支持众多第三方插件,用于检查特定的服务和系统状态。 6. **灵活的配置**:管理员可以通过修改配置文件来定义监控对象和策略。 7. **Web界面**:提供一个直观的Web界面,展示监控结果,便于...

    基于CentOs的ganglia监控配置

    2. 编译和安装Ganglia源码包,如果使用rpm包安装则无需额外步骤。 3. 安装libconfuse及其开发包,这些是Ganglia运行所需的库文件。 4. 将Ganglia的源码包打包为rpm格式,便于在CentOs系统上安装。 5. 通过rpmbuild...

    Hadoop集群监控工具-Nagios3.4.3详细配置与安装

    Nagios的安装分为服务器端和客户端两部分。服务器端通常负责数据处理和提供Web界面,而客户端则安装NRPE(Nagios Remote Plugin Executor)等软件,响应服务器端的监控请求并返回结果。在本文中,我们以Nagios 3.4.3...

    ganglia监控软件的笔记

    #### 五、附录2:通过扩展可获取的部分指标示例 下面列出了一些通过扩展可以获得的性能指标: - **Muliticpu系列指标**:这些指标主要用于监控CPU的使用情况,包括user、nice、system、idle等不同级别的利用率。 -...

    基于ganglia的集群监控软件的设计与实现大学本科毕业论文.doc

    在实际开发中,除了集成Ganglia核心组件,还需考虑监控数据的存储策略、报警阈值设定、系统性能调优以及与其他管理系统(如Nagios、Zabbix)的集成,以提高监控的全面性和准确性。 7. 结论 基于Ganglia的集群监控...

    monitoring with ganglia

    《监控与Ganglia》是一本深入探讨Ganglia监控系统的权威著作,旨在帮助读者理解和掌握如何使用Ganglia来有效监控IT环境。Ganglia是一个开源的分布式监控系统,适用于大规模集群和网格环境,能够实时收集、聚合并展示...

    使用Ganglia对Linux网格和集群服务器进行实时监控

    从系统管理员接手服务器和主机管理以来,像应用监控这样的工具就成了他们的好帮手。其中比较有名的有 Nagios、Zabbix、Icinga和Centreon。以上这些是重量级的监控工具,让一个...Ganglia能够让你以集群(按服务器组)和

    Linux下集群系统的构建.pdf

    例如,通过Ganglia或Nagios可以实现集群监控,及时发现并解决潜在问题。 在安全性方面,集群系统需要考虑节点间通信的安全性,可以使用SSH密钥对进行身份验证,减少潜在的攻击风险。同时,防火墙设置也很关键,以...

    安装hadoop集群

    - 可选安装第三方监控工具如Ganglia、Nagios等。 2. **性能调优**: - 根据实际负载调整MapReduce任务的并发度。 - 调整HDFS块大小以适应不同类型的数据存储需求。 3. **容错机制**: - 实现数据复制机制,...

    Big Data Made Easy

    本章介绍了Hadoop生态系统中的几种监控工具,如Hue、Nagios和Ganglia等,通过这些工具可以实时监控集群的状态,及时发现并解决问题。 #### 第五部分:集群管理与分析 - **第8章:Hadoop集群管理** 本章着重介绍了...

    Hadoop集群搭建总结

    - **监控与日志管理**:使用工具如Ganglia、Nagios监控集群健康状况,定期检查日志文件以预防潜在问题。 - **数据备份与恢复**:制定合理的数据备份策略,以便在出现故障时能够快速恢复服务。 #### 五、结论 ...

    linux集群体系结构

    例如,Pacemaker和Corosync用于高可用性集群管理,Ganglia或Nagios用于监控,GlusterFS或Ceph提供分布式文件系统支持。此外,还有诸如OpenMPI、MPICH等用于HPC的并行计算框架。 在开发分布式系统时,我们需要掌握...

    g2n:从Ganglia(gmetad)获取主机的简单脚本

    编辑config/mappings.yml以将Ganglia集群config/mappings.yml到Nagios模板(默认情况下位于config/templates ) 运行g2n (例如: cd ; ruby -Ilib bin/g2n ,以生成Nagios配置并将其放入output_path (默认为: /...

Global site tag (gtag.js) - Google Analytics