最近重新启动后,我有一对服务器,现在无法监视他们的磁盘状态。 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_iopipe理的,但是sysctl说这个密钥是未知的,我似乎也没有设置它。
有没有办法改变这个允许hpacucli访问iopl()而不用重build到非grsec内核?
这几天你不应该使用hpacucli 。
正确的现代工具是hpssacli 。
此外,还有更有效的方法来检查硬件RAID控制器状态。 你运行什么操作系统/分布/版本? 您是否安装了其他pipe理代理?
具有讽刺意味的是,在我们的其他HPraid主机上运行的原因是他们运行的是新版本的hpacucli,显然不使用iopl()。 在这些较旧的主机上升级hpacucli解决了这个问题。
如何select性地允许iopl()的奥秘仍然存在。 也许再过一天。