最近重新启动后,我有一对服务器现在无法监视其磁盘状态。Nagios 报告:
HP RAID Array
UNKNOWN Error: No controllers detected. -/-/- (LD : [])
我在主机上手动运行检查时遇到同样的错误。当我这样做时,每当我手动运行该检查时,内核日志都会显示以下内容:
Apr 8 17:00:00 www.example.org kernel: [12345.000000] grsec:
From 10.11.12.13: denied use of iopl() by /opt/hp/hpacucli
/hpacucli.bin[hpacucli.bin:666] uid/euid:0/0 gid/egid:0/0, parent
/bin/bash[bash:777] uid/euid:0/0 gid/egid:0/]
hpacucli 是用于与硬件 RAID 控制器交互并收集磁盘状态等信息的工具。它使用 iopl() 并不奇怪。grsec 文档表明这是受控制的,kernel.grsecurity.disable_priv_io
但是 sysctl 说密钥未知,而且我似乎也无法设置它。
有没有办法改变这一点,以允许 hpacucli 访问 iopl(),而无需重建非 grsec 内核?
答案1
hpacucli
你现在 不应该使用。
正确的现代工具是hpssacli
。
此外,还有更有效的方法来检查硬件 RAID 控制器状态。您正在运行什么操作系统/发行版/版本?您是否安装了其他管理代理?
答案2
讽刺的是,这在我们的其他 HPraid 主机上起作用的原因是它们运行的是较新版本的 hpacucli,而这些版本显然不使用 iopl()。在这些较旧的主机上升级 hpacucli 解决了该问题。
如何选择性地允许 iopl() 的谜题仍然存在。也许改天再说吧。