使用 Nagios 指南监控 Ceph


Red Hat Ceph Storage 6

使用 Nagios 核心监控 Ceph.

Red Hat Ceph Storage Documentation Team

摘要

本文档提供有关安装和配置 Nagios 以监控 Red Hat Ceph Storage 集群的说明。
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 信息

第 1 章 nagios 和 Ceph

Nagios Core 是一个用于监控节点的开源解决方案。大型 Red Hat Ceph Storage 集群从分布式监控系统(如 Nagios Core)中受益。Nagios Core 检查集群中的每个节点,包括底层操作系统的健康状况,以及 Red Hat Ceph Storage 集群守护进程的健康状态。

使用 Ceph 部署 Nagios 内核需要:

  • 一个正在运行的 Red Hat Ceph Storage 集群。

除了 Nagios Core,您还可以选择使用功能更加丰富的商业版本 Nagios XI。

重要

红帽不提供 Nagios 软件包。

重要

红帽与我们的技术合作伙伴合作,将本文档作为为客户提供服务。但是,红帽不提供对这个产品的支持。如果您需要此产品的技术协助,请联系 Nagios 以获得支持。

第 2 章 Nagios 核心安装和配置

作为存储管理员,您可以下载 Nagios 核心源代码来安装 Nagios Core;然后,配置、制作和安装它到将运行 Nagios Core 实例的节点上。

2.1. 从源安装和配置 Nagios Core 服务器

Nagios 核心软件没有 Red Hat Enterprise Linux 软件包,因此 Nagios 核心软件必须从源编译。

先决条件

  • 互联网访问。
  • 对 Nagios 核心主机的 root 级别访问权限。

