我正在尝试按照本指南安装和设置 blackbox_exporter: https://devconnected.com/how-to-install-and-configure-blackbox-exporter-for-prometheus/
我已经遵循了所有内容,并且可以从 systemd 服务手动运行命令并使其运行。
但是,当我尝试运行 systemctl start blackbox.service 然后检查状态时,它失败并退出代码 203/EXEC
我检查以下权限/usr/local/bin/blackbox_exporter
:
-rwxr-xr-x. 1 blackbox blackbox 17050332 Nov 11 10:27 /usr/local/bin/blackbox_exporter
我可以从终端运行命令:
/usr/local/bin/blackbox_exporter --config.file=/etc/blackbox/blackbox.yml --web.listen-address=:9115
这是我的系统服务:
[Unit]
Description=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/usr/local/bin/blackbox_exporter \
--config.file=/etc/blackbox/blackbox.yml \
--web.listen-address=":9115"
Restart=always
[Install]
WantedBy=multi-user.target
日志来自journalctl -u blackbox.service
:
Apr 30 08:26:55 localhost systemd[1]: Started Blackbox Exporter Service.
Apr 30 08:26:55 localhost systemd[1]: blackbox.service: Main process exited, code=exited, status=203/EXEC
Apr 30 08:26:55 localhost systemd[1]: blackbox.service: Failed with result 'exit-code'.
我使用的是 CentOS 8。
任何帮助将不胜感激。
答案1
由于您能够以交互方式运行该命令,但不能通过 systemd 独立运行,因此 SELinux 可能会选择不同的上下文并禁止执行。根据 SELinux 的实际干预,您可以使用来自为什么 selinux 策略适用于从 cronjobs 运行的命令(例如:logrotate),但不适用于直接从命令行运行的命令?以适应这种情况。