我试图通过运行apt-get purge --auto-remove icinga2
并删除我可以找到的与 icinga2 相关的任何内容来从我的 Ubuntu Server 16.04 中完全删除 icinga2locate icinga2
我的第二个举动被证明是相当愚蠢的,因为无论我做什么,我似乎都无法正确重新安装 icinga2。我注意到,重新安装后,服务仍然丢失(中没有任何内容/etc/init.d/
)
我刚刚从另一台主机复制了文件,现在,当我尝试启动 icinga2 时,我得到:
Job for icinga2.service failed because a configured resource limit was exceeded. See "systemctl status icinga2.service" and "journalctl -xe" for details.
systemctl status icinga2.service
显示:
● icinga2.service - Icinga host/service/network monitoring system
Loaded: loaded (/lib/systemd/system/icinga2.service; disabled; vendor preset: enabled)
Active: failed (Result: resources)
Jul 23 20:53:41 srvweb systemd[1]: icinga2.service: Failed to load environment files: No such file or directory
Jul 23 20:53:41 srvweb systemd[1]: icinga2.service: Failed to run 'start-pre' task: No such file or directory
Jul 23 20:53:41 srvweb systemd[1]: Failed to start Icinga host/service/network monitoring system.
Jul 23 20:53:41 srvweb systemd[1]: icinga2.service: Failed with result 'resources'.
Jul 23 20:55:25 srvweb systemd[1]: Stopped Icinga host/service/network monitoring system.
Jul 24 21:44:02 srvweb systemd[1]: Stopped Icinga host/service/network monitoring system.
Jul 24 21:44:02 srvweb systemd[1]: icinga2.service: Failed to load environment files: No such file or directory
Jul 24 21:44:02 srvweb systemd[1]: icinga2.service: Failed to run 'start-pre' task: No such file or directory
Jul 24 21:44:02 srvweb systemd[1]: Failed to start Icinga host/service/network monitoring system.
Jul 24 21:44:02 srvweb systemd[1]: icinga2.service: Failed with result 'resources'.
并journalctl -xe
显示相同。
不应该有办法解决这个问题吗?请帮助我从错误中吸取教训。预先非常感谢:)
编辑:
more info:
cat /lib/systemd/system/icinga2.service
[Unit]
Description=Icinga host/service/network monitoring system
After=postgresql.service mariadb.service carbon-cache.service mysql.service syslog.target network.target
[Service]
Type=simple
UMask=0007
EnvironmentFile=/usr/lib/icinga2/icinga2
EnvironmentFile=/etc/default/icinga2
ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2
ExecStart=/usr/sbin/icinga2 daemon -e ${ICINGA2_ERROR_LOG}
ExecReload=/usr/lib/icinga2/safe-reload /usr/lib/icinga2/icinga2
PIDFile=/run/icinga2/icinga2.pid
[Install]
WantedBy=multi-user.target
但/etc/default/icinga2
不存在。在我的其他主机上,该文件看起来完全相同,并且路径确实存在,因此我认为需要存在该路径。
答案1
看起来您丢失了很多文件。可能您没有删除 icinga 使用文件中的所有包apt-get purge
,然后当您手动删除文件时,您留下了损坏的包。
Failed to load environment files
是 SystemD icinga 单元文件中的引用。找到它(在/etc/systemd/system
或下/lib/systemd/system
)并查看它是否有EnvironmentFile
设置并且该文件是否存在。如果它不存在,您需要找出它属于哪个包(使用dpkg -S <file>
)并执行apt-get install --reinstall <package>
.
答案2
我也遇到了同样的错误,但在我重新启动机器后它消失了。
答案3
解决方案:
我很幸运,我有多个安装了 icinga2 的主机(用于基于代理的检查)。
我/lib/systemd/system/icinga2.service
将丢失的/etc/default/icinga2
viascp
从工作机器复制到我的主机。
之后,我收到了 icinga2 错误,因为仍然缺少配置文件。
我将它们复制到我的机器上,然后一切又恢复正常了。现在我可以专注于我最初的问题是 gdb。