监控 Debian 上 Cobbler 的有效方法
一 核心服务与连通性检查
- 服务存活与自启
- 查看状态:systemctl status cobblerd cobbler-web httpd tftp dhcp
- 启动/自启:systemctl start|enable cobblerd cobbler-web httpd tftp dhcp
- 配置与同步
- 一致性检查:cobbler check
- 推送配置:cobbler sync
- 连通性验证
- DHCP 探测(在同一二层网段):sudo nmap --script broadcast-dhcp-discover
- TFTP 探测:tftp <PXE_IP> -c get pxelinux.0 或 nc -vz <PXE_IP> 69
- HTTP 探测:curl -I http://<PXE_IP>/cobbler/images//boot.iso 或检查 /var/www/html/cobbler/ 是否可访问
- 关键配置核对:/etc/cobbler/settings 中的 server 与 next_server 是否为可达的服务器 IP(非 127.0.0.1/localhost)
二 日志与配置核对
- 系统日志
- 实时查看:journalctl -u cobblerd -f、journalctl -u httpd -f、tail -f /var/log/syslog
- Cobbler 日志
- 业务与同步日志:/var/log/cobbler/cobbler.log、/var/log/cobbler/http.log
- Web 层异常定位
- Apache 错误日志:/var/log/apache2/error.log(Debian 常用路径)
- 配置与引导文件
- 配置一致性:cobbler check
- 引导文件与加载器:/var/lib/cobbler/loaders,必要时执行 cobbler get-loaders 补齐 PXE 引导文件
三 关键指标与巡检清单
| 维度 |
关键指标 |
建议阈值或动作 |
| cobblerd |
进程存活、响应 cobbler 命令 |
进程存在;cobbler status 正常返回 |
| Web 服务 |
HTTP 200/302 可达 |
访问 /cobbler 返回 200/302;证书/端口无误 |
| DHCP |
发现 DHCP Offer |
同网段能收到 DHCPOFFER;租约文件增长 |
| TFTP |
能下载 PXE 文件 |
pxelinux.0/menu.c32 等可拉取 |
| 配置健康 |
无 check 严重告警 |
cobbler check 无 high/critical 项 |
| 同步状态 |
最近一次 sync 成功 |
变更后执行 cobbler sync 无报错 |
| 镜像与仓库 |
镜像可访问、仓库已同步 |
cobbler distro list 非空;cobbler reposync 成功 |
| 引导文件 |
引导器完整 |
/var/lib/cobbler/loaders 包含 pxelinux.0/menu.c32/elilo.efi/yaboot 等 |
| 日志错误 |
错误日志无持续增长 |
cobbler.log/http.log 无持续 ERROR |
| 资源与容量 |
CPU/内存/磁盘健康 |
资源使用在安全阈值内;/var 分区未满 |
| 以上指标可通过命令行与日志快速获取,建议纳入日常巡检与告警基线。 |
|
|
四 自动化监控与告警示例
- 服务存活探针(systemd)
- 示例:systemctl is-active cobblerd && systemctl is-active httpd && systemctl is-active tftp
- 配置健康探针
- 示例:cobbler check | grep -E “ERROR|FAILED” | wc -l;返回 0 为健康
- DHCP/TFTP 可达性
- DHCP:nmap --script broadcast-dhcp-discover | grep “DHCPOFFER” | wc -l(>0 表示有应答)
- TFTP:tftp <PXE_IP> -c get pxelinux.0 && echo OK || echo FAIL
- HTTP 探针
- 示例:curl -f -o /dev/null -s -w “%{http_code}” http://<PXE_IP>/cobbler/images//boot.iso;期望 200/302
- Prometheus 黑盒示例(exporter 侧)
- DHCP:执行 nmap 脚本输出指标,Prometheus 抓取解析
- TFTP/HTTP:使用 blackbox_exporter 配置相应模块进行探测
- 告警规则示例(Prometheus)
- 服务宕机:ALERT CobblerDown IF up{job=“cobbler”} == 0 FOR 1m
- 配置异常:ALERT CobblerCheckFailed IF cobbler_check_errors > 0 FOR 5m
- DHCP 无应答:ALERT CobblerDHCPDown IF dhcp_offers == 0 FOR 2m
- HTTP 异常:ALERT CobblerHTTPError IF http_probe != 200 FOR 1m
- 建议的告警通道
- 企业微信/钉钉/Slack Webhook、邮件或短信网关,按严重级别分级
五 变更与演练建议
- 变更前后必做
- 变更前备份:tar czvf cobbler_backup_$(date +%F).tar.gz /etc/cobbler/ /var/lib/cobbler/loaders /var/lib/tftpboot/
- 变更后推送:cobbler sync 并复核日志与探针
- 定期演练
- 例行演练:在维护窗口对一台测试机执行 PXE 启动 → 自动安装 → 注册,验证 DHCP/TFTP/HTTP/仓库 全链路
- 回滚预案:配置异常时先恢复备份并 cobbler sync,再逐步定位根因