使用 Nagios 指南监控 Ceph


Red Hat Ceph Storage 5

使用 Nagios 核心监控 Ceph.

摘要

本文档提供有关安装和配置 Nagios 以监控红帽 Ceph 存储集群的说明。
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。详情请查看 CTO Chris Wright 信息

第 1 章 Nagios 和 Ceph

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

要使用 Ceph 部署 Nagios 内核,需要:

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

此外,您还可以替换其他功能丰富的商业版 Nagios XI,而不是 Nagios Core。

重要

红帽不提供 Nagios 软件包。

重要

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

第 2 章 Nagios 内核安装和配置

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

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

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 Toggle word wrap

  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 Toggle word wrap

  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 Toggle word wrap

  4. 下载 Nagios Core 和 Plug-ins 的最新版本:

    示例

    [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 Toggle word wrap

  5. run ./configure:

    示例

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

  6. 编译 Nagios 核心源代码:

    示例

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

  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 Toggle word wrap

  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 Toggle word wrap

  9. 运行 pre-flight 检查:

    示例

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

  10. 创建并安装 Nagios Core 插件:

    示例

    [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 Toggle word wrap

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

    示例

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

    重要

    如果添加 nagiosadmin 以外的用户,请确保 /usr/local/nagios/etc/cgi.cfg 文件也会使用用户名更新。

  12. 根据需要使用用户名、完整名称和电子邮件地址来修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。

2.2. 启动 Nagios 核心服务

启动 Nagios 核心服务,以监控红帽 Ceph 存储集群的健康状态。

先决条件

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

流程

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

    示例

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

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

    示例

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

2.3. 登录到 Nagios 内核服务器

登录 Nagios Core 服务器,以查看红帽 Ceph 存储集群的健康状况。

先决条件

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

流程

  • 借助 Nagios,使用默认 Nagios 核心用户的凭证来登录控制面板:

    语法

    http://IP_ADDRESS/nagios
    Copy to Clipboard Toggle word wrap

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

第 3 章 Nagios 远程插件执行器安装

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

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

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

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

先决条件

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

流程

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

    示例

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

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

    示例

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

  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 Toggle word wrap

  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 Toggle word wrap

  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 Toggle word wrap

  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 Toggle word wrap

其它资源

3.2. 启动 Nagios 远程插件执行器服务

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

先决条件

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

流程

  • 启用并启动 NRPE 服务:

    示例

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

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

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

先决条件

  • 对 Nagios Core 服务器的 root 级别访问权限。
  • 互联网访问.
  • 访问 Nagios 远程插件执行器.

流程

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

    示例

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

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

    语法

    allowed_hosts=127.0.0.1,IP_ADDRESS_OF_NAGIOS_CORE_SERVER
    Copy to Clipboard Toggle word wrap

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

  3. 重启 nrpe

    示例

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

验证

  • 测试安装:

    示例

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

    如果运行正常,则检查应 echoUUID 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 Toggle word wrap

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

    语法

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

    示例

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

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

    语法

    vi HOST_TO_ADD.cfg
    Copy to Clipboard Toggle word wrap

    示例

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

    语法

    # 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 Toggle word wrap

    使用远程主机的主机名替换 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 Toggle word wrap

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

    示例

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

    #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 Toggle word wrap
  5. 将文件所有权改为 Nagios:

    示例

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

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

    示例

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

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

    示例

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

  8. 确保制作和安装过程正常工作,并且 Nagios Core 服务器和包含 NRPE 的远程主机之间有连通性:

    语法

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

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

    示例

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

验证

  • 如果运行正常,则检查应 echoUUID v4.0.3

第 5 章 为 Ceph 配置 Nagios 插件

为红帽 Ceph 存储集群配置 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 Toggle word wrap

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

  2. check_ceph_health 插件添加命令:

    示例

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

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

    示例

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

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

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

    示例

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

    语法

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

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

    示例

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

    语法

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

    使用您要监控的 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 Toggle word wrap

    注意

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

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

    示例

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

  8. 在继续其他配置前,请确保插件已在 Ceph 主机上工作:

    语法

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

    示例

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

    注意

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

其它资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat