启动collectd.service时出现“Active:激活(自动重启)”如何解决?

启动collectd.service时出现“Active:激活(自动重启)”如何解决?

我启动时遇到问题收集服务在我通过命令安装的 Fedora 31 64 位操作系统中sudo dnf install collectd。当我输入时,sudo systemctl status collectd.service我得到以下输出:

    ● collectd.service - statistics collection daemon
       Loaded: loaded (/etc/systemd/system/collectd.service; enabled; vendor preset: disabled)
       Active: activating (auto-restart) since Sat 2020-09-19 18:18:47 CEST; 3s ago
         Docs: man:collectd(1)
      Process: 3796 ExecStart=/usr/sbin/collectd (code=exited, status=0/SUCCESS)
     Main PID: 3796 (code=exited, status=0/SUCCESS)
          CPU: 7ms

顺便说一句,我必须手动创建collectd.service位于/etc/systemd/系统/目录。真正奇怪的是我不断收到激活(自动重启) 状态=0/成功在上面提到的输出中。我还按各自的顺序执行了以下命令:

  1. sudo systemctl daemon-reload
  2. sudo systemctl stop collectd.service
  3. sudo systemctl start collectd.service

...但没有任何改变,我尝试在所有这些之后重新启动计算机并执行所有提到的 1)-3) 步骤,但没有任何帮助。顺便说一句,这是我的collectd.service

[Unit]
Description=statistics collection daemon
Documentation=man:collectd(1)
After=local-fs.target network.target
Requires=local-fs.target network.target

[Service]
ExecStart=/usr/sbin/collectd
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

这就是我的/etc/collectd.conf文件的样子:

#
# Config file for collectd(1).
# Please read collectd.conf(5) for a list of options.
# http://collectd.org/
#

##############################################################################
# Global                                                                     #
#----------------------------------------------------------------------------#
# Global settings for the daemon.                                            #
##############################################################################

#Hostname    "localhost"
FQDNLookup   true
#BaseDir     "/var/lib/collectd"
#PIDFile     "/var/run/collectd.pid"
PluginDir   "/usr/lib64/collectd"
TypesDB     "/usr/share/collectd/types.db"

LoadPlugin cpu

<Plugin cpu>
  ReportByCpu false
  ReportByState false
#  Interval 1
  ValuesPercentage true
#  ReportNumCpu false
#  ReportGuestState false
#  SubtractGuestState true
</Plugin>

<Plugin memory>
        ValuesAbsolute false
        ValuesPercentage true
</Plugin>

Include "/etc/collectd.d"
LoadPlugin syslog
LoadPlugin logfile
#LoadPlugin log_logstash

<Plugin logfile>
        LogLevel info
        File "/var/log/error_syslog"
        Timestamp true
#       PrintSeverity false
</Plugin>

#<Plugin log_logstash>
#       LogLevel info
#       File "/var/log/collectd.json.log"
#</Plugin>

<Plugin syslog>
        LogLevel info
</Plugin>
Include "/etc/collectd.d"

非常感谢任何建议/为我指明如何解决这个问题的正确方向。

答案1

正如collectd手册告诉你的,您必须在服务单元中 使用-f命令行选项 和Type=simple或使用Type=notify(并且 no )。-fCollectd 附带的样本服务单元做这个。

答案2

经过“实验”后,我设法找到了一个解决方案,并通过编辑文件ExecStart中的属性来运行collectd.service /etc/systemd/system/collectd.service,现在提到的文件如下所示:

[Unit]
Description=statistics collection daemon
Documentation=man:collectd(1)
After=local-fs.target network.target
Requires=local-fs.target network.target

[Service]
ExecStart=/usr/sbin/collectd
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
Type=notify


[Install]
WantedBy=multi-user.target

已按照 @JdeBP 在他的回答中建议的进行更改。另外,指定生成指标值的间隔时间中央处理器插件我已将其加载为标签指定Interval每 1 秒生成一次指标,如下所示:

<LoadPlugin cpu> 
   Interval 1
</LoadPlugin cpu>

...而不是像这样的默认格式:LoadPlugin cpu.顺便说一句,插件加载在文件中指定/etc/collectd.conf(在Fedora31操作系统)。如果Interval在 ...</plugin cpu> 标签下指定了属性,则collectd.服务将不会启动(问题参见 https://github.com/collectd/collectd/issues/2444)。更多信息请访问官方文档,但是有点乱,很难理解。

希望对遇到这种情况的人有所帮助。 :)
干杯!

相关内容