使用 Nagios 指南监控 Ceph
使用 Nagios 核心监控 Ceph.
摘要
第 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 级别访问权限。
流程
安装先决条件:
示例
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 makeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用防火墙,请在
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 --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 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 apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载 Nagios Core 和 Plug-ins 的最新版本:
示例
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.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow run
./configure:示例
[root@nagios nagios-4.4.5]# ./configure --with-command-group=nagcmd
[root@nagios nagios-4.4.5]# ./configure --with-command-group=nagcmdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编译 Nagios 核心源代码:
示例
[root@nagios nagios-4.4.5]# make all
[root@nagios nagios-4.4.5]# make allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装 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-webconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 复制事件处理程序并更改其所有权:
示例
[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/eventhandlersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建并安装 Nagios Core 插件:
示例
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 installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 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 nagiosadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果添加
nagiosadmin以外的用户,请确保/usr/local/nagios/etc/cgi.cfg文件也会使用用户名更新。-
根据需要使用用户名、完整名称和电子邮件地址来修改
/usr/local/nagios/etc/objects/contacts.cfg文件。
2.2. 启动 Nagios 核心服务 复制链接链接已复制到粘贴板!
启动 Nagios 核心服务,以监控红帽 Ceph 存储集群的健康状态。
先决条件
- 对 Nagios 核心主机的 root 级别访问权限。
流程
添加 Nagios Core 和 Apache 作为服务:
示例
systemctl enable nagios systemctl enable httpd
[root@nagios ~]# systemctl enable nagios [root@nagios ~]# systemctl enable httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 Nagios 核心守护进程和 Apache:
示例
systemctl start nagios systemctl start httpd
[root@nagios ~]# systemctl start nagios [root@nagios ~]# systemctl start httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 登录到 Nagios 内核服务器 复制链接链接已复制到粘贴板!
登录 Nagios Core 服务器,以查看红帽 Ceph 存储集群的健康状况。
先决条件
- Nagios 仪表板的用户名和密码。
流程
借助 Nagios,使用默认 Nagios 核心用户的凭证来登录控制面板:
语法
http://IP_ADDRESS/nagios
http://IP_ADDRESS/nagiosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 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 级别访问权限。
流程
在主机上安装这些软件包:
示例
dnf install openssl openssl-devel gcc make git
[root@host01 ~]# dnf install openssl openssl-devel gcc make gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow NRPE 安装需要 Nagios 用户。首先创建用户:
示例
useradd nagios passwd nagios
[root@host01 ~]# useradd nagios [root@host01 ~]# passwd nagiosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载最新版本的 Nagios 插件。然后,进行并安装它们:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载最新版本的 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 installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 下载、提供和安装 Nagios NRPE:
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用防火墙,请打开端口
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 --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关 Ceph 的 Nagios 插件的更多信息,请参阅 Ceph 的 Nagios 插件。
3.2. 启动 Nagios 远程插件执行器服务 复制链接链接已复制到粘贴板!
启动 Nagios Remote Plug-in Executor(NRPE)服务以收集数据并将其报告回 Nagios Core 服务器。
先决条件
- 对 Ceph Monitor 主机的 root 级别访问权限
流程
启用并启动 NRPE 服务:
示例
systemctl enable nrpe systemctl start nrpe
[root@host01 ~]# systemctl enable nrpe [root@host01 ~]# systemctl start nrpeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 配置 Nagios 核心服务器访问远程节点 复制链接链接已复制到粘贴板!
要让 Nagios Core 服务器访问远程计算机上的 Nagios Remote Plugin Executor(NPRE),必须使用 Nagios Core 服务器的 IP 地址更新远程机器的 NRPE 配置。
先决条件
- 对 Nagios Core 服务器的 root 级别访问权限。
- 互联网访问.
- 访问 Nagios 远程插件执行器.
流程
使用 Nagios 服务器的 IP 地址编辑 NRPE 配置:
示例
vi /usr/local/nagios/etc/nrpe.cfg
[root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Nagios Core 服务器的 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_SERVERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 IP_ADDRESS_OF_NAGIOS_CORE_SERVER 替换为 Nagios Core 服务器的 IP 地址。
重启
nrpe:示例
systemctl restart nrpe
[root@host01 ~]# systemctl restart nrpeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
测试安装:
示例
/usr/local/nagios/libexec/check_nrpe -H localhost
[root@host01 ~]# /usr/local/nagios/libexec/check_nrpe -H localhostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果运行正常,则检查应 echoUUID
v4.0.3。
第 4 章 在 Nagios 核心服务器上配置远程节点 复制链接链接已复制到粘贴板!
将 Nagios 核心服务器配置为了解远程主机。
先决条件
- 对 Nagios 核心服务器上的远程节点进行根级别访问。
- 互联网访问.
流程
安装
check_nrpe插件:示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为远程主机创建配置:
语法
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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
cp localhost.cfg host01.cfg
[root@nagios nrpe-4.0.3]# cd /usr/local/nagios/etc/objects [root@nagios objects]# cp localhost.cfg host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑配置文件并更新远程主机的设置:
语法
vi HOST_TO_ADD.cfg
vi HOST_TO_ADD.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
vi host01.cfg
[root@nagios objects]# vi host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用远程主机的主机名替换 LOCALHOST,将
127.0.0.1替换为 Ceph 监控主机的 IP 地址。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除或注释掉主机组定义:
示例
vi host01.cfg
[root@nagios objects]# vi host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件所有权改为 Nagios:
示例
chown nagios:nagios host01.cfg
[root@nagios objects]# chown nagios:nagios host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 向
/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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow cfg_file=/usr/local/nagios/etc/objects/host01.cfg
cfg_file=/usr/local/nagios/etc/objects/host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 Nagios 服务器:
示例
systemctl restart nagios
[root@nagios objects]# systemctl restart nagiosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保制作和安装过程正常工作,并且 Nagios Core 服务器和包含 NRPE 的远程主机之间有连通性:
语法
/usr/local/nagios/libexec/check_nrpe -H HOSTNAME_OF_REMOTE_HOST
/usr/local/nagios/libexec/check_nrpe -H HOSTNAME_OF_REMOTE_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HOSTNAME_OF_REMOTE_HOST 替换为要监控的 Ceph 主机的 IP 地址。
示例
/usr/local/nagios/libexec/check_nrpe -H host01
[root@nagios objects]# /usr/local/nagios/libexec/check_nrpe -H host01Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
如果运行正常,则检查应 echoUUID
v4.0.3。
第 5 章 为 Ceph 配置 Nagios 插件 复制链接链接已复制到粘贴板!
为红帽 Ceph 存储集群配置 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.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 每个插件都需要身份验证。对包含插件的每个主机重复此步骤。
为
check_ceph_health插件添加命令:示例
vi /usr/local/nagios/etc/nrpe.cfg
[root@host01 ~]# vi /usr/local/nagios/etc/nrpe.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用并重启
nrpe服务:示例
systemctl enable nrpe systemctl restart nrpe
[root@host01 ~]# systemctl enable nrpe [root@host01 ~]# systemctl restart nrpeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为每个适用于主机的 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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 语法
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! Toggle word wrap Toggle overflow 在 Nagios Core 服务器上,编辑 节点的配置文件,再为 Ceph 插件添加服务。
示例
vi /usr/local/nagios/etc/objects/host01.cfg
[root@nagios objects]# vi /usr/local/nagios/etc/objects/host01.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要监控的 Ceph 主机的主机名替换 HOSTNAME。
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意check_command设置在 Ceph 插件名称前面使用 check_nrpe!。这会告知 NRPE 在远程节点上执行check_ceph_health命令。- 为每个适用于主机的插件重复此步骤。
重启 Nagios Core 服务器:
示例
systemctl restart nagios
[root@nagios ~]# systemctl restart nagiosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在继续其他配置前,请确保插件已在 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.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
/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 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意check_ceph_health插件执行与ceph health命令等效的命令。
其它资源
- 有关 Ceph Nagios 插件的更多信息,请参阅 Ceph 的 Nagios 插件。