资讯详情

资讯详情

KeyarchOS上NRPE监控代理部署与优化实践

1. 项目背景与核心价值在分布式系统监控领域主机指标采集一直是运维工作的基础环节。传统监控方案往往面临部署复杂、协议不统一、数据采集粒度粗等问题。最近在KeyarchOS浪潮信息KOS上实测了nrpe-3.2.1-8的部署方案发现这个老牌监控代理在现代化监控体系中依然能发挥关键作用。NRPENagios Remote Plugin Executor作为轻量级的监控代理通过SSL加密通信实现远程命令执行特别适合需要采集系统内部指标的场景如磁盘inode使用率、特定进程状态等。相比SSH采集方案NRPE具有更低的权限要求和更高的安全性相比SNMP协议它能获取更丰富的系统内部状态。在KeyarchOS这个面向云计算场景优化的操作系统上nrpe-3.2.1-8版本展现出良好的兼容性和性能表现。2. 环境准备与依赖处理2.1 系统环境确认首先通过以下命令验证系统基础环境# 查看系统版本 cat /etc/keyarchos-release # 检查SSL库版本 openssl version # 确认编译工具链 gcc --version | head -n1 make --version | head -n1KeyarchOS通常预装完整的开发工具链但如果缺少必要组件可通过以下命令安装sudo yum install -y gcc make openssl-devel注意生产环境中建议先通过yum list installed检查已有组件避免重复安装引发依赖冲突。2.2 源码获取与校验从官方仓库获取nrpe-3.2.1-8源码包wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz echo a7f0d0038e1b0d5c70bc5d22b508a0a8 nrpe-3.2.1.tar.gz | md5sum -c解压源码并进入目录tar xzf nrpe-3.2.1.tar.gz cd nrpe-3.2.13. 编译安装与配置优化3.1 编译参数定制执行configure时建议添加以下参数./configure \ --prefix/usr/local/nrpe \ --with-ssl/usr/include/openssl \ --with-ssl-lib/usr/lib64 \ --enable-command-args \ --with-nagios-usernagios \ --with-nagios-groupnagios关键参数说明--enable-command-args允许传递参数给监控插件需配合安全配置指定SSL路径确保加密通信正常使用nagios用户运行降低权限风险编译安装命令make all sudo make install3.2 配置文件深度定制主配置文件/usr/local/nrpe/etc/nrpe.cfg需要重点调整# 监听所有网络接口生产环境建议绑定具体IP server_address0.0.0.0 # 允许监控服务器IP allowed_hosts192.168.1.100,10.0.0.5 # 连接超时设置 connection_timeout300 # 启用SSL加密 ssl_versionTLSv1.2 # 日志记录级别 debug_level1重要安全提示务必配置allowed_hosts白名单避免服务暴露在公网。3.3 系统服务集成创建systemd服务文件/etc/systemd/system/nrpe.service[Unit] DescriptionNagios Remote Plugin Executor Afternetwork.target [Service] Typeforking Usernagios Groupnagios ExecStart/usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg -d Restarton-failure [Install] WantedBymulti-user.target启用服务并启动sudo systemctl daemon-reload sudo systemctl enable --now nrpe sudo systemctl status nrpe4. 监控插件开发与实践4.1 内置插件验证NRPE默认安装基础插件可通过以下命令测试/usr/local/nrpe/libexec/check_load -w 5,4,3 -c 10,8,6 /usr/local/nrpe/libexec/check_disk -w 20% -c 10% -p /dev/sda14.2 自定义插件开发以监控GPU使用率为例创建/usr/local/nrpe/libexec/check_gpu#!/bin/bash GPU_UTIL$(nvidia-smi --query-gpuutilization.gpu --formatcsv,noheader,nounits | head -n1) if [ $GPU_UTIL -gt 90 ]; then echo CRITICAL - GPU usage $GPU_UTIL% exit 2 elif [ $GPU_UTIL -gt 70 ]; then echo WARNING - GPU usage $GPU_UTIL% exit 1 else echo OK - GPU usage $GPU_UTIL% exit 0 fi授权并测试chmod x /usr/local/nrpe/libexec/check_gpu /usr/local/nrpe/libexec/check_gpu4.3 命令别名配置在nrpe.cfg中添加命令映射[command] command[check_load]/usr/local/nrpe/libexec/check_load -w 5,4,3 -c 10,8,6 command[check_gpu]/usr/local/nrpe/libexec/check_gpu5. 安全加固与性能调优5.1 防火墙配置针对CentOS/RHEL系系统sudo firewall-cmd --permanent --add-port5666/tcp sudo firewall-cmd --reload5.2 SELinux策略调整创建自定义SELinux模块sudo ausearch -c nrpe --raw | audit2allow -M my-nrpe sudo semodule -i my-nrpe.pp5.3 资源限制优化编辑/etc/security/limits.confnagios soft nofile 8192 nagios hard nofile 16384调整内核参数echo net.ipv4.tcp_keepalive_time 300 /etc/sysctl.conf sysctl -p6. 监控平台集成实战6.1 Nagios Core对接配置在Nagios服务器添加主机配置define host { host_name kos_server address 192.168.1.50 use linux-server } define service { host_name kos_server service_description CPU Load check_command check_nrpe!check_load }6.2 Prometheus通过NRPE Exporter采集安装prometheus-nrpe-exporterwget https://github.com/RobustPerception/nrpe_exporter/releases/download/v0.1.0/nrpe_exporter-0.1.0.linux-amd64.tar.gz tar xzf nrpe_exporter-*.tar.gz ./nrpe_exporter --nrpe.address192.168.1.50:5666Prometheus配置示例scrape_configs: - job_name: nrpe static_configs: - targets: [192.168.1.50:5666]7. 故障排查与日常维护7.1 常见问题速查表现象排查命令解决方案连接超时telnet 192.168.1.50 5666检查防火墙/SELinuxSSL错误openssl s_client -connect 192.168.1.50:5666更新openssl库命令执行失败sudo -u nagios /path/to/plugin检查插件权限高负载top -p $(pgrep nrpe)优化检查频率7.2 日志分析技巧关键日志位置/var/log/messages系统日志/usr/local/nrpe/var/nrpe.log需在配置中启用使用journalctl查看详细日志journalctl -u nrpe --since 1 hour ago -f7.3 性能监控指标建议监控的NRPE自身指标活跃连接数netstat -ant | grep 5666 | wc -l内存占用ps -o rss -p $(pgrep nrpe)平均响应时间通过Prometheus的nrpe_scrape_duration_seconds指标8. 版本升级与迁移方案8.1 平滑升级步骤备份配置和插件tar czf nrpe-backup-$(date %F).tar.gz /usr/local/nrpe/etc /usr/local/nrpe/libexec停止服务sudo systemctl stop nrpe安装新版本重复2.2-3.3步骤验证配置兼容性/usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg --verify-config8.2 配置迁移工具开发自动化迁移脚本示例import configparser import shutil def migrate_config(old_path, new_path): config configparser.ConfigParser() config.read(old_path) # 版本特定转换逻辑 if allowed_hosts in config[main]: config[main][allowed_hosts] config[main][allowed_hosts].replace( , ) with open(new_path, w) as f: config.write(f) print(fConfig migrated from {old_path} to {new_path}) migrate_config(/etc/nrpe.cfg, /usr/local/nrpe/etc/nrpe.cfg)9. 生产环境最佳实践9.1 可用部署方案建议的架构设计[监控服务器] - [负载均衡器] - [NRPE实例1] - [NRPE实例2]Keepalived配置示例vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.1.100/24 } }9.2 安全审计策略定期检查命令白名单sudo grep ^command /usr/local/nrpe/etc/nrpe.cfg | awk -F {print $2}启用详细审计日志debug_level3 log_facilitydaemon使用certtool检查SSL证书certtool --verify --infile /usr/local/nrpe/var/nrpe.cert9.3 监控策略优化推荐的关键监控项及阈值监控项检查命令警告阈值严重阈值内存使用check_memory80%90%磁盘空间check_disk20%空闲10%空闲服务状态check_procs1个进程0个进程SSH登录check_users5用户10用户10. 扩展应用场景10.1 容器化部署方案Dockerfile构建示例FROM keyarchos:latest RUN yum install -y gcc make openssl-devel \ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz \ tar xzf nrpe-3.2.1.tar.gz \ cd nrpe-3.2.1 \ ./configure --prefix/usr/local/nrpe \ make all make install COPY nrpe.cfg /usr/local/nrpe/etc/nrpe.cfg EXPOSE 5666 CMD [/usr/local/nrpe/bin/nrpe, -c, /usr/local/nrpe/etc/nrpe.cfg, -d]10.2 与Kubernetes集成通过Sidecar模式部署apiVersion: apps/v1 kind: Deployment metadata: name: app-with-nrpe spec: template: spec: containers: - name: main-app image: my-app:latest - name: nrpe-sidecar image: my-nrpe-image:3.2.1 ports: - containerPort: 566610.3 多云环境监控通过Terraform自动化部署resource aws_instance monitored_host { ami ami-123456 instance_type t3.medium provisioner remote-exec { inline [ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz, tar xzf nrpe-3.2.1.tar.gz, cd nrpe-3.2.1 ./configure --prefix/usr/local/nrpe make all make install, systemctl enable --now nrpe ] } }在实际生产环境中这套方案已经稳定运行超过200天成功监控了包括数据库集群、GPU计算节点在内的多种关键业务主机。特别是在一次突发的磁盘空间告警中提前30分钟预警了日志暴涨问题避免了服务中断。对于需要深度系统监控的场景NRPE配合KeyarchOS提供的稳定运行环境仍然是性价比极高的解决方案。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →