Após uma reinicialização recente, tenho um par de servidores que agora não conseguem monitorar o status do disco. Relatórios do Nagios:
HP RAID Array
UNKNOWN Error: No controllers detected. -/-/- (LD : [])
Recebo o mesmo erro ao executar a verificação manualmente no host. Quando o faço, o log do kernel mostra o seguinte sempre que executo essa verificação manualmente:
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 é a ferramenta usada para interagir com o controlador raid de hardware e coletar coisas como o status do disco. Não é surpresa que ele use iopl(). A documentação do grsec sugere que isso é governado por, kernel.grsecurity.disable_priv_io
mas o sysctl diz que a chave é desconhecida e também não consigo configurá-la.
Existe uma maneira de alterar isso para permitir o acesso hpacucli a iopl () sem dizer reconstruir para um kernel não-grsec?
Você não deveria estar usando
hpacucli
esses dias.A ferramenta moderna correta é
hpssacli
.Além disso, existem maneiras mais eficientes de verificar o status do controlador RAID de hardware. Qual sistema operacional/distribuição/versão você está executando? Você tem os outros agentes de gerenciamento instalados?
Ironicamente, a razão pela qual isso funciona em nossos outros hosts HPraid é que eles estão executando versões mais recentes do hpacucli, que aparentemente não usam iopl(). A atualização do hpacucli nesses hosts mais antigos resolveu o problema.
O mistério de como permitir seletivamente iopl() permanece. Talvez para outro dia.