流程

  1. 安装先决条件:

    示例

    [root@nagios ~]# dnf install -y httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp openssl openssl-devel wget unzip make
    Copy to Clipboard

  2. 如果您使用防火墙,为 httpd 打开端口 80

    示例

    [root@nagios ~]# firewall-cmd --zone=public --add-port=80/tcp
    [root@nagios ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
    Copy to Clipboard

  3. 为 Nagios Core 创建一个用户和组:

    示例

    [root@nagios ~]# useradd nagios
    [root@nagios ~]# passwd nagios
    [root@nagios ~]# groupadd nagcmd
    [root@nagios ~]# usermod -a -G nagcmd nagios
    [root@nagios ~]# usermod -a -G nagcmd apache
    Copy to Clipboard

  4. 下载最新版本的 Nagios 内核和插件:

    示例

    [root@nagios ~]# wget --inet4-only https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz
    [root@nagios ~]# wget --inet4-only http://www.nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
    [root@nagios ~]# tar zxf nagios-4.4.5.tar.gz
    [root@nagios ~]# tar zxf nagios-plugins-2.3.3.tar.gz
    [root@nagios ~]# cd nagios-4.4.5
    Copy to Clipboard

  5. 运行 ./configure

    示例

    [root@nagios nagios-4.4.5]# ./configure --with-command-group=nagcmd
    Copy to Clipboard

  6. 编译 Nagios 核心源代码:

    示例

    [root@nagios nagios-4.4.5]# make all
    Copy to Clipboard

  7. 安装 Nagios 源代码:

    示例

    [root@nagios nagios-4.4.5]# make install
    [root@nagios nagios-4.4.5]# make install-init
    [root@nagios nagios-4.4.5]# make install-config
    [root@nagios nagios-4.4.5]# make install-commandmode
    [root@nagios nagios-4.4.5]# make install-webconf
    Copy to Clipboard

  8. 复制事件处理程序并更改其所有权:

    示例

    [root@nagios nagios-4.4.5]# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
    [root@nagios nagios-4.4.5]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
    Copy to Clipboard

  9. 运行 pre-flight 检查:

    示例

    [root@nagios nagios-4.4.5]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    Copy to Clipboard

  10. 制作并安装 Nagios 核心插件:

    示例

    [root@nagios ~]# cd ../nagios-plugins-2.3.3
    [root@nagios nagios-plugins-2.3.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
    [root@nagios nagios-plugins-2.3.3]# make
    [root@nagios nagios-plugins-2.3.3]# make install
    Copy to Clipboard

  11. 为 Nagios Core 用户界面创建一个用户:

    示例

    [root@nagios nagios-plugins-2.3.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    Copy to Clipboard

    重要

    如果添加了一个不是 nagiosadmin 的用户,请确保 /usr/local/nagios/etc/cgi.cfg 文件也会根据用户名进行相应更新。

  12. 根据需要修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。

2.2. 启动 Nagios 核心服务

启动 Nagios Core 服务,以监控 Red Hat Ceph Storage 集群的健康状态。

先决条件

  • 对 Nagios 核心主机的 root 级别访问权限。

流程

  1. 添加 Nagios Core 和 Apache 作为服务:

    示例

    [root@nagios ~]# systemctl enable nagios
    [root@nagios ~]# systemctl enable httpd
    Copy to Clipboard

  2. 启动 Nagios 核心守护进程和 Apache:

    示例

    [root@nagios ~]# systemctl start nagios
    [root@nagios ~]# systemctl start httpd
    Copy to Clipboard

2.3. 登录到 Nagios 核心服务器

登录 Nagios 核心服务器,以查看 Red Hat Ceph Storage 集群的健康状态。

先决条件

  • Nagios 仪表板的用户名和密码。

流程

  • 随着 Nagios 启动并运行,使用默认 Nagios Core 用户的凭据登录控制面板:

    语法

    http://IP_ADDRESS/nagios
    Copy to Clipboard

    IP_ADDRESS 替换为您的 Nagios 核心服务器的 IP 地址。

第 3 章 Nagios 远程插件 executor 安装

作为存储管理员,您可以监控 Ceph 存储集群主机,安装 Nagios 插件、Ceph 插件和 Nagios 远程插件 executor (NRPE)附加组件到每个 Ceph 主机。

出于演示目的,本节使用主机名 host01 将 NRPE 添加到 Ceph 监控主机上。对 Nagios 应该监控的所有 Ceph 主机重复剩余的步骤。

3.1. 安装和配置 Nagios Remote Plug-In Executor

安装 Nagios Remote Plug-in Executor (NPRE),并将其配置为与 Nagios 核心服务器通信。

先决条件

  • 对 Ceph 监控主机的 root 级别访问权限。

流程

  1. 在主机上安装这些软件包:

    示例

    [root@host01 ~]# dnf install openssl openssl-devel gcc make git
    Copy to Clipboard

  2. NRPE 安装需要 Nagios 用户。首先创建用户:

    示例

    [root@host01 ~]# useradd nagios
    [root@host01 ~]# passwd nagios
    Copy to Clipboard

  3. 下载 Nagios 插件的最新版本。然后,创建并安装它们:

    示例

    [root@host01 ~]# wget http://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
    [root@host01 ~]# tar zxf nagios-plugins-2.3.3.tar.gz
    [root@host01 ~]# cd nagios-plugins-2.3.3
    [root@host01 nagios-plugins-2.3.3]# ./configure
    [root@host01 nagios-plugins-2.3.3]# make
    [root@host01 nagios-plugins-2.3.3]# make install
    Copy to Clipboard

  4. 下载 Ceph 插件的最新版本:

    示例

    [root@host01 nagios-plugins-2.3.3]# cd ~
    [root@host01 ~]# git clone --recursive https://github.com/ceph/ceph-nagios-plugins.git
    [root@host01 ~]# cd ceph-nagios-plugins
    [root@host01 ceph-nagios-plugins]# make dist
    [root@host01 ceph-nagios-plugins]# make install
    Copy to Clipboard

  5. 下载、制作并安装 Nagios NRPE:

    示例

    [root@host01 ceph-nagios-plugins]# cd ~
    [root@host01 ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
    [root@host01 ~]# tar xvfz nrpe-4.0.3.tar.gz
    [root@host01 ~]# cd nrpe-4.0.3
    [root@host01 nrpe-4.0.3]# ./configure
    [root@host01 nrpe-4.0.3]# make all
    [root@host01 nrpe-4.0.3]# make install-groups-users
    [root@host01 nrpe-4.0.3]# make install
    [root@host01 nrpe-4.0.3]# make install-config
    [root@host01 nrpe-4.0.3]# make install-init
    Copy to Clipboard

  6. 如果您使用防火墙,请打开端口 5666 以允许与 NRPE 进行通信:

    示例

    [root@host01 ~]# firewall-cmd --zone=public --add-port=5666/tcp
    [root@host01 ~]# firewall-cmd --zone=public --add-port=5666/tcp --permanent
    Copy to Clipboard

其它资源

3.2. 启动 Nagios Remote Plug-in Executor 服务

启动 Nagios Remote Plug-in Executor (NRPE)服务以收集数据并将其报告回 Nagios 核心服务器。

先决条件

  • 对 Ceph 监控主机的 root 级别访问权限

流程

  • 启用并启动 NRPE 服务:

    示例

    [root@host01 ~]# systemctl enable nrpe
    [root@host01 ~]# systemctl start nrpe
    Copy to Clipboard

3.3. 配置 Nagios 核心服务器对远程节点的访问

要使 Nagios 核心服务器在远程计算机上访问 Nagios Remote Plugin Executor (NPRE),远程计算机的 NRPE 配置必须使用 Nagios 核心服务器的 IP 地址更新。

先决条件

  • 对 Nagios 核心服务器的 root 级别访问。
  • 互联网访问。
  • 访问 Nagios 远程插件可执行文件.

流程

  1. 使用 Nagios 服务器的 IP 地址编辑 NRPE 配置:

    示例

    [root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfg
    Copy to Clipboard

  2. 将 Nagios 核心服务器的 IP 地址添加到 allowed_hosts 设置。

    语法

    allowed_hosts=127.0.0.1,IP_ADDRESS_OF_NAGIOS_CORE_SERVER
    Copy to Clipboard

    IP_ADDRESS_OF_NAGIOS_CORE_SERVER 替换为 Nagios 核心服务器的 IP 地址。

  3. 重启 nrpe

    示例

    [root@host01 ~]# systemctl restart nrpe
    Copy to Clipboard

验证

  • 测试安装:

    示例

    [root@host01 ~]# /usr/local/nagios/libexec/check_nrpe -H localhost
    Copy to Clipboard

    如果检查正常工作,则检查应该回显 NRPE v4.0.3

第 4 章 在 Nagios 核心服务器上配置远程节点

将 Nagios 核心服务器配置为了解远程主机。

先决条件

  • 对 Nagios 核心服务器上的远程节点的根级别访问权限。
  • 互联网访问。

流程

  1. 安装 check_nrpe 插件:

    示例

    [root@nagios ~]# cd ~
    [root@nagios ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz
    [root@nagios ~]# tar xvfz nrpe-4.0.3.tar.gz
    [root@nagios ~]# cd nrpe-4.0.3
    [root@nagios nrpe-4.0.3]# ./configure
    [root@nagios nrpe-4.0.3]# make check_nrpe
    [root@nagios nrpe-4.0.3]# make install-plugin
    Copy to Clipboard

  2. 为远程主机创建配置:

    语法

     cd /usr/local/nagios/etc/objects
     cp localhost.cfg HOST_TO_ADD.cfg
    Copy to Clipboard

    示例

    [root@nagios nrpe-4.0.3]# cd /usr/local/nagios/etc/objects
    [root@nagios objects]# cp localhost.cfg host01.cfg
    Copy to Clipboard

  3. 编辑配置文件并更新远程主机的设置:

    语法

    vi HOST_TO_ADD.cfg
    Copy to Clipboard

    示例

    [root@nagios objects]# vi host01.cfg
    Copy to Clipboard

    语法

    # Define a host for the local machine
    
    define host {
    
        use     linux-server    ; Name of host template to use
                                ; This host definition will inherit all variables that are defined
                                ; in (or inherited by) the linux-server host template definition.
        host_name               LOCALHOST
        alias                   LOCALHOST
        address                 127.0.0.1
    }
    Copy to Clipboard

    LOCALHOST 替换为远程主机的主机名,将 127.0.0.1 替换为 Ceph 监控主机的 IP 地址。

    示例

    # Define a host for the local machine
    
    define host {
        use     linux-server   ; Name of host template to use
                               ; This host definition will inherit all variables that are defined
                               ; in (or inherited by) the linux-server host template definition.
        host_name               host01
        alias                   host01
        address                 10.10.128.69
    }
    Copy to Clipboard

  4. 删除或注释掉主机组定义:

    示例

    [root@nagios objects]# vi host01.cfg
    Copy to Clipboard

    #define hostgroup {
    #
    #    hostgroup_name          linux-servers           ; The name of the hostgroup
    #    alias                   Linux Servers           ; Long name of the group
    #    members                 localhost               ; Comma separated list of hosts that belong to this group
    #}
    Copy to Clipboard
  5. 将文件所有权改为 Nagios:

    示例

    [root@nagios objects]# chown nagios:nagios host01.cfg
    Copy to Clipboard

  6. /usr/local/nagios/etc/nagios.cfg 中的 host01.cfg 文件添加 cfg_file= 引用:

    示例

    [root@nagios objects]# vi /usr/local/nagios/etc/nagios.cfg
    Copy to Clipboard

    cfg_file=/usr/local/nagios/etc/objects/host01.cfg
    Copy to Clipboard
  7. 重启 Nagios 服务器:

    示例

    [root@nagios objects]# systemctl restart nagios
    Copy to Clipboard

  8. 确保 make 和 install 过程可以正常工作,并且 Nagios 核心服务器和包含 NRPE 的远程主机之间存在连接:

    语法

    /usr/local/nagios/libexec/check_nrpe -H HOSTNAME_OF_REMOTE_HOST
    Copy to Clipboard

    HOSTNAME_OF_REMOTE_HOST 替换为要监控的 Ceph 主机的 IP 地址。

    示例

    [root@nagios objects]# /usr/local/nagios/libexec/check_nrpe -H host01
    Copy to Clipboard

验证

  • 如果检查正常工作,则检查应该回显 NRPE v4.0.3

第 5 章 为 Ceph 配置 Nagios 插件

为 Red Hat Ceph Storage 集群配置 Nagios 插件。

先决条件

  • 对 Ceph Monitor 主机和 Nagios Core Server 的 root 级别访问权限。
  • 一个正在运行的 Red Hat Ceph Storage 集群。

流程

  1. 登录 Ceph 监控主机,再为 Nagios 创建 Ceph 密钥和密钥环。

    示例

    [root@nagios ~]# ssh user@host01
    [user@host01 ~]$ sudo su -
    [root@host01 ~]# cd /etc/ceph
    [root@host01 ceph]# ceph auth get-or-create client.nagios mon 'allow r' > client.nagios.keyring
    Copy to Clipboard

    每个插件都需要身份验证。对包含插件的每个主机重复此步骤。

  2. check_ceph_health 插件添加命令:

    示例

    [root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfg
    Copy to Clipboard

    command[check_ceph_health]=/usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring
    Copy to Clipboard
  3. 启用并重启 nrpe 服务:

    示例

    [root@host01 ~]# systemctl enable nrpe
    [root@host01 ~]# systemctl restart nrpe
    Copy to Clipboard

    对适用于主机的每个 Ceph 插件重复此步骤。

  4. 返回到 Nagios Core 服务器,并为 NRPE 插件定义 check_nrpe 命令:

    示例

    [root@nagios ~]# cd /usr/local/nagios/etc/objects
    [root@nagios objects]# vi commands.cfg
    Copy to Clipboard

    语法

    define command{
     command_name check_nrpe
     command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }
    Copy to Clipboard

  5. 在 Nagios 核心服务器上,编辑节点的 配置文件,并为 Ceph 插件添加服务。

    示例

    [root@nagios objects]# vi /usr/local/nagios/etc/objects/host01.cfg
    Copy to Clipboard

    语法

    define service {
      use                   generic-service
      host_name             HOSTNAME
      service_description   Ceph Health Check
      check_command         check_nrpe!check_ceph_health
    }
    Copy to Clipboard

    使用要监控的 Ceph 主机的主机名替换 HOSTNAME

    示例

    define service {
      use                   generic-service
      host_name             host01
      service_description   Ceph Health Check
      check_command         check_nrpe!check_ceph_health
    }
    Copy to Clipboard

    注意

    check_command 设置在 Ceph 插件名称前使用 check_nrpe!。这将告知 NRPE 在远程节点上执行 check_ceph_health 命令。

  6. 对适用于主机的每个插件重复此步骤。
  7. 重启 Nagios 核心服务器:

    示例

    [root@nagios ~]# systemctl restart nagios
    Copy to Clipboard

  8. 在继续额外的配置前,请确保插件在 Ceph 主机上工作:

    语法

    /usr/lib/nagios/plugins/check_ceph_health --id NAGIOS_USER --keyring /etc/ceph/client.nagios.keyring
    Copy to Clipboard

    示例

    [root@host01 ~]# /usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring
    HEALTH OK
    Copy to Clipboard

    注意

    check_ceph_health 插件执行与 ceph health 命令等效的。

其它资源

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat