icingaweb2许可被拒绝

时间:2016-11-18 09:00:40

标签: icingaweb2

请帮我用icingaweb解决这个问题

  

icinga2:无法将外部Icinga命令发送到本地命令文件“/var/run/icinga2/cmd/icinga2.cmd”:权限被拒绝。

#0 /usr/share/icingaweb2/modules/monitoring/application/forms/Command/Object/ScheduleServiceDowntimeCommandForm.php(191): Icinga\Module\Monitoring\Command\Transport\CommandTransport->send(Object(Icinga\Module\Monitoring\Command\Object\ScheduleHostDowntimeCommand))
#1 /usr/share/icingaweb2/modules/monitoring/application/forms/Command/Object/ScheduleHostDowntimeCommandForm.php(108): Icinga\Module\Monitoring\Forms\Command\Object\ScheduleServiceDowntimeCommandForm->scheduleDowntime(Object(Icinga\Module\Monitoring\Command\Object\ScheduleHostDowntimeCommand), Object(Icinga\Web\Request))
#2 /usr/share/php/Icinga/Web/Form.php(1152): Icinga\Module\Monitoring\Forms\Command\Object\ScheduleHostDowntimeCommandForm->onSuccess()
#3 /usr/share/icingaweb2/modules/monitoring/library/Monitoring/Web/Controller/MonitoredObjectController.php(128): Icinga\Web\Form->handleRequest()
#4 /usr/share/icingaweb2/modules/monitoring/application/controllers/HostController.php(155): Icinga\Module\Monitoring\Web\Controller\MonitoredObjectController->handleCommandForm(Object(Icinga\Module\Monitoring\Forms\Command\Object\ScheduleHostDowntimeCommandForm))
#5 /usr/share/php/Zend/Controller/Action.php(516): Icinga\Module\Monitoring\Controllers\HostController->scheduleDowntimeAction()
#6 /usr/share/php/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch('scheduleDowntim...')
#7 /usr/share/php/Zend/Controller/Front.php(954): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#8 /usr/share/php/Icinga/Application/Web.php(384): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#9 /usr/share/php/Icinga/Application/webrouter.php(109): Icinga\Application\Web->dispatch()
#10 /usr/share/icingaweb2/public/index.php(4): require_once('/usr/share/php/...')
#11 {main}

3 个答案:

答案 0 :(得分:1)

错误消息可能是正确的。您需要为该文件设置正确的unix权限。 CentOS7软件包在那里做了正确的事情,但对我来说问题与selinux有关。检查SELinux否认以查看您的命令是否被拒绝:

ausearch -m avc --start recent

检查命令文件的上下文:

# ls -lZ /var/run/icinga2/cmd/icinga2.cmd
prw-rw----. icinga icingacmd system_u:object_r:var_run_t:s0 /var/run/icinga2/cmd/icinga2.cmd

我通过在所有其他配置之后安装icinga2-selinux软件包来修复此问题。特别是,在启用本地(命名管道)命令传输之后,您需要(重新)安装它。重新安装icinga2-selinux后,正确的上下文应该是:

# ls -lZ /var/run/icinga2/cmd/icinga2.cmd
prw-rw----. icinga icingacmd system_u:object_r:icinga2_command_t:s0 /var/run/icinga2/cmd/icinga2.cmd

重新启动icinga2和Apache。

答案 1 :(得分:0)

禁用selinux会有所帮助。 Temp禁用selinux并再试一次。

setenforce 0 

如果有效,请尝试永久性的。 编辑/ etc / selinux / config并确保

SELINUX=disabled

答案 2 :(得分:0)

在我的情况下(CentOS 7),我要做的就是确保icinga2功能“命令”已启用,然后重新启动服务。

icinga2 feature enable command
systemctl restart icinga2.service