使用 Nagios 指南监控 Ceph
使用 Nagios 核心监控 Ceph.
摘要
第 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 级别访问权限。
流程
安装先决条件:
示例
dnf install -y httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp openssl openssl-devel wget unzip make
[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 Copied! 如果您使用防火墙,为
httpd
打开端口80
:示例
firewall-cmd --zone=public --add-port=80/tcp firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@nagios ~]# firewall-cmd --zone=public --add-port=80/tcp [root@nagios ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Copy to Clipboard Copied! 为 Nagios Core 创建一个用户和组:
示例
useradd nagios passwd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd apache
[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 Copied! 下载最新版本的 Nagios 内核和插件:
示例
wget --inet4-only https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz wget --inet4-only http://www.nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz tar zxf nagios-4.4.5.tar.gz tar zxf nagios-plugins-2.3.3.tar.gz cd nagios-4.4.5
[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 Copied! 运行
./configure
:示例
[root@nagios nagios-4.4.5]# ./configure --with-command-group=nagcmd
[root@nagios nagios-4.4.5]# ./configure --with-command-group=nagcmd
Copy to Clipboard Copied! 编译 Nagios 核心源代码:
示例
[root@nagios nagios-4.4.5]# make all
[root@nagios nagios-4.4.5]# make all
Copy to Clipboard Copied! 安装 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
[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 Copied! 复制事件处理程序并更改其所有权:
示例
[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
[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 Copied! 运行 pre-flight 检查:
示例
[root@nagios nagios-4.4.5]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[root@nagios nagios-4.4.5]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Copy to Clipboard Copied! 制作并安装 Nagios 核心插件:
示例
cd ../nagios-plugins-2.3.3
[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 Copied! 为 Nagios Core 用户界面创建一个用户:
示例
[root@nagios nagios-plugins-2.3.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
[root@nagios nagios-plugins-2.3.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Copy to Clipboard Copied! 重要如果添加了一个不是
nagiosadmin
的用户,请确保/usr/local/nagios/etc/cgi.cfg
文件也会根据用户名进行相应更新。-
根据需要修改
/usr/local/nagios/etc/objects/contacts.cfg
文件。
2.2. 启动 Nagios 核心服务
启动 Nagios Core 服务,以监控 Red Hat Ceph Storage 集群的健康状态。
先决条件
- 对 Nagios 核心主机的 root 级别访问权限。
流程
添加 Nagios Core 和 Apache 作为服务:
示例
systemctl enable nagios systemctl enable httpd
[root@nagios ~]# systemctl enable nagios [root@nagios ~]# systemctl enable httpd
Copy to Clipboard Copied! 启动 Nagios 核心守护进程和 Apache:
示例
systemctl start nagios systemctl start httpd
[root@nagios ~]# systemctl start nagios [root@nagios ~]# systemctl start httpd
Copy to Clipboard Copied!
2.3. 登录到 Nagios 核心服务器
登录 Nagios 核心服务器,以查看 Red Hat Ceph Storage 集群的健康状态。
先决条件
- Nagios 仪表板的用户名和密码。
流程
随着 Nagios 启动并运行,使用默认 Nagios Core 用户的凭据登录控制面板:
语法
http://IP_ADDRESS/nagios
http://IP_ADDRESS/nagios
Copy to Clipboard Copied! 将 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 级别访问权限。
流程
在主机上安装这些软件包:
示例
dnf install openssl openssl-devel gcc make git
[root@host01 ~]# dnf install openssl openssl-devel gcc make git
Copy to Clipboard Copied! NRPE 安装需要 Nagios 用户。首先创建用户:
示例
useradd nagios passwd nagios
[root@host01 ~]# useradd nagios [root@host01 ~]# passwd nagios
Copy to Clipboard Copied! 下载 Nagios 插件的最新版本。然后,创建并安装它们:
示例
wget http://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz tar zxf nagios-plugins-2.3.3.tar.gz cd nagios-plugins-2.3.3
[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 Copied! 下载 Ceph 插件的最新版本:
示例
git clone --recursive https://github.com/ceph/ceph-nagios-plugins.git cd ceph-nagios-plugins make dist make install
[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 Copied! 下载、制作并安装 Nagios NRPE:
示例
cd ~ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz tar xvfz nrpe-4.0.3.tar.gz cd nrpe-4.0.3
[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 Copied! 如果您使用防火墙,请打开端口
5666
以允许与 NRPE 进行通信:示例
firewall-cmd --zone=public --add-port=5666/tcp firewall-cmd --zone=public --add-port=5666/tcp --permanent
[root@host01 ~]# firewall-cmd --zone=public --add-port=5666/tcp [root@host01 ~]# firewall-cmd --zone=public --add-port=5666/tcp --permanent
Copy to Clipboard Copied!
其它资源
- 有关 Ceph 的 Nagios 插件的更多信息,请参阅 Ceph 的 Nagios 插件。
3.2. 启动 Nagios Remote Plug-in Executor 服务
启动 Nagios Remote Plug-in Executor (NRPE)服务以收集数据并将其报告回 Nagios 核心服务器。
先决条件
- 对 Ceph 监控主机的 root 级别访问权限
流程
启用并启动 NRPE 服务:
示例
systemctl enable nrpe systemctl start nrpe
[root@host01 ~]# systemctl enable nrpe [root@host01 ~]# systemctl start nrpe
Copy to Clipboard Copied!
3.3. 配置 Nagios 核心服务器对远程节点的访问
要使 Nagios 核心服务器在远程计算机上访问 Nagios Remote Plugin Executor (NPRE),远程计算机的 NRPE 配置必须使用 Nagios 核心服务器的 IP 地址更新。
先决条件
- 对 Nagios 核心服务器的 root 级别访问。
- 互联网访问。
- 访问 Nagios 远程插件可执行文件.
流程
使用 Nagios 服务器的 IP 地址编辑 NRPE 配置:
示例
vi /usr/local/nagios/etc/nrpe.cfg
[root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfg
Copy to Clipboard Copied! 将 Nagios 核心服务器的 IP 地址添加到
allowed_hosts
设置。语法
allowed_hosts=127.0.0.1,IP_ADDRESS_OF_NAGIOS_CORE_SERVER
allowed_hosts=127.0.0.1,IP_ADDRESS_OF_NAGIOS_CORE_SERVER
Copy to Clipboard Copied! 将 IP_ADDRESS_OF_NAGIOS_CORE_SERVER 替换为 Nagios 核心服务器的 IP 地址。
重启
nrpe
:示例
systemctl restart nrpe
[root@host01 ~]# systemctl restart nrpe
Copy to Clipboard Copied!
验证
测试安装:
示例
/usr/local/nagios/libexec/check_nrpe -H localhost
[root@host01 ~]# /usr/local/nagios/libexec/check_nrpe -H localhost
Copy to Clipboard Copied! 如果检查正常工作,则检查应该回显
NRPE v4.0.3
。
第 4 章 在 Nagios 核心服务器上配置远程节点
将 Nagios 核心服务器配置为了解远程主机。
先决条件
- 对 Nagios 核心服务器上的远程节点的根级别访问权限。
- 互联网访问。
流程
安装
check_nrpe
插件:示例
cd ~ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz tar xvfz nrpe-4.0.3.tar.gz cd nrpe-4.0.3
[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 Copied! 为远程主机创建配置:
语法
cd /usr/local/nagios/etc/objects cp localhost.cfg HOST_TO_ADD.cfg
cd /usr/local/nagios/etc/objects cp localhost.cfg HOST_TO_ADD.cfg
Copy to Clipboard Copied! 示例
cp localhost.cfg host01.cfg
[root@nagios nrpe-4.0.3]# cd /usr/local/nagios/etc/objects [root@nagios objects]# cp localhost.cfg host01.cfg
Copy to Clipboard Copied! 编辑配置文件并更新远程主机的设置:
语法
vi HOST_TO_ADD.cfg
vi HOST_TO_ADD.cfg
Copy to Clipboard Copied! 示例
vi host01.cfg
[root@nagios objects]# vi host01.cfg
Copy to Clipboard Copied! 语法
Define a host for the local machine
# 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 Copied! 将 LOCALHOST 替换为远程主机的主机名,将
127.0.0.1
替换为 Ceph 监控主机的 IP 地址。示例
Define a host for the local machine
# 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 Copied! 删除或注释掉主机组定义:
示例
vi host01.cfg
[root@nagios objects]# vi host01.cfg
Copy to Clipboard Copied! 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
#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 Copied! 将文件所有权改为 Nagios:
示例
chown nagios:nagios host01.cfg
[root@nagios objects]# chown nagios:nagios host01.cfg
Copy to Clipboard Copied! 向
/usr/local/nagios/etc/nagios.cfg
中的host01.cfg
文件添加cfg_file=
引用:示例
vi /usr/local/nagios/etc/nagios.cfg
[root@nagios objects]# vi /usr/local/nagios/etc/nagios.cfg
Copy to Clipboard Copied! cfg_file=/usr/local/nagios/etc/objects/host01.cfg
cfg_file=/usr/local/nagios/etc/objects/host01.cfg
Copy to Clipboard Copied! 重启 Nagios 服务器:
示例
systemctl restart nagios
[root@nagios objects]# systemctl restart nagios
Copy to Clipboard Copied! 确保 make 和 install 过程可以正常工作,并且 Nagios 核心服务器和包含 NRPE 的远程主机之间存在连接:
语法
/usr/local/nagios/libexec/check_nrpe -H HOSTNAME_OF_REMOTE_HOST
/usr/local/nagios/libexec/check_nrpe -H HOSTNAME_OF_REMOTE_HOST
Copy to Clipboard Copied! 将 HOSTNAME_OF_REMOTE_HOST 替换为要监控的 Ceph 主机的 IP 地址。
示例
/usr/local/nagios/libexec/check_nrpe -H host01
[root@nagios objects]# /usr/local/nagios/libexec/check_nrpe -H host01
Copy to Clipboard Copied!
验证
-
如果检查正常工作,则检查应该回显
NRPE v4.0.3
。
第 5 章 为 Ceph 配置 Nagios 插件
为 Red Hat Ceph Storage 集群配置 Nagios 插件。
先决条件
- 对 Ceph Monitor 主机和 Nagios Core Server 的 root 级别访问权限。
- 一个正在运行的 Red Hat Ceph Storage 集群。
流程
登录 Ceph 监控主机,再为 Nagios 创建 Ceph 密钥和密钥环。
示例
ssh user@host01 sudo su - cd /etc/ceph ceph auth get-or-create client.nagios mon 'allow r' > client.nagios.keyring
[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 Copied! 每个插件都需要身份验证。对包含插件的每个主机重复此步骤。
为
check_ceph_health
插件添加命令:示例
vi /usr/local/nagios/etc/nrpe.cfg
[root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfg
Copy to Clipboard Copied! command[check_ceph_health]=/usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring
command[check_ceph_health]=/usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring
Copy to Clipboard Copied! 启用并重启
nrpe
服务:示例
systemctl enable nrpe systemctl restart nrpe
[root@host01 ~]# systemctl enable nrpe [root@host01 ~]# systemctl restart nrpe
Copy to Clipboard Copied! 对适用于主机的每个 Ceph 插件重复此步骤。
返回到 Nagios Core 服务器,并为 NRPE 插件定义
check_nrpe
命令:示例
cd /usr/local/nagios/etc/objects vi commands.cfg
[root@nagios ~]# cd /usr/local/nagios/etc/objects [root@nagios objects]# vi commands.cfg
Copy to Clipboard Copied! 语法
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
Copy to Clipboard Copied! 在 Nagios 核心服务器上,编辑节点的 配置文件,并为 Ceph 插件添加服务。
示例
vi /usr/local/nagios/etc/objects/host01.cfg
[root@nagios objects]# vi /usr/local/nagios/etc/objects/host01.cfg
Copy to Clipboard Copied! 语法
define service { use generic-service host_name HOSTNAME service_description Ceph Health Check check_command check_nrpe!check_ceph_health }
define service { use generic-service host_name HOSTNAME service_description Ceph Health Check check_command check_nrpe!check_ceph_health }
Copy to Clipboard Copied! 使用要监控的 Ceph 主机的主机名替换 HOSTNAME。
示例
define service { use generic-service host_name host01 service_description Ceph Health Check check_command check_nrpe!check_ceph_health }
define service { use generic-service host_name host01 service_description Ceph Health Check check_command check_nrpe!check_ceph_health }
Copy to Clipboard Copied! 注意check_command
设置在 Ceph 插件名称前使用check_nrpe!
。这将告知 NRPE 在远程节点上执行check_ceph_health
命令。- 对适用于主机的每个插件重复此步骤。
重启 Nagios 核心服务器:
示例
systemctl restart nagios
[root@nagios ~]# systemctl restart nagios
Copy to Clipboard Copied! 在继续额外的配置前,请确保插件在 Ceph 主机上工作:
语法
/usr/lib/nagios/plugins/check_ceph_health --id NAGIOS_USER --keyring /etc/ceph/client.nagios.keyring
/usr/lib/nagios/plugins/check_ceph_health --id NAGIOS_USER --keyring /etc/ceph/client.nagios.keyring
Copy to Clipboard Copied! 示例
/usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring
[root@host01 ~]# /usr/lib/nagios/plugins/check_ceph_health --id nagios --keyring /etc/ceph/client.nagios.keyring HEALTH OK
Copy to Clipboard Copied! 注意check_ceph_health
插件执行与ceph health
命令等效的。
其它资源
- 如需有关 Ceph Nagios 插件用法的更多信息,请参阅 Ceph 的 Nagios 插件。